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";
32 gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
37 gpios = <&expgpio 2 GPIO_ACTIVE_LOW>;
38 default-state = "keep";
39 linux,default-trigger = "default-on";
43 wifi_pwrseq: wifi-pwrseq {
44 compatible = "mmc-pwrseq-simple";
45 reset-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>;
48 sd_io_1v8_reg: sd_io_1v8_reg {
49 compatible = "regulator-gpio";
50 regulator-name = "vdd-sd-io";
51 regulator-min-microvolt = <1800000>;
52 regulator-max-microvolt = <3300000>;
55 regulator-settling-time-us = <5000>;
56 gpios = <&expgpio 4 GPIO_ACTIVE_HIGH>;
62 sd_vcc_reg: sd_vcc_reg {
63 compatible = "regulator-fixed";
64 regulator-name = "vcc-sd";
65 regulator-min-microvolt = <3300000>;
66 regulator-max-microvolt = <3300000>;
69 gpio = <&expgpio 6 GPIO_ACTIVE_HIGH>;
82 firmware_clocks: clocks {
83 compatible = "raspberrypi,firmware-clocks";
88 compatible = "raspberrypi,firmware-gpio";
91 gpio-line-names = "BT_ON",
103 compatible = "raspberrypi,firmware-reset";
110 * Parts taken from rpi_SCH_4b_4p0_reduced.pdf and
111 * the official GPU firmware DT blob.
114 * "FOO" = GPIO line named "FOO" on the schematic
115 * "FOO_N" = GPIO line named "FOO" on schematic, active low
117 gpio-line-names = "ID_SDA",
148 /* Used by BT module */
160 /* Shared with SPI flash */
182 clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 0>, <&clk_27MHz>;
183 clock-names = "hdmi", "bvb", "audio", "cec";
184 wifi-2.4ghz-coexistence;
189 clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 1>, <&clk_27MHz>;
190 clock-names = "hdmi", "bvb", "audio", "cec";
191 wifi-2.4ghz-coexistence;
196 clocks = <&firmware_clocks 4>;
216 pinctrl-names = "default";
217 pinctrl-0 = <&pwm1_0_gpio40 &pwm1_1_gpio41>;
221 /* SDHCI is used to control the SDIO for wireless */
223 #address-cells = <1>;
225 pinctrl-names = "default";
226 pinctrl-0 = <&emmc_gpio34>;
229 mmc-pwrseq = <&wifi_pwrseq>;
234 compatible = "brcm,bcm4329-fmac";
238 /* EMMC2 is used to drive the SD card */
240 vqmmc-supply = <&sd_io_1v8_reg>;
241 vmmc-supply = <&sd_vcc_reg>;
247 phy-handle = <&phy1>;
248 phy-mode = "rgmii-rxid";
253 phy1: ethernet-phy@1 {
254 /* No PHY interrupt */
261 #address-cells = <3>;
268 reg = <0x10000 0 0 0 0>;
269 resets = <&reset RASPBERRYPI_FIRMWARE_RESET_ID_USB>;
274 /* uart0 communicates with the BT module */
276 pinctrl-names = "default";
277 pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32>;
282 compatible = "brcm,bcm43438-bt";
283 max-speed = <2000000>;
284 shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>;
288 /* uart1 is mapped to the pin header */
290 pinctrl-names = "default";
291 pinctrl-0 = <&uart1_gpio14>;
296 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;