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";
188 clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 1>, <&clk_27MHz>;
189 clock-names = "hdmi", "bvb", "audio", "cec";
194 clocks = <&firmware_clocks 4>;
214 pinctrl-names = "default";
215 pinctrl-0 = <&pwm1_0_gpio40 &pwm1_1_gpio41>;
219 /* SDHCI is used to control the SDIO for wireless */
221 #address-cells = <1>;
223 pinctrl-names = "default";
224 pinctrl-0 = <&emmc_gpio34>;
227 mmc-pwrseq = <&wifi_pwrseq>;
232 compatible = "brcm,bcm4329-fmac";
236 /* EMMC2 is used to drive the SD card */
238 vqmmc-supply = <&sd_io_1v8_reg>;
239 vmmc-supply = <&sd_vcc_reg>;
245 phy-handle = <&phy1>;
246 phy-mode = "rgmii-rxid";
251 phy1: ethernet-phy@1 {
252 /* No PHY interrupt */
259 #address-cells = <3>;
266 reg = <0x10000 0 0 0 0>;
267 resets = <&reset RASPBERRYPI_FIRMWARE_RESET_ID_USB>;
272 /* uart0 communicates with the BT module */
274 pinctrl-names = "default";
275 pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32>;
280 compatible = "brcm,bcm43438-bt";
281 max-speed = <2000000>;
282 shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>;
286 /* uart1 is mapped to the pin header */
288 pinctrl-names = "default";
289 pinctrl-0 = <&uart1_gpio14>;
294 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;