Message ID | 8deccbd7ab8915957342a097410473445987b044.1732444746.git.andrea.porta@suse.com |
---|---|
State | New |
Headers | show |
Series | Add support for RaspberryPi RP1 PCI device using a DT overlay | expand |
On Sun, Nov 24, 2024 at 11:51:46AM +0100, Andrea della Porta wrote: > The RP1 found on Raspberry Pi 5 board needs an external crystal at 50MHz. > Add clk_rp1_xosc node to provide that. I'm wondering if this is the correct place for this clock. From your description, the bcm2712 itself does not provide the clock. There is a crystal on the board. So the board provides the clock. What happens when the RP1 is used on other boards? Also, does the RP1 need an actual crystal, or can you feed it a clock? Often such inputs are flexible, you can connect a crystal across two pins, or you can feed a clock into one pin. If a crystal is the only choice, i would probably have it part of the RP1 overlay. If a clock can be used, i would make it a board property. Andrew
Hi Andrew, On 20:41 Sun 24 Nov , Andrew Lunn wrote: > On Sun, Nov 24, 2024 at 11:51:46AM +0100, Andrea della Porta wrote: > > The RP1 found on Raspberry Pi 5 board needs an external crystal at 50MHz. > > Add clk_rp1_xosc node to provide that. > > I'm wondering if this is the correct place for this clock. From your > description, the bcm2712 itself does not provide the clock. There is a > crystal on the board. So the board provides the clock. What happens > when the RP1 is used on other boards? Also, does the RP1 need an > actual crystal, or can you feed it a clock? Often such inputs are > flexible, you can connect a crystal across two pins, or you can feed a > clock into one pin. AFAICT the only choice would be a crystal (I'll try to confirm that with Rpi folksi, just to be sure). In fact, I've expressed your same concern in the dicsussion that followed previous patchset revisions, and it seems that the preferred way is still to stick to the current hw: since the crystal is on the same board as bcm2712, it should not be described on the overaly. I think you're right though on moving the clock definition to the board dts. I'm still planning to define the clock in the rp1 overlay if any new PCI card will contain it in the future: after all it will not cause any clash with the clock defined in the board dts, which could be then removed gradually. Many thanks, Andrea > > If a crystal is the only choice, i would probably have it part of the > RP1 overlay. If a clock can be used, i would make it a board property. > > Andrew
diff --git a/arch/arm64/boot/dts/broadcom/bcm2712.dtsi b/arch/arm64/boot/dts/broadcom/bcm2712.dtsi index 6e5a984c1d4e..b00261992b71 100644 --- a/arch/arm64/boot/dts/broadcom/bcm2712.dtsi +++ b/arch/arm64/boot/dts/broadcom/bcm2712.dtsi @@ -38,6 +38,13 @@ clk_emmc2: clk-emmc2 { clock-frequency = <200000000>; clock-output-names = "emmc2-clock"; }; + + clk_rp1_xosc: clock-50000000 { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-output-names = "rp1-xosc"; + clock-frequency = <50000000>; + }; }; cpus: cpus {
The RP1 found on Raspberry Pi 5 board needs an external crystal at 50MHz. Add clk_rp1_xosc node to provide that. Signed-off-by: Andrea della Porta <andrea.porta@suse.com> --- arch/arm64/boot/dts/broadcom/bcm2712.dtsi | 7 +++++++ 1 file changed, 7 insertions(+)