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