// SPDX-License-Identifier: GPL-2.0 /dts-v1/; #include "bcm2711.dtsi" #include "bcm2711-rpi.dtsi" #include "bcm283x-rpi-led-deprecated.dtsi" #include "bcm283x-rpi-usb-peripheral.dtsi" #include "bcm283x-rpi-wifi-bt.dtsi" / { compatible = "raspberrypi,4-model-b", "brcm,bcm2711"; model = "Raspberry Pi 4 Model B"; chosen { /* 8250 auxiliary UART instead of pl011 */ stdout-path = "serial1:115200n8"; }; cam1_reg: regulator-cam1 { compatible = "regulator-fixed"; regulator-name = "cam1-reg"; enable-active-high; gpio = <&expgpio 5 GPIO_ACTIVE_HIGH>; }; sd_io_1v8_reg: regulator-sd-io-1v8 { compatible = "regulator-gpio"; regulator-name = "vdd-sd-io"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3300000>; regulator-boot-on; regulator-always-on; regulator-settling-time-us = <5000>; gpios = <&expgpio 4 GPIO_ACTIVE_HIGH>; states = <1800000 0x1>, <3300000 0x0>; status = "okay"; }; sd_vcc_reg: regulator-sd-vcc { compatible = "regulator-fixed"; regulator-name = "vcc-sd"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-boot-on; enable-active-high; gpio = <&expgpio 6 GPIO_ACTIVE_HIGH>; }; }; &bt { shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>; }; &ddc0 { status = "okay"; }; &ddc1 { status = "okay"; }; &expgpio { gpio-line-names = "BT_ON", /* 0 */ "WL_ON", "PWR_LED_OFF", "GLOBAL_RESET", "VDD_SD_IO_SEL", "CAM_GPIO", /* 5 */ "SD_PWR_ON", ""; }; &gpio { /* * Parts taken from rpi_SCH_4b_4p0_reduced.pdf and * the official GPU firmware DT blob. * * Legend: * "FOO" = GPIO line named "FOO" on the schematic * "FOO_N" = GPIO line named "FOO" on schematic, active low */ gpio-line-names = "ID_SDA", /* 0 */ "ID_SCL", "SDA1", "SCL1", "GPIO_GCLK", "GPIO5", /* 5 */ "GPIO6", "SPI_CE1_N", "SPI_CE0_N", "SPI_MISO", "SPI_MOSI", /* 10 */ "SPI_SCLK", "GPIO12", "GPIO13", /* Serial port */ "TXD1", "RXD1", /* 15 */ "GPIO16", "GPIO17", "GPIO18", "GPIO19", "GPIO20", /* 20 */ "GPIO21", "GPIO22", "GPIO23", "GPIO24", "GPIO25", /* 25 */ "GPIO26", "GPIO27", "RGMII_MDIO", "RGMIO_MDC", /* Used by BT module */ "CTS0", /* 30 */ "RTS0", "TXD0", "RXD0", /* Used by Wifi */ "SD1_CLK", "SD1_CMD", /* 35 */ "SD1_DATA0", "SD1_DATA1", "SD1_DATA2", "SD1_DATA3", /* Shared with SPI flash */ "PWM0_MISO", /* 40 */ "PWM1_MOSI", "STATUS_LED_G_CLK", "SPIFLASH_CE_N", "SDA0", "SCL0", /* 45 */ "RGMII_RXCLK", "RGMII_RXCTL", "RGMII_RXD0", "RGMII_RXD1", "RGMII_RXD2", /* 50 */ "RGMII_RXD3", "RGMII_TXCLK", "RGMII_TXCTL", "RGMII_TXD0", "RGMII_TXD1", /* 55 */ "RGMII_TXD2", "RGMII_TXD3"; }; &hdmi0 { status = "okay"; }; &hdmi1 { status = "okay"; }; &led_act { gpios = <&gpio 42 GPIO_ACTIVE_HIGH>; }; &leds { led_pwr: led-pwr { label = "PWR"; gpios = <&expgpio 2 GPIO_ACTIVE_LOW>; default-state = "keep"; linux,default-trigger = "default-on"; }; }; &pixelvalve0 { status = "okay"; }; &pixelvalve1 { status = "okay"; }; &pixelvalve2 { status = "okay"; }; &pixelvalve4 { status = "okay"; }; &pwm1 { pinctrl-names = "default"; pinctrl-0 = <&pwm1_0_gpio40 &pwm1_1_gpio41>; status = "okay"; }; /* EMMC2 is used to drive the SD card */ &emmc2 { vqmmc-supply = <&sd_io_1v8_reg>; vmmc-supply = <&sd_vcc_reg>; broken-cd; status = "okay"; }; &genet { phy-handle = <&phy1>; phy-mode = "rgmii-rxid"; status = "okay"; }; &genet_mdio { phy1: ethernet-phy@1 { /* No PHY interrupt */ reg = <0x1>; }; }; &pcie0 { pci@0,0 { device_type = "pci"; #address-cells = <3>; #size-cells = <2>; ranges; reg = <0 0 0 0 0>; usb@0,0 { reg = <0 0 0 0 0>; resets = <&reset RASPBERRYPI_FIRMWARE_RESET_ID_USB>; }; }; }; /* uart0 communicates with the BT module */ &uart0 { pinctrl-names = "default"; pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32>; uart-has-rtscts; }; /* uart1 is mapped to the pin header */ &uart1 { pinctrl-names = "default"; pinctrl-0 = <&uart1_gpio14>; status = "okay"; }; &vc4 { status = "okay"; }; &vec { status = "disabled"; }; &wifi_pwrseq { reset-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>; };