Hi Nicolas, Am 01.06.21 um 12:03 schrieb nicolas saenz julienne: > Hi Stefan, > Thanks for having a go at this. > > On Sun, 2021-05-30 at 11:26 +0200, Stefan Wahren wrote: >> There is a lot of Raspberry Pi specific stuff (neither SoC or board >> specific) for the BCM2711 which is currently in the RPi 4 B dts. In order >> to avoid copy & paste for every new BCM2711 based Raspberry Pi, move it >> into a separate dtsi. >> >> Signed-off-by: Stefan Wahren <stefan.wahren@xxxxxxxx> >> --- >> arch/arm/boot/dts/bcm2711-rpi-4-b.dts | 62 +---------------------------- >> arch/arm/boot/dts/bcm2711-rpi.dtsi | 75 +++++++++++++++++++++++++++++++++++ >> 2 files changed, 76 insertions(+), 61 deletions(-) >> create mode 100644 arch/arm/boot/dts/bcm2711-rpi.dtsi >> >> diff --git a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts >> index 3b4ab94..78142a0 100644 >> --- a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts >> +++ b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts >> @@ -1,11 +1,9 @@ >> // SPDX-License-Identifier: GPL-2.0 >> /dts-v1/; >> #include "bcm2711.dtsi" >> -#include "bcm2835-rpi.dtsi" >> +#include "bcm2711-rpi.dtsi" >> #include "bcm283x-rpi-usb-peripheral.dtsi" >> >> >> -#include <dt-bindings/reset/raspberrypi,firmware-reset.h> >> - >> / { >> compatible = "raspberrypi,4-model-b", "brcm,bcm2711"; >> model = "Raspberry Pi 4 Model B"; >> @@ -22,10 +20,7 @@ >> }; >> >> >> aliases { >> - emmc2bus = &emmc2bus; >> ethernet0 = &genet; > Why not picking this one? nor the relevant DT nodes? I belive it's available on > all the bcm2711 based boards. While i agree that most of the boards [1] support Ethernet, the PHY stuff is almost board specific. > >> - pcie0 = &pcie0; >> - blconfig = &blconfig; >> }; >> >> >> leds { >> @@ -80,11 +75,6 @@ >> }; >> >> >> &firmware { >> - firmware_clocks: clocks { >> - compatible = "raspberrypi,firmware-clocks"; >> - #clock-cells = <1>; >> - }; >> - >> expgpio: gpio { > Why not taking this one too and letting each dts file define its own > 'gpio-line-names'? Agree > >> compatible = "raspberrypi,firmware-gpio"; >> gpio-controller; >> @@ -99,11 +89,6 @@ >> ""; >> status = "okay"; >> }; >> - >> - reset: reset { >> - compatible = "raspberrypi,firmware-reset"; >> - #reset-cells = <1>; >> - }; >> }; >> >> >> &gpio { >> @@ -180,23 +165,13 @@ >> }; >> >> >> &hdmi0 { >> - clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 0>, <&clk_27MHz>; >> - clock-names = "hdmi", "bvb", "audio", "cec"; >> - wifi-2.4ghz-coexistence; >> status = "okay"; >> }; >> >> >> &hdmi1 { >> - clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 1>, <&clk_27MHz>; >> - clock-names = "hdmi", "bvb", "audio", "cec"; >> - wifi-2.4ghz-coexistence; >> status = "okay"; >> }; >> >> >> -&hvs { >> - clocks = <&firmware_clocks 4>; >> -}; >> - >> &pixelvalve0 { >> status = "okay"; >> }; >> @@ -219,22 +194,6 @@ >> status = "okay"; >> }; >> >> >> -&rmem { >> - /* >> - * RPi4's co-processor will copy the board's bootloader configuration >> - * into memory for the OS to consume. It'll also update this node with >> - * its placement information. >> - */ >> - blconfig: nvram@0 { >> - compatible = "raspberrypi,bootloader-config", "nvmem-rmem"; >> - #address-cells = <1>; >> - #size-cells = <1>; >> - reg = <0x0 0x0 0x0>; >> - no-map; >> - status = "disabled"; >> - }; >> -}; >> - >> /* SDHCI is used to control the SDIO for wireless */ >> &sdhci { >> #address-cells = <1>; >> @@ -273,21 +232,6 @@ >> }; >> }; >> >> >> -&pcie0 { >> - pci@1,0 { >> - #address-cells = <3>; >> - #size-cells = <2>; >> - ranges; >> - >> - reg = <0 0 0 0 0>; >> - >> - usb@1,0 { >> - reg = <0x10000 0 0 0 0>; >> - resets = <&reset RASPBERRYPI_FIRMWARE_RESET_ID_USB>; >> - }; >> - }; >> -}; >> - > This is not relevant to CM4, maybe we should leave it in the .dts Okay > >> /* uart0 communicates with the BT module */ >> &uart0 { > What about 'uart1'? I belive the configuration is the same for all boards. pwm1 > also comes to mind. I wouldn't include pinmux dependent stuff here, because this is very specific to the board and use case [1]. But there is a trick for the Pi 400, which is very similiar to the Pi 4 B. We could include the pi4.dts in the pi400.dts. Additional i would keep this patch for CM4 and co. Regards Stefan [1] - https://afterhourscoding.wordpress.com/2021/02/21/a-list-of-raspberry-pi-compute-module-carrier-boards-and-devices/ > > Regards, > Nicolas > >