Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: dts: bcm: Add support for Raspberry Pi 2 (2nd rev)

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>

authored by

Stefan Wahren and committed by
Florian Fainelli
b0903497 8dbcbf93

+132
+2
arch/arm/boot/dts/broadcom/Makefile
··· 7 7 DTC_FLAGS_bcm2835-rpi-a-plus := -@ 8 8 DTC_FLAGS_bcm2835-rpi-cm1-io1 := -@ 9 9 DTC_FLAGS_bcm2836-rpi-2-b := -@ 10 + DTC_FLAGS_bcm2837-rpi-2-b := -@ 10 11 DTC_FLAGS_bcm2837-rpi-3-a-plus := -@ 11 12 DTC_FLAGS_bcm2837-rpi-3-b := -@ 12 13 DTC_FLAGS_bcm2837-rpi-3-b-plus := -@ ··· 26 25 bcm2835-rpi-a-plus.dtb \ 27 26 bcm2835-rpi-cm1-io1.dtb \ 28 27 bcm2836-rpi-2-b.dtb \ 28 + bcm2837-rpi-2-b.dtb \ 29 29 bcm2837-rpi-3-a-plus.dtb \ 30 30 bcm2837-rpi-3-b.dtb \ 31 31 bcm2837-rpi-3-b-plus.dtb \
+130
arch/arm/boot/dts/broadcom/bcm2837-rpi-2-b.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0 2 + /dts-v1/; 3 + #include "bcm2837.dtsi" 4 + #include "bcm2836-rpi.dtsi" 5 + #include "bcm283x-rpi-led-deprecated.dtsi" 6 + #include "bcm283x-rpi-smsc9514.dtsi" 7 + #include "bcm283x-rpi-usb-host.dtsi" 8 + 9 + / { 10 + compatible = "raspberrypi,2-model-b-rev2", "brcm,bcm2837"; 11 + model = "Raspberry Pi 2 Model B rev 1.2"; 12 + 13 + memory@0 { 14 + device_type = "memory"; 15 + reg = <0 0x40000000>; 16 + }; 17 + }; 18 + 19 + &gpio { 20 + /* 21 + * Taken from rpi_SCH_2b_1p2_reduced.pdf and 22 + * the official GPU firmware DT blob. 23 + * 24 + * Legend: 25 + * "FOO" = GPIO line named "FOO" on the schematic 26 + * "FOO_N" = GPIO line named "FOO" on schematic, active low 27 + */ 28 + gpio-line-names = "ID_SDA", 29 + "ID_SCL", 30 + "GPIO2", 31 + "GPIO3", 32 + "GPIO4", 33 + "GPIO5", 34 + "GPIO6", 35 + "GPIO7", 36 + "GPIO8", 37 + "GPIO9", 38 + "GPIO10", 39 + "GPIO11", 40 + "GPIO12", 41 + "GPIO13", 42 + "GPIO14", 43 + "GPIO15", 44 + "GPIO16", 45 + "GPIO17", 46 + "GPIO18", 47 + "GPIO19", 48 + "GPIO20", 49 + "GPIO21", 50 + "GPIO22", 51 + "GPIO23", 52 + "GPIO24", 53 + "GPIO25", 54 + "GPIO26", 55 + "GPIO27", 56 + "SDA0", 57 + "SCL0", 58 + "", /* GPIO30 */ 59 + "LAN_RUN", 60 + "CAM_GPIO1", 61 + "", /* GPIO33 */ 62 + "", /* GPIO34 */ 63 + "PWR_LOW_N", 64 + "", /* GPIO36 */ 65 + "", /* GPIO37 */ 66 + "USB_LIMIT", 67 + "", /* GPIO39 */ 68 + "PWM0_OUT", 69 + "CAM_GPIO0", 70 + "SMPS_SCL", 71 + "SMPS_SDA", 72 + "ETH_CLK", 73 + "PWM1_OUT", 74 + "HDMI_HPD_N", 75 + "STATUS_LED", 76 + /* Used by SD Card */ 77 + "SD_CLK_R", 78 + "SD_CMD_R", 79 + "SD_DATA0_R", 80 + "SD_DATA1_R", 81 + "SD_DATA2_R", 82 + "SD_DATA3_R"; 83 + 84 + pinctrl-names = "default"; 85 + pinctrl-0 = <&gpioout &alt0 &i2s_alt0>; 86 + 87 + /* I2S interface */ 88 + i2s_alt0: i2s_alt0 { 89 + brcm,pins = <18 19 20 21>; 90 + brcm,function = <BCM2835_FSEL_ALT0>; 91 + }; 92 + }; 93 + 94 + &hdmi { 95 + hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; 96 + power-domains = <&power RPI_POWER_DOMAIN_HDMI>; 97 + status = "okay"; 98 + }; 99 + 100 + &led_act { 101 + gpios = <&gpio 47 GPIO_ACTIVE_HIGH>; 102 + }; 103 + 104 + &leds { 105 + led-pwr { 106 + label = "PWR"; 107 + gpios = <&gpio 35 GPIO_ACTIVE_HIGH>; 108 + default-state = "keep"; 109 + linux,default-trigger = "default-on"; 110 + }; 111 + }; 112 + 113 + &pwm { 114 + pinctrl-names = "default"; 115 + pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio45>; 116 + status = "okay"; 117 + }; 118 + 119 + &sdhost { 120 + pinctrl-names = "default"; 121 + pinctrl-0 = <&sdhost_gpio48>; 122 + bus-width = <4>; 123 + status = "okay"; 124 + }; 125 + 126 + &uart0 { 127 + pinctrl-names = "default"; 128 + pinctrl-0 = <&uart0_gpio14>; 129 + status = "okay"; 130 + };