]> www.infradead.org Git - users/willy/xarray.git/commitdiff
ARM: dts: bcm: Add support for Raspberry Pi 2 (2nd rev)
authorStefan Wahren <wahrenst@gmx.net>
Fri, 18 Apr 2025 14:33:06 +0000 (16:33 +0200)
committerFlorian Fainelli <florian.fainelli@broadcom.com>
Mon, 5 May 2025 13:38:41 +0000 (06:38 -0700)
The Raspberry Pi 2 (2nd rev) has the BCM2837 SoC instead of the
BCM2836. Except of this the configuration of the board is same
as the predecessor (no WLAN, no BT).

Signed-off-by: Stefan Wahren <wahrenst@gmx.net>
Link: https://lore.kernel.org/r/20250418143307.59235-3-wahrenst@gmx.net
Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
arch/arm/boot/dts/broadcom/Makefile
arch/arm/boot/dts/broadcom/bcm2837-rpi-2-b.dts [new file with mode: 0644]

index d23cf466127b053ae25fad9d9eb6dfcb40866caf..71062ff9adbe07ee043d00ac00e12b64f5c464d1 100644 (file)
@@ -7,6 +7,7 @@ DTC_FLAGS_bcm2835-rpi-b-plus := -@
 DTC_FLAGS_bcm2835-rpi-a-plus := -@
 DTC_FLAGS_bcm2835-rpi-cm1-io1 := -@
 DTC_FLAGS_bcm2836-rpi-2-b := -@
+DTC_FLAGS_bcm2837-rpi-2-b := -@
 DTC_FLAGS_bcm2837-rpi-3-a-plus := -@
 DTC_FLAGS_bcm2837-rpi-3-b := -@
 DTC_FLAGS_bcm2837-rpi-3-b-plus := -@
@@ -25,6 +26,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += \
        bcm2835-rpi-a-plus.dtb \
        bcm2835-rpi-cm1-io1.dtb \
        bcm2836-rpi-2-b.dtb \
+       bcm2837-rpi-2-b.dtb \
        bcm2837-rpi-3-a-plus.dtb \
        bcm2837-rpi-3-b.dtb \
        bcm2837-rpi-3-b-plus.dtb \
diff --git a/arch/arm/boot/dts/broadcom/bcm2837-rpi-2-b.dts b/arch/arm/boot/dts/broadcom/bcm2837-rpi-2-b.dts
new file mode 100644 (file)
index 0000000..1868cee
--- /dev/null
@@ -0,0 +1,130 @@
+// SPDX-License-Identifier: GPL-2.0
+/dts-v1/;
+#include "bcm2837.dtsi"
+#include "bcm2836-rpi.dtsi"
+#include "bcm283x-rpi-led-deprecated.dtsi"
+#include "bcm283x-rpi-smsc9514.dtsi"
+#include "bcm283x-rpi-usb-host.dtsi"
+
+/ {
+       compatible = "raspberrypi,2-model-b-rev2", "brcm,bcm2837";
+       model = "Raspberry Pi 2 Model B rev 1.2";
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0 0x40000000>;
+       };
+};
+
+&gpio {
+       /*
+        * Taken from rpi_SCH_2b_1p2_reduced.pdf and
+        * the official GPU firmware DT blob.
+        *
+        * Legend:
+        * "FOO" = GPIO line named "FOO" on the schematic
+        * "FOO_N" = GPIO line named "FOO" on schematic, active low
+        */
+       gpio-line-names = "ID_SDA",
+                         "ID_SCL",
+                         "GPIO2",
+                         "GPIO3",
+                         "GPIO4",
+                         "GPIO5",
+                         "GPIO6",
+                         "GPIO7",
+                         "GPIO8",
+                         "GPIO9",
+                         "GPIO10",
+                         "GPIO11",
+                         "GPIO12",
+                         "GPIO13",
+                         "GPIO14",
+                         "GPIO15",
+                         "GPIO16",
+                         "GPIO17",
+                         "GPIO18",
+                         "GPIO19",
+                         "GPIO20",
+                         "GPIO21",
+                         "GPIO22",
+                         "GPIO23",
+                         "GPIO24",
+                         "GPIO25",
+                         "GPIO26",
+                         "GPIO27",
+                         "SDA0",
+                         "SCL0",
+                         "", /* GPIO30 */
+                         "LAN_RUN",
+                         "CAM_GPIO1",
+                         "", /* GPIO33 */
+                         "", /* GPIO34 */
+                         "PWR_LOW_N",
+                         "", /* GPIO36 */
+                         "", /* GPIO37 */
+                         "USB_LIMIT",
+                         "", /* GPIO39 */
+                         "PWM0_OUT",
+                         "CAM_GPIO0",
+                         "SMPS_SCL",
+                         "SMPS_SDA",
+                         "ETH_CLK",
+                         "PWM1_OUT",
+                         "HDMI_HPD_N",
+                         "STATUS_LED",
+                         /* Used by SD Card */
+                         "SD_CLK_R",
+                         "SD_CMD_R",
+                         "SD_DATA0_R",
+                         "SD_DATA1_R",
+                         "SD_DATA2_R",
+                         "SD_DATA3_R";
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&gpioout &alt0 &i2s_alt0>;
+
+       /* I2S interface */
+       i2s_alt0: i2s_alt0 {
+               brcm,pins = <18 19 20 21>;
+               brcm,function = <BCM2835_FSEL_ALT0>;
+       };
+};
+
+&hdmi {
+       hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
+       power-domains = <&power RPI_POWER_DOMAIN_HDMI>;
+       status = "okay";
+};
+
+&led_act {
+       gpios = <&gpio 47 GPIO_ACTIVE_HIGH>;
+};
+
+&leds {
+       led-pwr {
+               label = "PWR";
+               gpios = <&gpio 35 GPIO_ACTIVE_HIGH>;
+               default-state = "keep";
+               linux,default-trigger = "default-on";
+       };
+};
+
+&pwm {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio45>;
+       status = "okay";
+};
+
+&sdhost {
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdhost_gpio48>;
+       bus-width = <4>;
+       status = "okay";
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_gpio14>;
+       status = "okay";
+};