1// SPDX-License-Identifier: GPL-2.0 2/dts-v1/; 3#include "bcm2711.dtsi" 4#include "bcm2711-rpi.dtsi" 5#include "bcm283x-rpi-led-deprecated.dtsi" 6#include "bcm283x-rpi-usb-peripheral.dtsi" 7#include "bcm283x-rpi-wifi-bt.dtsi" 8#include <dt-bindings/leds/common.h> 9 10/ { 11 compatible = "raspberrypi,4-model-b", "brcm,bcm2711"; 12 model = "Raspberry Pi 4 Model B"; 13 14 chosen { 15 /* 8250 auxiliary UART instead of pl011 */ 16 stdout-path = "serial1:115200n8"; 17 }; 18 19 cam1_reg: regulator-cam1 { 20 compatible = "regulator-fixed"; 21 regulator-name = "cam1-reg"; 22 enable-active-high; 23 gpio = <&expgpio 5 GPIO_ACTIVE_HIGH>; 24 }; 25 26 sd_io_1v8_reg: regulator-sd-io-1v8 { 27 compatible = "regulator-gpio"; 28 regulator-name = "vdd-sd-io"; 29 regulator-min-microvolt = <1800000>; 30 regulator-max-microvolt = <3300000>; 31 regulator-boot-on; 32 regulator-always-on; 33 regulator-settling-time-us = <5000>; 34 gpios = <&expgpio 4 GPIO_ACTIVE_HIGH>; 35 states = <1800000 0x1>, 36 <3300000 0x0>; 37 status = "okay"; 38 }; 39 40 sd_vcc_reg: regulator-sd-vcc { 41 compatible = "regulator-fixed"; 42 regulator-name = "vcc-sd"; 43 regulator-min-microvolt = <3300000>; 44 regulator-max-microvolt = <3300000>; 45 regulator-boot-on; 46 enable-active-high; 47 gpio = <&expgpio 6 GPIO_ACTIVE_HIGH>; 48 }; 49}; 50 51&bt { 52 shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>; 53}; 54 55&ddc0 { 56 status = "okay"; 57}; 58 59&ddc1 { 60 status = "okay"; 61}; 62 63&expgpio { 64 gpio-line-names = "BT_ON", /* 0 */ 65 "WL_ON", 66 "PWR_LED_OFF", 67 "GLOBAL_RESET", 68 "VDD_SD_IO_SEL", 69 "CAM_GPIO", /* 5 */ 70 "SD_PWR_ON", 71 ""; 72}; 73 74&gpio { 75 /* 76 * Parts taken from rpi_SCH_4b_4p0_reduced.pdf and 77 * the official GPU firmware DT blob. 78 * 79 * Legend: 80 * "FOO" = GPIO line named "FOO" on the schematic 81 * "FOO_N" = GPIO line named "FOO" on schematic, active low 82 */ 83 gpio-line-names = "ID_SDA", /* 0 */ 84 "ID_SCL", 85 "SDA1", 86 "SCL1", 87 "GPIO_GCLK", 88 "GPIO5", /* 5 */ 89 "GPIO6", 90 "SPI_CE1_N", 91 "SPI_CE0_N", 92 "SPI_MISO", 93 "SPI_MOSI", /* 10 */ 94 "SPI_SCLK", 95 "GPIO12", 96 "GPIO13", 97 /* Serial port */ 98 "TXD1", 99 "RXD1", /* 15 */ 100 "GPIO16", 101 "GPIO17", 102 "GPIO18", 103 "GPIO19", 104 "GPIO20", /* 20 */ 105 "GPIO21", 106 "GPIO22", 107 "GPIO23", 108 "GPIO24", 109 "GPIO25", /* 25 */ 110 "GPIO26", 111 "GPIO27", 112 "RGMII_MDIO", 113 "RGMIO_MDC", 114 /* Used by BT module */ 115 "CTS0", /* 30 */ 116 "RTS0", 117 "TXD0", 118 "RXD0", 119 /* Used by Wifi */ 120 "SD1_CLK", 121 "SD1_CMD", /* 35 */ 122 "SD1_DATA0", 123 "SD1_DATA1", 124 "SD1_DATA2", 125 "SD1_DATA3", 126 /* Shared with SPI flash */ 127 "PWM0_MISO", /* 40 */ 128 "PWM1_MOSI", 129 "STATUS_LED_G_CLK", 130 "SPIFLASH_CE_N", 131 "SDA0", 132 "SCL0", /* 45 */ 133 "RGMII_RXCLK", 134 "RGMII_RXCTL", 135 "RGMII_RXD0", 136 "RGMII_RXD1", 137 "RGMII_RXD2", /* 50 */ 138 "RGMII_RXD3", 139 "RGMII_TXCLK", 140 "RGMII_TXCTL", 141 "RGMII_TXD0", 142 "RGMII_TXD1", /* 55 */ 143 "RGMII_TXD2", 144 "RGMII_TXD3"; 145}; 146 147&hdmi0 { 148 status = "okay"; 149}; 150 151&hdmi1 { 152 status = "okay"; 153}; 154 155&led_act { 156 gpios = <&gpio 42 GPIO_ACTIVE_HIGH>; 157}; 158 159&leds { 160 led_pwr: led-pwr { 161 label = "PWR"; 162 gpios = <&expgpio 2 GPIO_ACTIVE_LOW>; 163 default-state = "keep"; 164 linux,default-trigger = "default-on"; 165 }; 166}; 167 168&pixelvalve0 { 169 status = "okay"; 170}; 171 172&pixelvalve1 { 173 status = "okay"; 174}; 175 176&pixelvalve2 { 177 status = "okay"; 178}; 179 180&pixelvalve4 { 181 status = "okay"; 182}; 183 184&pwm1 { 185 pinctrl-names = "default"; 186 pinctrl-0 = <&pwm1_0_gpio40 &pwm1_1_gpio41>; 187 status = "okay"; 188}; 189 190/* EMMC2 is used to drive the SD card */ 191&emmc2 { 192 vqmmc-supply = <&sd_io_1v8_reg>; 193 vmmc-supply = <&sd_vcc_reg>; 194 broken-cd; 195 status = "okay"; 196}; 197 198&genet { 199 phy-handle = <&phy1>; 200 phy-mode = "rgmii-rxid"; 201 status = "okay"; 202}; 203 204&genet_mdio { 205 phy1: ethernet-phy@1 { 206 /* No PHY interrupt */ 207 reg = <0x1>; 208 209 leds { 210 #address-cells = <1>; 211 #size-cells = <0>; 212 213 /* LED1 */ 214 led@0 { 215 reg = <0>; 216 color = <LED_COLOR_ID_GREEN>; 217 function = LED_FUNCTION_LAN; 218 default-state = "keep"; 219 }; 220 221 /* LED2 */ 222 led@1 { 223 reg = <1>; 224 color = <LED_COLOR_ID_AMBER>; 225 function = LED_FUNCTION_LAN; 226 default-state = "keep"; 227 }; 228 }; 229 }; 230}; 231 232&pcie0 { 233 pci@0,0 { 234 device_type = "pci"; 235 #address-cells = <3>; 236 #size-cells = <2>; 237 ranges; 238 239 reg = <0 0 0 0 0>; 240 241 usb@0,0 { 242 reg = <0 0 0 0 0>; 243 resets = <&reset RASPBERRYPI_FIRMWARE_RESET_ID_USB>; 244 }; 245 }; 246}; 247 248/* uart0 communicates with the BT module */ 249&uart0 { 250 pinctrl-names = "default"; 251 pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32>; 252 uart-has-rtscts; 253}; 254 255/* uart1 is mapped to the pin header */ 256&uart1 { 257 pinctrl-names = "default"; 258 pinctrl-0 = <&uart1_gpio14>; 259 status = "okay"; 260}; 261 262&vc4 { 263 status = "okay"; 264}; 265 266&vec { 267 status = "disabled"; 268}; 269 270&wifi_pwrseq { 271 reset-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>; 272}; 273