xref: /freebsd-src/sys/contrib/device-tree/src/arm64/amlogic/meson-g12b-radxa-zero2.dts (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
1cb7aa33aSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2cb7aa33aSEmmanuel Vadot/*
3cb7aa33aSEmmanuel Vadot * Copyright (c) 2019 BayLibre, SAS
4cb7aa33aSEmmanuel Vadot * Author: Neil Armstrong <narmstrong@baylibre.com>
5cb7aa33aSEmmanuel Vadot * Copyright (c) 2019 Christian Hewitt <christianshewitt@gmail.com>
6cb7aa33aSEmmanuel Vadot * Copyright (c) 2022 Radxa Limited
7cb7aa33aSEmmanuel Vadot * Author: Yuntian Zhang <yt@radxa.com>
8cb7aa33aSEmmanuel Vadot */
9cb7aa33aSEmmanuel Vadot
10cb7aa33aSEmmanuel Vadot/dts-v1/;
11cb7aa33aSEmmanuel Vadot
12cb7aa33aSEmmanuel Vadot#include "meson-g12b-a311d.dtsi"
13cb7aa33aSEmmanuel Vadot#include <dt-bindings/input/input.h>
14cb7aa33aSEmmanuel Vadot#include <dt-bindings/leds/common.h>
15cb7aa33aSEmmanuel Vadot#include <dt-bindings/gpio/meson-g12a-gpio.h>
16cb7aa33aSEmmanuel Vadot#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
17cb7aa33aSEmmanuel Vadot
18cb7aa33aSEmmanuel Vadot/ {
19cb7aa33aSEmmanuel Vadot	compatible = "radxa,zero2", "amlogic,a311d", "amlogic,g12b";
20cb7aa33aSEmmanuel Vadot	model = "Radxa Zero2";
21cb7aa33aSEmmanuel Vadot
22cb7aa33aSEmmanuel Vadot	aliases {
23cb7aa33aSEmmanuel Vadot		serial0 = &uart_AO;
24cb7aa33aSEmmanuel Vadot		serial2 = &uart_A;
25cb7aa33aSEmmanuel Vadot	};
26cb7aa33aSEmmanuel Vadot
27cb7aa33aSEmmanuel Vadot	chosen {
28cb7aa33aSEmmanuel Vadot		stdout-path = "serial0:115200n8";
29cb7aa33aSEmmanuel Vadot	};
30cb7aa33aSEmmanuel Vadot
31cb7aa33aSEmmanuel Vadot	memory@0 {
32cb7aa33aSEmmanuel Vadot		device_type = "memory";
33cb7aa33aSEmmanuel Vadot		reg = <0x0 0x0 0x0 0x80000000>;
34cb7aa33aSEmmanuel Vadot	};
35cb7aa33aSEmmanuel Vadot
360e8011faSEmmanuel Vadot	fan0: pwm-fan {
370e8011faSEmmanuel Vadot		compatible = "pwm-fan";
380e8011faSEmmanuel Vadot		#cooling-cells = <2>;
390e8011faSEmmanuel Vadot		cooling-levels = <0 64 128 192 255>;
400e8011faSEmmanuel Vadot		pwms = <&pwm_AO_ab 0 40000 0>;
410e8011faSEmmanuel Vadot	};
420e8011faSEmmanuel Vadot
43cb7aa33aSEmmanuel Vadot	gpio-keys-polled {
44cb7aa33aSEmmanuel Vadot		compatible = "gpio-keys-polled";
45cb7aa33aSEmmanuel Vadot		poll-interval = <100>;
46cb7aa33aSEmmanuel Vadot		power-button {
47cb7aa33aSEmmanuel Vadot			label = "power";
48cb7aa33aSEmmanuel Vadot			linux,code = <KEY_POWER>;
49cb7aa33aSEmmanuel Vadot			gpios = <&gpio_ao GPIOAO_3 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
50cb7aa33aSEmmanuel Vadot		};
51cb7aa33aSEmmanuel Vadot	};
52cb7aa33aSEmmanuel Vadot
53cb7aa33aSEmmanuel Vadot	leds {
54cb7aa33aSEmmanuel Vadot		compatible = "gpio-leds";
55cb7aa33aSEmmanuel Vadot
56cb7aa33aSEmmanuel Vadot		led-green {
57cb7aa33aSEmmanuel Vadot			color = <LED_COLOR_ID_GREEN>;
58cb7aa33aSEmmanuel Vadot			function = LED_FUNCTION_STATUS;
59cb7aa33aSEmmanuel Vadot			gpios = <&gpio GPIOA_12 GPIO_ACTIVE_HIGH>;
60cb7aa33aSEmmanuel Vadot			linux,default-trigger = "heartbeat";
61cb7aa33aSEmmanuel Vadot		};
62cb7aa33aSEmmanuel Vadot	};
63cb7aa33aSEmmanuel Vadot
64cb7aa33aSEmmanuel Vadot	hdmi-connector {
65cb7aa33aSEmmanuel Vadot		compatible = "hdmi-connector";
66cb7aa33aSEmmanuel Vadot		type = "a";
67cb7aa33aSEmmanuel Vadot
68cb7aa33aSEmmanuel Vadot		port {
69cb7aa33aSEmmanuel Vadot			hdmi_connector_in: endpoint {
70cb7aa33aSEmmanuel Vadot				remote-endpoint = <&hdmi_tx_tmds_out>;
71cb7aa33aSEmmanuel Vadot			};
72cb7aa33aSEmmanuel Vadot		};
73cb7aa33aSEmmanuel Vadot	};
74cb7aa33aSEmmanuel Vadot
75cb7aa33aSEmmanuel Vadot	emmc_pwrseq: emmc-pwrseq {
76cb7aa33aSEmmanuel Vadot		compatible = "mmc-pwrseq-emmc";
77cb7aa33aSEmmanuel Vadot		reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
78cb7aa33aSEmmanuel Vadot	};
79cb7aa33aSEmmanuel Vadot
80cb7aa33aSEmmanuel Vadot	sdio_pwrseq: sdio-pwrseq {
81cb7aa33aSEmmanuel Vadot		compatible = "mmc-pwrseq-simple";
82cb7aa33aSEmmanuel Vadot		reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
83cb7aa33aSEmmanuel Vadot		clocks = <&wifi32k>;
84cb7aa33aSEmmanuel Vadot		clock-names = "ext_clock";
85cb7aa33aSEmmanuel Vadot	};
86cb7aa33aSEmmanuel Vadot
87cb7aa33aSEmmanuel Vadot	ao_5v: regulator-ao-5v {
88cb7aa33aSEmmanuel Vadot		compatible = "regulator-fixed";
89cb7aa33aSEmmanuel Vadot		regulator-name = "AO_5V";
90cb7aa33aSEmmanuel Vadot		regulator-min-microvolt = <5000000>;
91cb7aa33aSEmmanuel Vadot		regulator-max-microvolt = <5000000>;
92cb7aa33aSEmmanuel Vadot		regulator-always-on;
93cb7aa33aSEmmanuel Vadot	};
94cb7aa33aSEmmanuel Vadot
95cb7aa33aSEmmanuel Vadot	vcc_1v8: regulator-vcc-1v8 {
96cb7aa33aSEmmanuel Vadot		compatible = "regulator-fixed";
97cb7aa33aSEmmanuel Vadot		regulator-name = "VCC_1V8";
98cb7aa33aSEmmanuel Vadot		regulator-min-microvolt = <1800000>;
99cb7aa33aSEmmanuel Vadot		regulator-max-microvolt = <1800000>;
100cb7aa33aSEmmanuel Vadot		vin-supply = <&vcc_3v3>;
101cb7aa33aSEmmanuel Vadot		regulator-always-on;
102cb7aa33aSEmmanuel Vadot	};
103cb7aa33aSEmmanuel Vadot
104cb7aa33aSEmmanuel Vadot	vcc_3v3: regulator-vcc-3v3 {
105cb7aa33aSEmmanuel Vadot		compatible = "regulator-fixed";
106cb7aa33aSEmmanuel Vadot		regulator-name = "VCC_3V3";
107cb7aa33aSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
108cb7aa33aSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
109cb7aa33aSEmmanuel Vadot		vin-supply = <&vddao_3v3>;
110cb7aa33aSEmmanuel Vadot		regulator-always-on;
111cb7aa33aSEmmanuel Vadot		/* FIXME: actually controlled by VDDCPU_B_EN */
112cb7aa33aSEmmanuel Vadot	};
113cb7aa33aSEmmanuel Vadot
114cb7aa33aSEmmanuel Vadot	vddao_1v8: regulator-vddao-1v8 {
115cb7aa33aSEmmanuel Vadot		compatible = "regulator-fixed";
116cb7aa33aSEmmanuel Vadot		regulator-name = "VDDIO_AO1V8";
117cb7aa33aSEmmanuel Vadot		regulator-min-microvolt = <1800000>;
118cb7aa33aSEmmanuel Vadot		regulator-max-microvolt = <1800000>;
119cb7aa33aSEmmanuel Vadot		vin-supply = <&vddao_3v3>;
120cb7aa33aSEmmanuel Vadot		regulator-always-on;
121cb7aa33aSEmmanuel Vadot	};
122cb7aa33aSEmmanuel Vadot
123cb7aa33aSEmmanuel Vadot	vddao_3v3: regulator-vddao-3v3 {
124cb7aa33aSEmmanuel Vadot		compatible = "regulator-fixed";
125cb7aa33aSEmmanuel Vadot		regulator-name = "VDDAO_3V3";
126cb7aa33aSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
127cb7aa33aSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
128cb7aa33aSEmmanuel Vadot		vin-supply = <&ao_5v>;
129cb7aa33aSEmmanuel Vadot		regulator-always-on;
130cb7aa33aSEmmanuel Vadot	};
131cb7aa33aSEmmanuel Vadot
132cb7aa33aSEmmanuel Vadot	vddcpu_a: regulator-vddcpu-a {
133cb7aa33aSEmmanuel Vadot		/*
134cb7aa33aSEmmanuel Vadot		 * MP8756GD Regulator.
135cb7aa33aSEmmanuel Vadot		 */
136cb7aa33aSEmmanuel Vadot		compatible = "pwm-regulator";
137cb7aa33aSEmmanuel Vadot
138cb7aa33aSEmmanuel Vadot		regulator-name = "VDDCPU_A";
139cb7aa33aSEmmanuel Vadot		regulator-min-microvolt = <730000>;
140cb7aa33aSEmmanuel Vadot		regulator-max-microvolt = <1022000>;
141cb7aa33aSEmmanuel Vadot
142cb7aa33aSEmmanuel Vadot		pwm-supply = <&ao_5v>;
143cb7aa33aSEmmanuel Vadot
144cb7aa33aSEmmanuel Vadot		pwms = <&pwm_ab 0 1250 0>;
145cb7aa33aSEmmanuel Vadot		pwm-dutycycle-range = <100 0>;
146cb7aa33aSEmmanuel Vadot
147cb7aa33aSEmmanuel Vadot		regulator-boot-on;
148cb7aa33aSEmmanuel Vadot		regulator-always-on;
149cb7aa33aSEmmanuel Vadot	};
150cb7aa33aSEmmanuel Vadot
151cb7aa33aSEmmanuel Vadot	vddcpu_b: regulator-vddcpu-b {
152cb7aa33aSEmmanuel Vadot		/*
153cb7aa33aSEmmanuel Vadot		 * Silergy SY8120B1ABC Regulator.
154cb7aa33aSEmmanuel Vadot		 */
155cb7aa33aSEmmanuel Vadot		compatible = "pwm-regulator";
156cb7aa33aSEmmanuel Vadot
157cb7aa33aSEmmanuel Vadot		regulator-name = "VDDCPU_B";
158cb7aa33aSEmmanuel Vadot		regulator-min-microvolt = <730000>;
159cb7aa33aSEmmanuel Vadot		regulator-max-microvolt = <1022000>;
160cb7aa33aSEmmanuel Vadot
161cb7aa33aSEmmanuel Vadot		pwm-supply = <&ao_5v>;
162cb7aa33aSEmmanuel Vadot
163cb7aa33aSEmmanuel Vadot		pwms = <&pwm_AO_cd 1 1250 0>;
164cb7aa33aSEmmanuel Vadot		pwm-dutycycle-range = <100 0>;
165cb7aa33aSEmmanuel Vadot
166cb7aa33aSEmmanuel Vadot		regulator-boot-on;
167cb7aa33aSEmmanuel Vadot		regulator-always-on;
168cb7aa33aSEmmanuel Vadot	};
169cb7aa33aSEmmanuel Vadot
170cb7aa33aSEmmanuel Vadot	sound {
171cb7aa33aSEmmanuel Vadot		compatible = "amlogic,axg-sound-card";
172cb7aa33aSEmmanuel Vadot		model = "RADXA-ZERO2";
173cb7aa33aSEmmanuel Vadot		audio-aux-devs = <&tdmout_b>;
174cb7aa33aSEmmanuel Vadot		audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
175cb7aa33aSEmmanuel Vadot				"TDMOUT_B IN 1", "FRDDR_B OUT 1",
176cb7aa33aSEmmanuel Vadot				"TDMOUT_B IN 2", "FRDDR_C OUT 1",
177cb7aa33aSEmmanuel Vadot				"TDM_B Playback", "TDMOUT_B OUT";
178cb7aa33aSEmmanuel Vadot
179*b2d2a78aSEmmanuel Vadot		clocks = <&clkc CLKID_MPLL2>,
180*b2d2a78aSEmmanuel Vadot			 <&clkc CLKID_MPLL0>,
181*b2d2a78aSEmmanuel Vadot			 <&clkc CLKID_MPLL1>;
182*b2d2a78aSEmmanuel Vadot
183cb7aa33aSEmmanuel Vadot		assigned-clocks = <&clkc CLKID_MPLL2>,
184cb7aa33aSEmmanuel Vadot				  <&clkc CLKID_MPLL0>,
185cb7aa33aSEmmanuel Vadot				  <&clkc CLKID_MPLL1>;
186cb7aa33aSEmmanuel Vadot		assigned-clock-parents = <0>, <0>, <0>;
187cb7aa33aSEmmanuel Vadot		assigned-clock-rates = <294912000>,
188cb7aa33aSEmmanuel Vadot				       <270950400>,
189cb7aa33aSEmmanuel Vadot				       <393216000>;
190cb7aa33aSEmmanuel Vadot
191cb7aa33aSEmmanuel Vadot		dai-link-0 {
192cb7aa33aSEmmanuel Vadot			sound-dai = <&frddr_a>;
193cb7aa33aSEmmanuel Vadot		};
194cb7aa33aSEmmanuel Vadot
195cb7aa33aSEmmanuel Vadot		dai-link-1 {
196cb7aa33aSEmmanuel Vadot			sound-dai = <&frddr_b>;
197cb7aa33aSEmmanuel Vadot		};
198cb7aa33aSEmmanuel Vadot
199cb7aa33aSEmmanuel Vadot		dai-link-2 {
200cb7aa33aSEmmanuel Vadot			sound-dai = <&frddr_c>;
201cb7aa33aSEmmanuel Vadot		};
202cb7aa33aSEmmanuel Vadot
203cb7aa33aSEmmanuel Vadot		/* 8ch hdmi interface */
204cb7aa33aSEmmanuel Vadot		dai-link-3 {
205cb7aa33aSEmmanuel Vadot			sound-dai = <&tdmif_b>;
206cb7aa33aSEmmanuel Vadot			dai-format = "i2s";
207cb7aa33aSEmmanuel Vadot			dai-tdm-slot-tx-mask-0 = <1 1>;
208cb7aa33aSEmmanuel Vadot			dai-tdm-slot-tx-mask-1 = <1 1>;
209cb7aa33aSEmmanuel Vadot			dai-tdm-slot-tx-mask-2 = <1 1>;
210cb7aa33aSEmmanuel Vadot			dai-tdm-slot-tx-mask-3 = <1 1>;
211cb7aa33aSEmmanuel Vadot			mclk-fs = <256>;
212cb7aa33aSEmmanuel Vadot
213cb7aa33aSEmmanuel Vadot			codec {
214cb7aa33aSEmmanuel Vadot				sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
215cb7aa33aSEmmanuel Vadot			};
216cb7aa33aSEmmanuel Vadot		};
217cb7aa33aSEmmanuel Vadot
218cb7aa33aSEmmanuel Vadot		/* hdmi glue */
219cb7aa33aSEmmanuel Vadot		dai-link-4 {
220cb7aa33aSEmmanuel Vadot			sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
221cb7aa33aSEmmanuel Vadot
222cb7aa33aSEmmanuel Vadot			codec {
223cb7aa33aSEmmanuel Vadot				sound-dai = <&hdmi_tx>;
224cb7aa33aSEmmanuel Vadot			};
225cb7aa33aSEmmanuel Vadot		};
226cb7aa33aSEmmanuel Vadot	};
227cb7aa33aSEmmanuel Vadot
228cb7aa33aSEmmanuel Vadot	wifi32k: clock-0 {
229cb7aa33aSEmmanuel Vadot		compatible = "pwm-clock";
230cb7aa33aSEmmanuel Vadot		#clock-cells = <0>;
231cb7aa33aSEmmanuel Vadot		clock-frequency = <32768>;
232cb7aa33aSEmmanuel Vadot		pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
233cb7aa33aSEmmanuel Vadot	};
234cb7aa33aSEmmanuel Vadot};
235cb7aa33aSEmmanuel Vadot
236cb7aa33aSEmmanuel Vadot&arb {
237cb7aa33aSEmmanuel Vadot	status = "okay";
238cb7aa33aSEmmanuel Vadot};
239cb7aa33aSEmmanuel Vadot
240cb7aa33aSEmmanuel Vadot&cec_AO {
241cb7aa33aSEmmanuel Vadot	pinctrl-0 = <&cec_ao_a_h_pins>;
242cb7aa33aSEmmanuel Vadot	pinctrl-names = "default";
243cb7aa33aSEmmanuel Vadot	status = "disabled";
244cb7aa33aSEmmanuel Vadot	hdmi-phandle = <&hdmi_tx>;
245cb7aa33aSEmmanuel Vadot};
246cb7aa33aSEmmanuel Vadot
247cb7aa33aSEmmanuel Vadot&cecb_AO {
248cb7aa33aSEmmanuel Vadot	pinctrl-0 = <&cec_ao_b_h_pins>;
249cb7aa33aSEmmanuel Vadot	pinctrl-names = "default";
250cb7aa33aSEmmanuel Vadot	status = "okay";
251cb7aa33aSEmmanuel Vadot	hdmi-phandle = <&hdmi_tx>;
252cb7aa33aSEmmanuel Vadot};
253cb7aa33aSEmmanuel Vadot
254cb7aa33aSEmmanuel Vadot&clkc_audio {
255cb7aa33aSEmmanuel Vadot	status = "okay";
256cb7aa33aSEmmanuel Vadot};
257cb7aa33aSEmmanuel Vadot
258cb7aa33aSEmmanuel Vadot&cpu0 {
259cb7aa33aSEmmanuel Vadot	cpu-supply = <&vddcpu_b>;
260cb7aa33aSEmmanuel Vadot	operating-points-v2 = <&cpu_opp_table_0>;
261cb7aa33aSEmmanuel Vadot	clocks = <&clkc CLKID_CPU_CLK>;
262cb7aa33aSEmmanuel Vadot	clock-latency = <50000>;
263cb7aa33aSEmmanuel Vadot};
264cb7aa33aSEmmanuel Vadot
265cb7aa33aSEmmanuel Vadot&cpu1 {
266cb7aa33aSEmmanuel Vadot	cpu-supply = <&vddcpu_b>;
267cb7aa33aSEmmanuel Vadot	operating-points-v2 = <&cpu_opp_table_0>;
268cb7aa33aSEmmanuel Vadot	clocks = <&clkc CLKID_CPU_CLK>;
269cb7aa33aSEmmanuel Vadot	clock-latency = <50000>;
270cb7aa33aSEmmanuel Vadot};
271cb7aa33aSEmmanuel Vadot
272cb7aa33aSEmmanuel Vadot&cpu100 {
273cb7aa33aSEmmanuel Vadot	cpu-supply = <&vddcpu_a>;
274cb7aa33aSEmmanuel Vadot	operating-points-v2 = <&cpub_opp_table_1>;
275cb7aa33aSEmmanuel Vadot	clocks = <&clkc CLKID_CPUB_CLK>;
276cb7aa33aSEmmanuel Vadot	clock-latency = <50000>;
277cb7aa33aSEmmanuel Vadot};
278cb7aa33aSEmmanuel Vadot
279cb7aa33aSEmmanuel Vadot&cpu101 {
280cb7aa33aSEmmanuel Vadot	cpu-supply = <&vddcpu_a>;
281cb7aa33aSEmmanuel Vadot	operating-points-v2 = <&cpub_opp_table_1>;
282cb7aa33aSEmmanuel Vadot	clocks = <&clkc CLKID_CPUB_CLK>;
283cb7aa33aSEmmanuel Vadot	clock-latency = <50000>;
284cb7aa33aSEmmanuel Vadot};
285cb7aa33aSEmmanuel Vadot
286cb7aa33aSEmmanuel Vadot&cpu102 {
287cb7aa33aSEmmanuel Vadot	cpu-supply = <&vddcpu_a>;
288cb7aa33aSEmmanuel Vadot	operating-points-v2 = <&cpub_opp_table_1>;
289cb7aa33aSEmmanuel Vadot	clocks = <&clkc CLKID_CPUB_CLK>;
290cb7aa33aSEmmanuel Vadot	clock-latency = <50000>;
291cb7aa33aSEmmanuel Vadot};
292cb7aa33aSEmmanuel Vadot
293cb7aa33aSEmmanuel Vadot&cpu103 {
294cb7aa33aSEmmanuel Vadot	cpu-supply = <&vddcpu_a>;
295cb7aa33aSEmmanuel Vadot	operating-points-v2 = <&cpub_opp_table_1>;
296cb7aa33aSEmmanuel Vadot	clocks = <&clkc CLKID_CPUB_CLK>;
297cb7aa33aSEmmanuel Vadot	clock-latency = <50000>;
298cb7aa33aSEmmanuel Vadot};
299cb7aa33aSEmmanuel Vadot
3000e8011faSEmmanuel Vadot&cpu_thermal {
3010e8011faSEmmanuel Vadot	trips {
3020e8011faSEmmanuel Vadot		cpu_active: cpu-active {
3030e8011faSEmmanuel Vadot			temperature = <70000>; /* millicelsius */
3040e8011faSEmmanuel Vadot			hysteresis = <2000>; /* millicelsius */
3050e8011faSEmmanuel Vadot			type = "active";
3060e8011faSEmmanuel Vadot		};
3070e8011faSEmmanuel Vadot	};
3080e8011faSEmmanuel Vadot
3090e8011faSEmmanuel Vadot	cooling-maps {
3100e8011faSEmmanuel Vadot		map2 {
3110e8011faSEmmanuel Vadot			trip = <&cpu_active>;
3120e8011faSEmmanuel Vadot			cooling-device = <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
3130e8011faSEmmanuel Vadot		};
3140e8011faSEmmanuel Vadot	};
3150e8011faSEmmanuel Vadot};
3160e8011faSEmmanuel Vadot
317cb7aa33aSEmmanuel Vadot&frddr_a {
318cb7aa33aSEmmanuel Vadot	status = "okay";
319cb7aa33aSEmmanuel Vadot};
320cb7aa33aSEmmanuel Vadot
321cb7aa33aSEmmanuel Vadot&frddr_b {
322cb7aa33aSEmmanuel Vadot	status = "okay";
323cb7aa33aSEmmanuel Vadot};
324cb7aa33aSEmmanuel Vadot
325cb7aa33aSEmmanuel Vadot&frddr_c {
326cb7aa33aSEmmanuel Vadot	status = "okay";
327cb7aa33aSEmmanuel Vadot};
328cb7aa33aSEmmanuel Vadot
329cb7aa33aSEmmanuel Vadot&gpio {
330cb7aa33aSEmmanuel Vadot	gpio-line-names =
331cb7aa33aSEmmanuel Vadot		/* GPIOZ */
332cb7aa33aSEmmanuel Vadot		"PIN_27", "PIN_28", "PIN_7", "PIN_11", "PIN_13", "PIN_15", "PIN_18", "PIN_40",
333cb7aa33aSEmmanuel Vadot		"", "", "", "", "", "", "", "",
334cb7aa33aSEmmanuel Vadot		/* GPIOH */
335cb7aa33aSEmmanuel Vadot		"", "", "", "", "PIN_19", "PIN_21", "PIN_24", "PIN_23",
336cb7aa33aSEmmanuel Vadot		"",
337cb7aa33aSEmmanuel Vadot		/* BOOT */
338cb7aa33aSEmmanuel Vadot		"", "", "", "", "", "", "", "",
339cb7aa33aSEmmanuel Vadot		"", "", "", "", "EMMC_PWRSEQ", "", "", "",
340cb7aa33aSEmmanuel Vadot		/* GPIOC */
341cb7aa33aSEmmanuel Vadot		"", "", "", "", "", "", "SD_CD", "PIN_36",
342cb7aa33aSEmmanuel Vadot		/* GPIOA */
343cb7aa33aSEmmanuel Vadot		"PIN_32", "PIN_12", "PIN_35", "", "", "PIN_38", "", "",
344cb7aa33aSEmmanuel Vadot		"", "", "", "", "LED_GREEN", "PIN_31", "PIN_3", "PIN_5",
345cb7aa33aSEmmanuel Vadot		/* GPIOX */
346cb7aa33aSEmmanuel Vadot		"", "", "", "", "", "", "SDIO_PWRSEQ", "",
347cb7aa33aSEmmanuel Vadot		"", "", "", "", "", "", "", "",
348cb7aa33aSEmmanuel Vadot		"", "BT_SHUTDOWN", "", "";
349cb7aa33aSEmmanuel Vadot};
350cb7aa33aSEmmanuel Vadot
351cb7aa33aSEmmanuel Vadot&gpio_ao {
352cb7aa33aSEmmanuel Vadot	gpio-line-names =
353cb7aa33aSEmmanuel Vadot		/* GPIOAO */
354cb7aa33aSEmmanuel Vadot		"PIN_8", "PIN_10", "", "BTN_POWER", "", "", "", "PIN_29",
355cb7aa33aSEmmanuel Vadot		"PIN_33", "PIN_37", "FAN", "",
356cb7aa33aSEmmanuel Vadot		/* GPIOE */
357cb7aa33aSEmmanuel Vadot		"", "", "";
358cb7aa33aSEmmanuel Vadot};
359cb7aa33aSEmmanuel Vadot
360cb7aa33aSEmmanuel Vadot&hdmi_tx {
361cb7aa33aSEmmanuel Vadot	status = "okay";
362cb7aa33aSEmmanuel Vadot	pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
363cb7aa33aSEmmanuel Vadot	pinctrl-names = "default";
364cb7aa33aSEmmanuel Vadot	hdmi-supply = <&ao_5v>;
365cb7aa33aSEmmanuel Vadot};
366cb7aa33aSEmmanuel Vadot
367cb7aa33aSEmmanuel Vadot&hdmi_tx_tmds_port {
368cb7aa33aSEmmanuel Vadot	hdmi_tx_tmds_out: endpoint {
369cb7aa33aSEmmanuel Vadot		remote-endpoint = <&hdmi_connector_in>;
370cb7aa33aSEmmanuel Vadot	};
371cb7aa33aSEmmanuel Vadot};
372cb7aa33aSEmmanuel Vadot
373cb7aa33aSEmmanuel Vadot&ir {
374cb7aa33aSEmmanuel Vadot	status = "disabled";
375cb7aa33aSEmmanuel Vadot	pinctrl-0 = <&remote_input_ao_pins>;
376cb7aa33aSEmmanuel Vadot	pinctrl-names = "default";
377cb7aa33aSEmmanuel Vadot};
378cb7aa33aSEmmanuel Vadot
379cb7aa33aSEmmanuel Vadot&pwm_ab {
380cb7aa33aSEmmanuel Vadot	pinctrl-0 = <&pwm_a_e_pins>;
381cb7aa33aSEmmanuel Vadot	pinctrl-names = "default";
382cb7aa33aSEmmanuel Vadot	clocks = <&xtal>;
383cb7aa33aSEmmanuel Vadot	clock-names = "clkin0";
384cb7aa33aSEmmanuel Vadot	status = "okay";
385cb7aa33aSEmmanuel Vadot};
386cb7aa33aSEmmanuel Vadot
387cb7aa33aSEmmanuel Vadot&pwm_ef {
388cb7aa33aSEmmanuel Vadot	pinctrl-0 = <&pwm_e_pins>;
389cb7aa33aSEmmanuel Vadot	pinctrl-names = "default";
390cb7aa33aSEmmanuel Vadot	clocks = <&xtal>;
391fac71e4eSEmmanuel Vadot	clock-names = "clkin0";
392cb7aa33aSEmmanuel Vadot	status = "okay";
393cb7aa33aSEmmanuel Vadot};
394cb7aa33aSEmmanuel Vadot
395cb7aa33aSEmmanuel Vadot&pwm_AO_ab {
396cb7aa33aSEmmanuel Vadot	pinctrl-0 = <&pwm_ao_a_pins>;
397cb7aa33aSEmmanuel Vadot	pinctrl-names = "default";
398cb7aa33aSEmmanuel Vadot	clocks = <&xtal>;
399fac71e4eSEmmanuel Vadot	clock-names = "clkin0";
400cb7aa33aSEmmanuel Vadot	status = "okay";
401cb7aa33aSEmmanuel Vadot};
402cb7aa33aSEmmanuel Vadot
403cb7aa33aSEmmanuel Vadot&pwm_AO_cd {
404cb7aa33aSEmmanuel Vadot	pinctrl-0 = <&pwm_ao_d_e_pins>;
405cb7aa33aSEmmanuel Vadot	pinctrl-names = "default";
406cb7aa33aSEmmanuel Vadot	clocks = <&xtal>;
407fac71e4eSEmmanuel Vadot	clock-names = "clkin1";
408cb7aa33aSEmmanuel Vadot	status = "okay";
409cb7aa33aSEmmanuel Vadot};
410cb7aa33aSEmmanuel Vadot
411cb7aa33aSEmmanuel Vadot&saradc {
412cb7aa33aSEmmanuel Vadot	status = "okay";
413cb7aa33aSEmmanuel Vadot	vref-supply = <&vddao_1v8>;
414cb7aa33aSEmmanuel Vadot};
415cb7aa33aSEmmanuel Vadot
416cb7aa33aSEmmanuel Vadot/* SDIO */
417cb7aa33aSEmmanuel Vadot&sd_emmc_a {
418cb7aa33aSEmmanuel Vadot	status = "okay";
419cb7aa33aSEmmanuel Vadot	pinctrl-0 = <&sdio_pins>;
420cb7aa33aSEmmanuel Vadot	pinctrl-1 = <&sdio_clk_gate_pins>;
421cb7aa33aSEmmanuel Vadot	pinctrl-names = "default", "clk-gate";
422cb7aa33aSEmmanuel Vadot	#address-cells = <1>;
423cb7aa33aSEmmanuel Vadot	#size-cells = <0>;
424cb7aa33aSEmmanuel Vadot
425cb7aa33aSEmmanuel Vadot	bus-width = <4>;
426cb7aa33aSEmmanuel Vadot	cap-sd-highspeed;
427cb7aa33aSEmmanuel Vadot	max-frequency = <100000000>;
428cb7aa33aSEmmanuel Vadot
429cb7aa33aSEmmanuel Vadot	non-removable;
430cb7aa33aSEmmanuel Vadot	disable-wp;
431cb7aa33aSEmmanuel Vadot
432cb7aa33aSEmmanuel Vadot	/* WiFi firmware requires power to be kept while in suspend */
433cb7aa33aSEmmanuel Vadot	keep-power-in-suspend;
434cb7aa33aSEmmanuel Vadot
435cb7aa33aSEmmanuel Vadot	mmc-pwrseq = <&sdio_pwrseq>;
436cb7aa33aSEmmanuel Vadot
437cb7aa33aSEmmanuel Vadot	vmmc-supply = <&vddao_3v3>;
438cb7aa33aSEmmanuel Vadot	vqmmc-supply = <&vddao_1v8>;
439cb7aa33aSEmmanuel Vadot
440cb7aa33aSEmmanuel Vadot	brcmf: wifi@1 {
441cb7aa33aSEmmanuel Vadot		reg = <1>;
442cb7aa33aSEmmanuel Vadot		compatible = "brcm,bcm4329-fmac";
443cb7aa33aSEmmanuel Vadot	};
444cb7aa33aSEmmanuel Vadot};
445cb7aa33aSEmmanuel Vadot
446cb7aa33aSEmmanuel Vadot/* SD card */
447cb7aa33aSEmmanuel Vadot&sd_emmc_b {
448cb7aa33aSEmmanuel Vadot	status = "okay";
449cb7aa33aSEmmanuel Vadot	pinctrl-0 = <&sdcard_c_pins>;
450cb7aa33aSEmmanuel Vadot	pinctrl-1 = <&sdcard_clk_gate_c_pins>;
451cb7aa33aSEmmanuel Vadot	pinctrl-names = "default", "clk-gate";
452cb7aa33aSEmmanuel Vadot
453cb7aa33aSEmmanuel Vadot	bus-width = <4>;
454cb7aa33aSEmmanuel Vadot	cap-sd-highspeed;
455cb7aa33aSEmmanuel Vadot	max-frequency = <50000000>;
456cb7aa33aSEmmanuel Vadot	disable-wp;
457cb7aa33aSEmmanuel Vadot
458cb7aa33aSEmmanuel Vadot	cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
459cb7aa33aSEmmanuel Vadot	vmmc-supply = <&vddao_3v3>;
460cb7aa33aSEmmanuel Vadot	vqmmc-supply = <&vddao_3v3>;
461cb7aa33aSEmmanuel Vadot};
462cb7aa33aSEmmanuel Vadot
463cb7aa33aSEmmanuel Vadot/* eMMC */
464cb7aa33aSEmmanuel Vadot&sd_emmc_c {
465cb7aa33aSEmmanuel Vadot	status = "okay";
466cb7aa33aSEmmanuel Vadot	pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>;
467cb7aa33aSEmmanuel Vadot	pinctrl-1 = <&emmc_clk_gate_pins>;
468cb7aa33aSEmmanuel Vadot	pinctrl-names = "default", "clk-gate";
469cb7aa33aSEmmanuel Vadot
470cb7aa33aSEmmanuel Vadot	bus-width = <8>;
471cb7aa33aSEmmanuel Vadot	cap-mmc-highspeed;
472cb7aa33aSEmmanuel Vadot	mmc-ddr-1_8v;
473cb7aa33aSEmmanuel Vadot	mmc-hs200-1_8v;
474cb7aa33aSEmmanuel Vadot	max-frequency = <200000000>;
475cb7aa33aSEmmanuel Vadot	disable-wp;
476cb7aa33aSEmmanuel Vadot
477cb7aa33aSEmmanuel Vadot	mmc-pwrseq = <&emmc_pwrseq>;
478cb7aa33aSEmmanuel Vadot	vmmc-supply = <&vcc_3v3>;
479cb7aa33aSEmmanuel Vadot	vqmmc-supply = <&vcc_1v8>;
480cb7aa33aSEmmanuel Vadot};
481cb7aa33aSEmmanuel Vadot
482cb7aa33aSEmmanuel Vadot&tdmif_b {
483cb7aa33aSEmmanuel Vadot	status = "okay";
484cb7aa33aSEmmanuel Vadot};
485cb7aa33aSEmmanuel Vadot
486cb7aa33aSEmmanuel Vadot&tdmout_b {
487cb7aa33aSEmmanuel Vadot	status = "okay";
488cb7aa33aSEmmanuel Vadot};
489cb7aa33aSEmmanuel Vadot
490cb7aa33aSEmmanuel Vadot&tohdmitx {
491cb7aa33aSEmmanuel Vadot	status = "okay";
492cb7aa33aSEmmanuel Vadot};
493cb7aa33aSEmmanuel Vadot
494cb7aa33aSEmmanuel Vadot&uart_A {
495cb7aa33aSEmmanuel Vadot	status = "okay";
496cb7aa33aSEmmanuel Vadot	pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
497cb7aa33aSEmmanuel Vadot	pinctrl-names = "default";
498cb7aa33aSEmmanuel Vadot	uart-has-rtscts;
499cb7aa33aSEmmanuel Vadot
500cb7aa33aSEmmanuel Vadot	bluetooth {
501cb7aa33aSEmmanuel Vadot		compatible = "brcm,bcm43438-bt";
502cb7aa33aSEmmanuel Vadot		shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
503cb7aa33aSEmmanuel Vadot		max-speed = <2000000>;
504cb7aa33aSEmmanuel Vadot		clocks = <&wifi32k>;
505cb7aa33aSEmmanuel Vadot		clock-names = "lpo";
506cb7aa33aSEmmanuel Vadot	};
507cb7aa33aSEmmanuel Vadot};
508cb7aa33aSEmmanuel Vadot
509cb7aa33aSEmmanuel Vadot&uart_AO {
510cb7aa33aSEmmanuel Vadot	status = "okay";
511cb7aa33aSEmmanuel Vadot	pinctrl-0 = <&uart_ao_a_pins>;
512cb7aa33aSEmmanuel Vadot	pinctrl-names = "default";
513cb7aa33aSEmmanuel Vadot};
514cb7aa33aSEmmanuel Vadot
515cb7aa33aSEmmanuel Vadot&usb {
516cb7aa33aSEmmanuel Vadot	status = "okay";
517cb7aa33aSEmmanuel Vadot};
518