xref: /OK3568_Linux_fs/kernel/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0+
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * Copyright (C) 2017 Stefan Wahren <stefan.wahren@i2se.com>
4*4882a593Smuzhiyun */
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun/dts-v1/;
7*4882a593Smuzhiyun#include "bcm2835.dtsi"
8*4882a593Smuzhiyun#include "bcm2835-rpi.dtsi"
9*4882a593Smuzhiyun#include "bcm283x-rpi-usb-otg.dtsi"
10*4882a593Smuzhiyun
11*4882a593Smuzhiyun/ {
12*4882a593Smuzhiyun	compatible = "raspberrypi,model-zero-w", "brcm,bcm2835";
13*4882a593Smuzhiyun	model = "Raspberry Pi Zero W";
14*4882a593Smuzhiyun
15*4882a593Smuzhiyun	memory@0 {
16*4882a593Smuzhiyun		device_type = "memory";
17*4882a593Smuzhiyun		reg = <0 0x20000000>;
18*4882a593Smuzhiyun	};
19*4882a593Smuzhiyun
20*4882a593Smuzhiyun	chosen {
21*4882a593Smuzhiyun		/* 8250 auxiliary UART instead of pl011 */
22*4882a593Smuzhiyun		stdout-path = "serial1:115200n8";
23*4882a593Smuzhiyun	};
24*4882a593Smuzhiyun
25*4882a593Smuzhiyun	leds {
26*4882a593Smuzhiyun		led-act {
27*4882a593Smuzhiyun			gpios = <&gpio 47 GPIO_ACTIVE_LOW>;
28*4882a593Smuzhiyun		};
29*4882a593Smuzhiyun	};
30*4882a593Smuzhiyun
31*4882a593Smuzhiyun	wifi_pwrseq: wifi-pwrseq {
32*4882a593Smuzhiyun		compatible = "mmc-pwrseq-simple";
33*4882a593Smuzhiyun		reset-gpios = <&gpio 41 GPIO_ACTIVE_LOW>;
34*4882a593Smuzhiyun	};
35*4882a593Smuzhiyun};
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun&gpio {
38*4882a593Smuzhiyun	/*
39*4882a593Smuzhiyun	 * This is based on the official GPU firmware DT blob.
40*4882a593Smuzhiyun	 *
41*4882a593Smuzhiyun	 * Legend:
42*4882a593Smuzhiyun	 * "NC" = not connected (no rail from the SoC)
43*4882a593Smuzhiyun	 * "FOO" = GPIO line named "FOO" on the schematic
44*4882a593Smuzhiyun	 * "FOO_N" = GPIO line named "FOO" on schematic, active low
45*4882a593Smuzhiyun	 */
46*4882a593Smuzhiyun	gpio-line-names = "ID_SDA",
47*4882a593Smuzhiyun			  "ID_SCL",
48*4882a593Smuzhiyun			  "SDA1",
49*4882a593Smuzhiyun			  "SCL1",
50*4882a593Smuzhiyun			  "GPIO_GCLK",
51*4882a593Smuzhiyun			  "GPIO5",
52*4882a593Smuzhiyun			  "GPIO6",
53*4882a593Smuzhiyun			  "SPI_CE1_N",
54*4882a593Smuzhiyun			  "SPI_CE0_N",
55*4882a593Smuzhiyun			  "SPI_MISO",
56*4882a593Smuzhiyun			  "SPI_MOSI",
57*4882a593Smuzhiyun			  "SPI_SCLK",
58*4882a593Smuzhiyun			  "GPIO12",
59*4882a593Smuzhiyun			  "GPIO13",
60*4882a593Smuzhiyun			  /* Serial port */
61*4882a593Smuzhiyun			  "TXD0",
62*4882a593Smuzhiyun			  "RXD0",
63*4882a593Smuzhiyun			  "GPIO16",
64*4882a593Smuzhiyun			  "GPIO17",
65*4882a593Smuzhiyun			  "GPIO18",
66*4882a593Smuzhiyun			  "GPIO19",
67*4882a593Smuzhiyun			  "GPIO20",
68*4882a593Smuzhiyun			  "GPIO21",
69*4882a593Smuzhiyun			  "GPIO22",
70*4882a593Smuzhiyun			  "GPIO23",
71*4882a593Smuzhiyun			  "GPIO24",
72*4882a593Smuzhiyun			  "GPIO25",
73*4882a593Smuzhiyun			  "GPIO26",
74*4882a593Smuzhiyun			  "GPIO27",
75*4882a593Smuzhiyun			  "SDA0",
76*4882a593Smuzhiyun			  "SCL0",
77*4882a593Smuzhiyun			  /* Used by BT module */
78*4882a593Smuzhiyun			  "CTS0",
79*4882a593Smuzhiyun			  "RTS0",
80*4882a593Smuzhiyun			  "TXD0",
81*4882a593Smuzhiyun			  "RXD0",
82*4882a593Smuzhiyun			  /* Used by Wifi */
83*4882a593Smuzhiyun			  "SD1_CLK",
84*4882a593Smuzhiyun			  "SD1_CMD",
85*4882a593Smuzhiyun			  "SD1_DATA0",
86*4882a593Smuzhiyun			  "SD1_DATA1",
87*4882a593Smuzhiyun			  "SD1_DATA2",
88*4882a593Smuzhiyun			  "SD1_DATA3",
89*4882a593Smuzhiyun			  "CAM_GPIO1", /* GPIO40 */
90*4882a593Smuzhiyun			  "WL_ON", /* GPIO41 */
91*4882a593Smuzhiyun			  "NC", /* GPIO42 */
92*4882a593Smuzhiyun			  "WIFI_CLK", /* GPIO43 */
93*4882a593Smuzhiyun			  "CAM_GPIO0", /* GPIO44 */
94*4882a593Smuzhiyun			  "BT_ON", /* GPIO45 */
95*4882a593Smuzhiyun			  "HDMI_HPD_N",
96*4882a593Smuzhiyun			  "STATUS_LED_N",
97*4882a593Smuzhiyun			  /* Used by SD Card */
98*4882a593Smuzhiyun			  "SD_CLK_R",
99*4882a593Smuzhiyun			  "SD_CMD_R",
100*4882a593Smuzhiyun			  "SD_DATA0_R",
101*4882a593Smuzhiyun			  "SD_DATA1_R",
102*4882a593Smuzhiyun			  "SD_DATA2_R",
103*4882a593Smuzhiyun			  "SD_DATA3_R";
104*4882a593Smuzhiyun
105*4882a593Smuzhiyun	pinctrl-0 = <&gpioout &alt0>;
106*4882a593Smuzhiyun};
107*4882a593Smuzhiyun
108*4882a593Smuzhiyun&hdmi {
109*4882a593Smuzhiyun	hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
110*4882a593Smuzhiyun	power-domains = <&power RPI_POWER_DOMAIN_HDMI>;
111*4882a593Smuzhiyun	status = "okay";
112*4882a593Smuzhiyun};
113*4882a593Smuzhiyun
114*4882a593Smuzhiyun&sdhci {
115*4882a593Smuzhiyun	#address-cells = <1>;
116*4882a593Smuzhiyun	#size-cells = <0>;
117*4882a593Smuzhiyun	pinctrl-names = "default";
118*4882a593Smuzhiyun	pinctrl-0 = <&emmc_gpio34 &gpclk2_gpio43>;
119*4882a593Smuzhiyun	bus-width = <4>;
120*4882a593Smuzhiyun	mmc-pwrseq = <&wifi_pwrseq>;
121*4882a593Smuzhiyun	non-removable;
122*4882a593Smuzhiyun	status = "okay";
123*4882a593Smuzhiyun
124*4882a593Smuzhiyun	brcmf: wifi@1 {
125*4882a593Smuzhiyun		reg = <1>;
126*4882a593Smuzhiyun		compatible = "brcm,bcm4329-fmac";
127*4882a593Smuzhiyun	};
128*4882a593Smuzhiyun};
129*4882a593Smuzhiyun
130*4882a593Smuzhiyun&sdhost {
131*4882a593Smuzhiyun	pinctrl-names = "default";
132*4882a593Smuzhiyun	pinctrl-0 = <&sdhost_gpio48>;
133*4882a593Smuzhiyun	bus-width = <4>;
134*4882a593Smuzhiyun	status = "okay";
135*4882a593Smuzhiyun};
136*4882a593Smuzhiyun
137*4882a593Smuzhiyun&uart0 {
138*4882a593Smuzhiyun	pinctrl-names = "default";
139*4882a593Smuzhiyun	pinctrl-0 = <&uart0_gpio32 &uart0_ctsrts_gpio30>;
140*4882a593Smuzhiyun	status = "okay";
141*4882a593Smuzhiyun
142*4882a593Smuzhiyun	bluetooth {
143*4882a593Smuzhiyun		compatible = "brcm,bcm43438-bt";
144*4882a593Smuzhiyun		max-speed = <2000000>;
145*4882a593Smuzhiyun		shutdown-gpios = <&gpio 45 GPIO_ACTIVE_HIGH>;
146*4882a593Smuzhiyun	};
147*4882a593Smuzhiyun};
148*4882a593Smuzhiyun
149*4882a593Smuzhiyun&uart1 {
150*4882a593Smuzhiyun	pinctrl-names = "default";
151*4882a593Smuzhiyun	pinctrl-0 = <&uart1_gpio14>;
152*4882a593Smuzhiyun	status = "okay";
153*4882a593Smuzhiyun};
154