blob: 1b5a835f66bd3de475e8229cc2302576f3c57b45 [file] [log] [blame]
Stefan Wahren7dbe8c62019-10-06 15:41:25 +02001// SPDX-License-Identifier: GPL-2.0
2/dts-v1/;
3#include "bcm2711.dtsi"
4#include "bcm2835-rpi.dtsi"
5#include "bcm283x-rpi-usb-peripheral.dtsi"
6
7/ {
8 compatible = "raspberrypi,4-model-b", "brcm,bcm2711";
9 model = "Raspberry Pi 4 Model B";
10
11 chosen {
12 /* 8250 auxiliary UART instead of pl011 */
13 stdout-path = "serial1:115200n8";
14 };
15
16 /* Will be filled by the bootloader */
17 memory@0 {
18 device_type = "memory";
19 reg = <0 0 0>;
20 };
21
Stefan Wahrenbe8af7a2019-11-11 20:49:26 +010022 aliases {
23 ethernet0 = &genet;
24 };
25
Stefan Wahren7dbe8c62019-10-06 15:41:25 +020026 leds {
27 act {
28 gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
29 };
30
31 pwr {
32 label = "PWR";
33 gpios = <&expgpio 2 GPIO_ACTIVE_LOW>;
34 };
35 };
36
37 wifi_pwrseq: wifi-pwrseq {
38 compatible = "mmc-pwrseq-simple";
39 reset-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>;
40 };
41
42 sd_io_1v8_reg: sd_io_1v8_reg {
43 compatible = "regulator-gpio";
44 regulator-name = "vdd-sd-io";
45 regulator-min-microvolt = <1800000>;
46 regulator-max-microvolt = <3300000>;
47 regulator-boot-on;
48 regulator-always-on;
49 regulator-settling-time-us = <5000>;
50 gpios = <&expgpio 4 GPIO_ACTIVE_HIGH>;
51 states = <1800000 0x1
52 3300000 0x0>;
53 status = "okay";
54 };
55};
56
57&firmware {
58 expgpio: gpio {
59 compatible = "raspberrypi,firmware-gpio";
60 gpio-controller;
61 #gpio-cells = <2>;
62 gpio-line-names = "BT_ON",
63 "WL_ON",
64 "PWR_LED_OFF",
65 "GLOBAL_RESET",
66 "VDD_SD_IO_SEL",
67 "CAM_GPIO",
68 "",
69 "";
70 status = "okay";
71 };
72};
73
74&pwm1 {
75 pinctrl-names = "default";
76 pinctrl-0 = <&pwm1_0_gpio40 &pwm1_1_gpio41>;
77 status = "okay";
78};
79
80/* SDHCI is used to control the SDIO for wireless */
81&sdhci {
82 #address-cells = <1>;
83 #size-cells = <0>;
84 pinctrl-names = "default";
85 pinctrl-0 = <&emmc_gpio34>;
86 bus-width = <4>;
87 non-removable;
88 mmc-pwrseq = <&wifi_pwrseq>;
89 status = "okay";
90
91 brcmf: wifi@1 {
92 reg = <1>;
93 compatible = "brcm,bcm4329-fmac";
94 };
95};
96
97/* EMMC2 is used to drive the SD card */
98&emmc2 {
99 vqmmc-supply = <&sd_io_1v8_reg>;
100 broken-cd;
101 status = "okay";
102};
103
Stefan Wahrenbe8af7a2019-11-11 20:49:26 +0100104&genet {
105 phy-handle = <&phy1>;
106 phy-mode = "rgmii-rxid";
107 status = "okay";
108};
109
110&genet_mdio {
111 phy1: ethernet-phy@1 {
112 /* No PHY interrupt */
113 reg = <0x1>;
114 };
115};
116
Stefan Wahren7dbe8c62019-10-06 15:41:25 +0200117/* uart0 communicates with the BT module */
118&uart0 {
119 pinctrl-names = "default";
120 pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32>;
121 uart-has-rtscts;
122 status = "okay";
123
124 bluetooth {
125 compatible = "brcm,bcm43438-bt";
126 max-speed = <2000000>;
127 shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>;
128 };
129};
130
131/* uart1 is mapped to the pin header */
132&uart1 {
133 pinctrl-names = "default";
134 pinctrl-0 = <&uart1_gpio14>;
135 status = "okay";
136};
137
138&vchiq {
139 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
140};