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