| // SPDX-License-Identifier: GPL-2.0 |
| /dts-v1/; |
| #include "bcm2711.dtsi" |
| #include "bcm2835-rpi.dtsi" |
| #include "bcm283x-rpi-usb-peripheral.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"; |
| }; |
| |
| /* Will be filled by the bootloader */ |
| memory@0 { |
| device_type = "memory"; |
| reg = <0 0 0>; |
| }; |
| |
| aliases { |
| ethernet0 = &genet; |
| }; |
| |
| leds { |
| act { |
| gpios = <&gpio 42 GPIO_ACTIVE_HIGH>; |
| }; |
| |
| pwr { |
| label = "PWR"; |
| gpios = <&expgpio 2 GPIO_ACTIVE_LOW>; |
| }; |
| }; |
| |
| wifi_pwrseq: wifi-pwrseq { |
| compatible = "mmc-pwrseq-simple"; |
| reset-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>; |
| }; |
| |
| sd_io_1v8_reg: sd_io_1v8_reg { |
| 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"; |
| }; |
| }; |
| |
| &firmware { |
| expgpio: gpio { |
| compatible = "raspberrypi,firmware-gpio"; |
| gpio-controller; |
| #gpio-cells = <2>; |
| gpio-line-names = "BT_ON", |
| "WL_ON", |
| "PWR_LED_OFF", |
| "GLOBAL_RESET", |
| "VDD_SD_IO_SEL", |
| "CAM_GPIO", |
| "", |
| ""; |
| status = "okay"; |
| }; |
| }; |
| |
| &pwm1 { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pwm1_0_gpio40 &pwm1_1_gpio41>; |
| status = "okay"; |
| }; |
| |
| /* SDHCI is used to control the SDIO for wireless */ |
| &sdhci { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&emmc_gpio34>; |
| bus-width = <4>; |
| non-removable; |
| mmc-pwrseq = <&wifi_pwrseq>; |
| status = "okay"; |
| |
| brcmf: wifi@1 { |
| reg = <1>; |
| compatible = "brcm,bcm4329-fmac"; |
| }; |
| }; |
| |
| /* EMMC2 is used to drive the SD card */ |
| &emmc2 { |
| vqmmc-supply = <&sd_io_1v8_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>; |
| }; |
| }; |
| |
| /* uart0 communicates with the BT module */ |
| &uart0 { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32>; |
| uart-has-rtscts; |
| status = "okay"; |
| |
| bluetooth { |
| compatible = "brcm,bcm43438-bt"; |
| max-speed = <2000000>; |
| shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>; |
| }; |
| }; |
| |
| /* uart1 is mapped to the pin header */ |
| &uart1 { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&uart1_gpio14>; |
| status = "okay"; |
| }; |
| |
| &vchiq { |
| interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; |
| }; |