Re: [RFC PATCH 2/3] arm: dts: Add RP2350 device tree
Simon Glass <[email protected]>
| Newsgroups | gmane.comp.boot-loaders.u-boot |
|---|---|
| Message-ID | <CAFLszTisb-KaWUZAfQrOCf_0xA85auyY2UU5oBvuFAfFnqM86g@mail.gmail.com> |
Hi Bhargav, On 2026-07-26T11:56:45, Bhargav Das <[email protected]> wrote: > arm: dts: Add RP2350 device tree > > Add device tree for the RP2350 SoC (rp2350.dtsi) and the Raspberry Pi > Pico 2 board (rp2350-pico2.dts). > > rpi_pico2_defconfig selects CONFIG_OF_EMBED, building the dtb from > u-boot's source rather than CONFIG_OF_UPSTREAM. > > Signed-off-by: Bhargav Das <[email protected]> > > arch/arm/dts/Makefile | 1 + > arch/arm/dts/rp2350-pico2.dts | 30 ++++++++++++++++++++++++++++++ > arch/arm/dts/rp2350.dtsi | 32 ++++++++++++++++++++++++++++++++ > 3 files changed, 63 insertions(+) > diff --git a/arch/arm/dts/rp2350-pico2.dts b/arch/arm/dts/rp2350-pico2.dts > @@ -0,0 +1,30 @@ > +// SPDX-License-Identifier: GPL-2.0+ Since the aim is to align with a mainline Linux device tree (assuming they would accept a file for something that cannot boot Linux!), please use the dual 'GPL-2.0-only OR MIT' licence that new Linux DT files use. It saves a relicensing step later, and most new DTs in arch/arm/dts already do this. Same applies to rp2350.dtsi > diff --git a/arch/arm/dts/rp2350-pico2.dts b/arch/arm/dts/rp2350-pico2.dts > @@ -0,0 +1,30 @@ > + memory@20000000 { > + device_type = "memory"; > + reg = <0x20000000 0x00082000>; /* 520 KB SRAM */ > + }; The 520KB SRAM is a fixed feature of the RP2350 itself and identical on every board using this SoC, so this memory node belongs in rp2350.dtsi rather than the board .dts. Only genuinely board-specific things (aliases, chosen, which UART is enabled) belong here. > diff --git a/arch/arm/dts/rp2350.dtsi b/arch/arm/dts/rp2350.dtsi > @@ -0,0 +1,32 @@ > + uart0: serial@40070000 { > + compatible = "arm,pl011", "arm,primecell"; > + reg = <0x40070000 0x1000>; > + clock = <150000000>; /* CLK_PERI = clk_sys 150MHz */ > + status = "disabled"; > + }; The 'clock' property is a U-Boot-specific fallback that the pl011 driver reads via dev_read_u32_default() - the standard pl011 binding uses a 'clocks' phandle plus 'clock-names'. It works for now since there is no clock driver, but it will diverge from whatever eventually goes upstream to Linux. Just flagging it so it is not forgotten once a clock uclass driver appears - a comment in the commit message noting this is a temporary shortcut would help. Regards, Simon