1 // SPDX-License-Identifier: GPL-2.0
3 #include "bcm2711.dtsi"
4 #include "bcm2835-rpi.dtsi"
5 #include "bcm283x-rpi-usb-peripheral.dtsi"
7 #include <dt-bindings/reset/raspberrypi,firmware-reset.h>
10 compatible = "raspberrypi,4-model-b", "brcm,bcm2711";
11 model = "Raspberry Pi 4 Model B";
14 /* 8250 auxiliary UART instead of pl011 */
15 stdout-path = "serial1:115200n8";
18 /* Will be filled by the bootloader */
20 device_type = "memory";
33 gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
38 gpios = <&expgpio 2 GPIO_ACTIVE_LOW>;
39 default-state = "keep";
40 linux,default-trigger = "default-on";
44 wifi_pwrseq: wifi-pwrseq {
45 compatible = "mmc-pwrseq-simple";
46 reset-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>;
49 sd_io_1v8_reg: sd_io_1v8_reg {
50 compatible = "regulator-gpio";
51 regulator-name = "vdd-sd-io";
52 regulator-min-microvolt = <1800000>;
53 regulator-max-microvolt = <3300000>;
56 regulator-settling-time-us = <5000>;
57 gpios = <&expgpio 4 GPIO_ACTIVE_HIGH>;
63 sd_vcc_reg: sd_vcc_reg {
64 compatible = "regulator-fixed";
65 regulator-name = "vcc-sd";
66 regulator-min-microvolt = <3300000>;
67 regulator-max-microvolt = <3300000>;
70 gpio = <&expgpio 6 GPIO_ACTIVE_HIGH>;
83 firmware_clocks: clocks {
84 compatible = "raspberrypi,firmware-clocks";
89 compatible = "raspberrypi,firmware-gpio";
92 gpio-line-names = "BT_ON",
104 compatible = "raspberrypi,firmware-reset";
111 * Parts taken from rpi_SCH_4b_4p0_reduced.pdf and
112 * the official GPU firmware DT blob.
115 * "FOO" = GPIO line named "FOO" on the schematic
116 * "FOO_N" = GPIO line named "FOO" on schematic, active low
118 gpio-line-names = "ID_SDA",
149 /* Used by BT module */
161 /* Shared with SPI flash */
183 clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 0>, <&clk_27MHz>;
184 clock-names = "hdmi", "bvb", "audio", "cec";
185 wifi-2.4ghz-coexistence;
190 clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 1>, <&clk_27MHz>;
191 clock-names = "hdmi", "bvb", "audio", "cec";
192 wifi-2.4ghz-coexistence;
197 clocks = <&firmware_clocks 4>;
217 pinctrl-names = "default";
218 pinctrl-0 = <&pwm1_0_gpio40 &pwm1_1_gpio41>;
224 * RPi4's co-processor will copy the board's bootloader configuration
225 * into memory for the OS to consume. It'll also update this node with
226 * its placement information.
229 compatible = "raspberrypi,bootloader-config", "nvmem-rmem";
230 #address-cells = <1>;
238 /* SDHCI is used to control the SDIO for wireless */
240 #address-cells = <1>;
242 pinctrl-names = "default";
243 pinctrl-0 = <&emmc_gpio34>;
246 mmc-pwrseq = <&wifi_pwrseq>;
251 compatible = "brcm,bcm4329-fmac";
255 /* EMMC2 is used to drive the SD card */
257 vqmmc-supply = <&sd_io_1v8_reg>;
258 vmmc-supply = <&sd_vcc_reg>;
264 phy-handle = <&phy1>;
265 phy-mode = "rgmii-rxid";
270 phy1: ethernet-phy@1 {
271 /* No PHY interrupt */
278 #address-cells = <3>;
285 reg = <0x10000 0 0 0 0>;
286 resets = <&reset RASPBERRYPI_FIRMWARE_RESET_ID_USB>;
291 /* uart0 communicates with the BT module */
293 pinctrl-names = "default";
294 pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32>;
299 compatible = "brcm,bcm43438-bt";
300 max-speed = <2000000>;
301 shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>;
305 /* uart1 is mapped to the pin header */
307 pinctrl-names = "default";
308 pinctrl-0 = <&uart1_gpio14>;
313 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;