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