1b2441318SGreg Kroah-Hartman// SPDX-License-Identifier: GPL-2.0
286e8f528SBintian Wang/*
386e8f528SBintian Wang * dts file for Hisilicon HiKey Development Board
486e8f528SBintian Wang *
5e3211e41SHao Fang * Copyright (C) 2015, HiSilicon Ltd.
686e8f528SBintian Wang *
786e8f528SBintian Wang */
886e8f528SBintian Wang
986e8f528SBintian Wang/dts-v1/;
1086e8f528SBintian Wang#include "hi6220.dtsi"
11379e9bf5SZhong Kaihua#include "hikey-pinctrl.dtsi"
12a817137aSChen Feng#include <dt-bindings/gpio/gpio.h>
1386e8f528SBintian Wang
1486e8f528SBintian Wang/ {
1586e8f528SBintian Wang	model = "HiKey Development Board";
1686e8f528SBintian Wang	compatible = "hisilicon,hi6220-hikey", "hisilicon,hi6220";
1786e8f528SBintian Wang
1886e8f528SBintian Wang	aliases {
19a362ec8fSTyler Baker		serial0 = &uart0; /* On board UART0 */
20a362ec8fSTyler Baker		serial1 = &uart1; /* BT UART */
21a362ec8fSTyler Baker		serial2 = &uart2; /* LS Expansion UART0 */
22a362ec8fSTyler Baker		serial3 = &uart3; /* LS Expansion UART1 */
2386e8f528SBintian Wang	};
2486e8f528SBintian Wang
2586e8f528SBintian Wang	chosen {
26a362ec8fSTyler Baker		stdout-path = "serial3:115200n8";
2786e8f528SBintian Wang	};
2886e8f528SBintian Wang
296da3aba6SLeo Yan	/*
306da3aba6SLeo Yan	 * Reserve below regions from memory node:
316da3aba6SLeo Yan	 *
326da3aba6SLeo Yan	 *  0x05e0,0000 - 0x05ef,ffff: MCU firmware runtime using
33330fd87cSJohn Stultz	 *  0x05f0,1000 - 0x05f0,1fff: Reboot reason
346da3aba6SLeo Yan	 *  0x06df,f000 - 0x06df,ffff: Mailbox message data
356da3aba6SLeo Yan	 *  0x0740,f000 - 0x0740,ffff: MCU firmware section
36813a7315SJohn Stultz	 *  0x21f0,0000 - 0x21ff,ffff: pstore/ramoops buffer
376da3aba6SLeo Yan	 *  0x3e00,0000 - 0x3fff,ffff: OP-TEE
386da3aba6SLeo Yan	 */
3986e8f528SBintian Wang	memory@0 {
4086e8f528SBintian Wang		device_type = "memory";
416da3aba6SLeo Yan		reg = <0x00000000 0x00000000 0x00000000 0x05e00000>,
42330fd87cSJohn Stultz		      <0x00000000 0x05f00000 0x00000000 0x00001000>,
43330fd87cSJohn Stultz		      <0x00000000 0x05f02000 0x00000000 0x00efd000>,
446da3aba6SLeo Yan		      <0x00000000 0x06e00000 0x00000000 0x0060f000>,
45813a7315SJohn Stultz		      <0x00000000 0x07410000 0x00000000 0x1aaf0000>,
46813a7315SJohn Stultz		      <0x00000000 0x22000000 0x00000000 0x1c000000>;
4786e8f528SBintian Wang	};
4860dac1b1SZhong Kaihua
49813a7315SJohn Stultz	reserved-memory {
50813a7315SJohn Stultz		#address-cells = <2>;
51813a7315SJohn Stultz		#size-cells = <2>;
52813a7315SJohn Stultz		ranges;
53813a7315SJohn Stultz
549977a8c3SMathieu Malaterre		ramoops@21f00000 {
55813a7315SJohn Stultz			compatible = "ramoops";
56813a7315SJohn Stultz			reg = <0x0 0x21f00000 0x0 0x00100000>;
57813a7315SJohn Stultz			record-size = <0x00020000>;
58813a7315SJohn Stultz			console-size = <0x00020000>;
59813a7315SJohn Stultz			ftrace-size = <0x00020000>;
60813a7315SJohn Stultz		};
61813a7315SJohn Stultz
628f5203abSGuodong Xu		/* global autoconfigured region for contiguous allocations */
638f5203abSGuodong Xu		linux,cma {
648f5203abSGuodong Xu			compatible = "shared-dma-pool";
658f5203abSGuodong Xu			reusable;
668f5203abSGuodong Xu			size = <0x00000000 0x08000000>;
678f5203abSGuodong Xu			linux,cma-default;
688f5203abSGuodong Xu		};
698f5203abSGuodong Xu	};
70813a7315SJohn Stultz
71330fd87cSJohn Stultz	reboot-mode-syscon@5f01000 {
72330fd87cSJohn Stultz		compatible = "syscon", "simple-mfd";
73330fd87cSJohn Stultz		reg = <0x0 0x05f01000 0x0 0x00001000>;
74330fd87cSJohn Stultz
75330fd87cSJohn Stultz		reboot-mode {
76330fd87cSJohn Stultz			compatible = "syscon-reboot-mode";
77330fd87cSJohn Stultz			offset = <0x0>;
78330fd87cSJohn Stultz
79330fd87cSJohn Stultz			mode-normal = <0x77665501>;
80330fd87cSJohn Stultz			mode-bootloader = <0x77665500>;
81330fd87cSJohn Stultz			mode-recovery = <0x77665502>;
82330fd87cSJohn Stultz		};
83330fd87cSJohn Stultz	};
84330fd87cSJohn Stultz
8584f7c60bSUlf Hansson	reg_sys_5v: regulator@0 {
8684f7c60bSUlf Hansson		compatible = "regulator-fixed";
8784f7c60bSUlf Hansson		regulator-name = "SYS_5V";
8884f7c60bSUlf Hansson		regulator-min-microvolt = <5000000>;
8984f7c60bSUlf Hansson		regulator-max-microvolt = <5000000>;
9084f7c60bSUlf Hansson		regulator-boot-on;
9184f7c60bSUlf Hansson		regulator-always-on;
9284f7c60bSUlf Hansson	};
9384f7c60bSUlf Hansson
9484f7c60bSUlf Hansson	reg_vdd_3v3: regulator@1 {
9584f7c60bSUlf Hansson		compatible = "regulator-fixed";
9684f7c60bSUlf Hansson		regulator-name = "VDD_3V3";
9784f7c60bSUlf Hansson		regulator-min-microvolt = <3300000>;
9884f7c60bSUlf Hansson		regulator-max-microvolt = <3300000>;
9984f7c60bSUlf Hansson		regulator-boot-on;
10084f7c60bSUlf Hansson		regulator-always-on;
10184f7c60bSUlf Hansson		vin-supply = <&reg_sys_5v>;
10284f7c60bSUlf Hansson	};
10384f7c60bSUlf Hansson
10484f7c60bSUlf Hansson	reg_5v_hub: regulator@2 {
1051b32a5ffSUlf Hansson		compatible = "regulator-fixed";
1061b32a5ffSUlf Hansson		regulator-name = "5V_HUB";
1071b32a5ffSUlf Hansson		regulator-min-microvolt = <5000000>;
1081b32a5ffSUlf Hansson		regulator-max-microvolt = <5000000>;
1091b32a5ffSUlf Hansson		regulator-boot-on;
1101b32a5ffSUlf Hansson		gpio = <&gpio0 7 0>;
1111b32a5ffSUlf Hansson		regulator-always-on;
11284f7c60bSUlf Hansson		vin-supply = <&reg_sys_5v>;
1131b32a5ffSUlf Hansson	};
1141b32a5ffSUlf Hansson
115ea452678SUlf Hansson	wl1835_pwrseq: wl1835-pwrseq {
116ea452678SUlf Hansson		compatible = "mmc-pwrseq-simple";
117ea452678SUlf Hansson		/* WLAN_EN GPIO */
118ea452678SUlf Hansson		reset-gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
119ea452678SUlf Hansson		clocks = <&pmic>;
120ea452678SUlf Hansson		clock-names = "ext_clock";
12183b94417SJan Kiszka		post-power-on-delay-ms = <10>;
122ea452678SUlf Hansson		power-off-delay-us = <10>;
123ea452678SUlf Hansson	};
124ea452678SUlf Hansson
125ad05f38bSGuodong Xu	leds {
126ad05f38bSGuodong Xu		compatible = "gpio-leds";
1272e3ea3e7SManivannan Sadhasivam
128*d0931f1dSKrzysztof Kozlowski		led-user-1 {
1292e3ea3e7SManivannan Sadhasivam			label = "green:user1";
130ad05f38bSGuodong Xu			gpios = <&gpio4 0 0>; /* <&gpio_user_led_1>; */
131ad05f38bSGuodong Xu			linux,default-trigger = "heartbeat";
132ad05f38bSGuodong Xu		};
133ad05f38bSGuodong Xu
134*d0931f1dSKrzysztof Kozlowski		led-user-2 {
1352e3ea3e7SManivannan Sadhasivam			label = "green:user2";
136ad05f38bSGuodong Xu			gpios = <&gpio4 1 0>; /* <&gpio_user_led_2>; */
137ad05f38bSGuodong Xu			linux,default-trigger = "mmc0";
138ad05f38bSGuodong Xu		};
139ad05f38bSGuodong Xu
140*d0931f1dSKrzysztof Kozlowski		led-user-3 {
1412e3ea3e7SManivannan Sadhasivam			label = "green:user3";
142ad05f38bSGuodong Xu			gpios = <&gpio4 2 0>; /* <&gpio_user_led_3>; */
143ad05f38bSGuodong Xu			linux,default-trigger = "mmc1";
144ad05f38bSGuodong Xu		};
145ad05f38bSGuodong Xu
146*d0931f1dSKrzysztof Kozlowski		led-user-4 {
1472e3ea3e7SManivannan Sadhasivam			label = "green:user4";
148ad05f38bSGuodong Xu			gpios = <&gpio4 3 0>; /* <&gpio_user_led_4>; */
149b6fff603SAmit Kucheria			panic-indicator;
1502e3ea3e7SManivannan Sadhasivam			linux,default-trigger = "none";
151ad05f38bSGuodong Xu		};
152ad05f38bSGuodong Xu
153*d0931f1dSKrzysztof Kozlowski		led-wlan {
1542e3ea3e7SManivannan Sadhasivam			label = "yellow:wlan";
155ad05f38bSGuodong Xu			gpios = <&gpio3 5 0>; /* <&gpio_wlan_active_led>; */
156ad05f38bSGuodong Xu			linux,default-trigger = "phy0tx";
157ad05f38bSGuodong Xu			default-state = "off";
158ad05f38bSGuodong Xu		};
159ad05f38bSGuodong Xu
160*d0931f1dSKrzysztof Kozlowski		led-bt {
1612e3ea3e7SManivannan Sadhasivam			label = "blue:bt";
162ad05f38bSGuodong Xu			gpios = <&gpio4 7 0>; /* <&gpio_bt_active_led>; */
1632e3ea3e7SManivannan Sadhasivam			linux,default-trigger = "hci0-power";
164ad05f38bSGuodong Xu			default-state = "off";
165ad05f38bSGuodong Xu		};
166ad05f38bSGuodong Xu	};
167a817137aSChen Feng
168a817137aSChen Feng	pmic: pmic@f8000000 {
169a817137aSChen Feng		compatible = "hisilicon,hi655x-pmic";
170a817137aSChen Feng		reg = <0x0 0xf8000000 0x0 0x1000>;
171307ded89SDaniel Lezcano		#clock-cells = <0>;
172a817137aSChen Feng		interrupt-controller;
173a817137aSChen Feng		#interrupt-cells = <2>;
174a817137aSChen Feng		pmic-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
175a817137aSChen Feng
176a817137aSChen Feng		regulators {
177a817137aSChen Feng			ldo2: LDO2 {
178a817137aSChen Feng				regulator-name = "LDO2_2V8";
179a817137aSChen Feng				regulator-min-microvolt = <2500000>;
180a817137aSChen Feng				regulator-max-microvolt = <3200000>;
181a817137aSChen Feng				regulator-enable-ramp-delay = <120>;
182a817137aSChen Feng			};
183a817137aSChen Feng
184a817137aSChen Feng			ldo7: LDO7 {
185a817137aSChen Feng				regulator-name = "LDO7_SDIO";
186a817137aSChen Feng				regulator-min-microvolt = <1800000>;
187a817137aSChen Feng				regulator-max-microvolt = <3300000>;
188a817137aSChen Feng				regulator-enable-ramp-delay = <120>;
189a817137aSChen Feng			};
190a817137aSChen Feng
191a817137aSChen Feng			ldo10: LDO10 {
192a817137aSChen Feng				regulator-name = "LDO10_2V85";
193a817137aSChen Feng				regulator-min-microvolt = <1800000>;
194a817137aSChen Feng				regulator-max-microvolt = <3000000>;
195a817137aSChen Feng				regulator-enable-ramp-delay = <360>;
196a817137aSChen Feng			};
197a817137aSChen Feng
198a817137aSChen Feng			ldo13: LDO13 {
199a817137aSChen Feng				regulator-name = "LDO13_1V8";
200a817137aSChen Feng				regulator-min-microvolt = <1600000>;
201a817137aSChen Feng				regulator-max-microvolt = <1950000>;
202a817137aSChen Feng				regulator-enable-ramp-delay = <120>;
203a817137aSChen Feng			};
204a817137aSChen Feng
205a817137aSChen Feng			ldo14: LDO14 {
206a817137aSChen Feng				regulator-name = "LDO14_2V8";
207a817137aSChen Feng				regulator-min-microvolt = <2500000>;
208a817137aSChen Feng				regulator-max-microvolt = <3200000>;
209a817137aSChen Feng				regulator-enable-ramp-delay = <120>;
210a817137aSChen Feng			};
211a817137aSChen Feng
212a817137aSChen Feng			ldo15: LDO15 {
213a817137aSChen Feng				regulator-name = "LDO15_1V8";
214a817137aSChen Feng				regulator-min-microvolt = <1600000>;
215a817137aSChen Feng				regulator-max-microvolt = <1950000>;
216a817137aSChen Feng				regulator-boot-on;
217a817137aSChen Feng				regulator-always-on;
218a817137aSChen Feng				regulator-enable-ramp-delay = <120>;
219a817137aSChen Feng			};
220a817137aSChen Feng
221a817137aSChen Feng			ldo17: LDO17 {
222a817137aSChen Feng				regulator-name = "LDO17_2V5";
223a817137aSChen Feng				regulator-min-microvolt = <2500000>;
224a817137aSChen Feng				regulator-max-microvolt = <3200000>;
225a817137aSChen Feng				regulator-enable-ramp-delay = <120>;
226a817137aSChen Feng			};
227a817137aSChen Feng
228a817137aSChen Feng			ldo19: LDO19 {
229a817137aSChen Feng				regulator-name = "LDO19_3V0";
230a817137aSChen Feng				regulator-min-microvolt = <1800000>;
231a817137aSChen Feng				regulator-max-microvolt = <3000000>;
232a817137aSChen Feng				regulator-enable-ramp-delay = <360>;
233a817137aSChen Feng			};
234a817137aSChen Feng
235a817137aSChen Feng			ldo21: LDO21 {
236a817137aSChen Feng				regulator-name = "LDO21_1V8";
237a817137aSChen Feng				regulator-min-microvolt = <1650000>;
238a817137aSChen Feng				regulator-max-microvolt = <2000000>;
239a817137aSChen Feng				regulator-always-on;
240a817137aSChen Feng				regulator-enable-ramp-delay = <120>;
241a817137aSChen Feng			};
242a817137aSChen Feng
243a817137aSChen Feng			ldo22: LDO22 {
244a817137aSChen Feng				regulator-name = "LDO22_1V2";
245a817137aSChen Feng				regulator-min-microvolt = <900000>;
246a817137aSChen Feng				regulator-max-microvolt = <1200000>;
247a817137aSChen Feng				regulator-boot-on;
248a817137aSChen Feng				regulator-always-on;
249a817137aSChen Feng				regulator-enable-ramp-delay = <120>;
250a817137aSChen Feng			};
251a817137aSChen Feng		};
252a817137aSChen Feng	};
25314e21cb8SJerome Forissier
25414e21cb8SJerome Forissier	firmware {
25514e21cb8SJerome Forissier		optee {
25614e21cb8SJerome Forissier			compatible = "linaro,optee-tz";
25714e21cb8SJerome Forissier			method = "smc";
25814e21cb8SJerome Forissier		};
25914e21cb8SJerome Forissier	};
2600cf6a8e2SJohn Stultz
2610cf6a8e2SJohn Stultz	sound_card {
2620cf6a8e2SJohn Stultz		compatible = "audio-graph-card";
2630cf6a8e2SJohn Stultz		dais = <&i2s0_port0>;
2640cf6a8e2SJohn Stultz	};
26586e8f528SBintian Wang};
266dd90caacSRob Herring
2677b8bc95fSKrzysztof Kozlowski&uart1 {
2687b8bc95fSKrzysztof Kozlowski	assigned-clocks = <&sys_ctrl HI6220_UART1_SRC>;
2697b8bc95fSKrzysztof Kozlowski	assigned-clock-rates = <150000000>;
27064ea21e0SAdrian Schmutzler	status = "okay";
2717b8bc95fSKrzysztof Kozlowski
2727b8bc95fSKrzysztof Kozlowski	bluetooth {
2737b8bc95fSKrzysztof Kozlowski		compatible = "ti,wl1835-st";
2747b8bc95fSKrzysztof Kozlowski		enable-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
2757b8bc95fSKrzysztof Kozlowski		clocks = <&pmic>;
2767b8bc95fSKrzysztof Kozlowski		clock-names = "ext_clock";
2777b8bc95fSKrzysztof Kozlowski	};
2787b8bc95fSKrzysztof Kozlowski};
2797b8bc95fSKrzysztof Kozlowski
280dd90caacSRob Herring&uart2 {
28164ea21e0SAdrian Schmutzler	status = "okay";
282dd90caacSRob Herring	label = "LS-UART0";
283dd90caacSRob Herring};
2847b8bc95fSKrzysztof Kozlowski
285dd90caacSRob Herring&uart3 {
28664ea21e0SAdrian Schmutzler	status = "okay";
287dd90caacSRob Herring	label = "LS-UART1";
288dd90caacSRob Herring};
2893814b61bSXinliang Liu
2903814b61bSXinliang Liu&ade {
29164ea21e0SAdrian Schmutzler	status = "okay";
2923814b61bSXinliang Liu};
2933814b61bSXinliang Liu
2943814b61bSXinliang Liu&dsi {
29564ea21e0SAdrian Schmutzler	status = "okay";
296b77c23a0SXinliang Liu
297b77c23a0SXinliang Liu	ports {
298b77c23a0SXinliang Liu		/* 1 for output port */
299b77c23a0SXinliang Liu		port@1 {
300b77c23a0SXinliang Liu			reg = <1>;
301b77c23a0SXinliang Liu
302b77c23a0SXinliang Liu			dsi_out0: endpoint@0 {
303b77c23a0SXinliang Liu				remote-endpoint = <&adv7533_in>;
304b77c23a0SXinliang Liu			};
305b77c23a0SXinliang Liu		};
306b77c23a0SXinliang Liu	};
307b77c23a0SXinliang Liu};
308b77c23a0SXinliang Liu
3097b8bc95fSKrzysztof Kozlowski&dwmmc_0 {
3107b8bc95fSKrzysztof Kozlowski	cap-mmc-highspeed;
3117b8bc95fSKrzysztof Kozlowski	non-removable;
3127b8bc95fSKrzysztof Kozlowski	bus-width = <0x8>;
3137b8bc95fSKrzysztof Kozlowski	vmmc-supply = <&ldo19>;
3147b8bc95fSKrzysztof Kozlowski};
3157b8bc95fSKrzysztof Kozlowski
3167b8bc95fSKrzysztof Kozlowski&dwmmc_1 {
3177b8bc95fSKrzysztof Kozlowski	card-detect-delay = <200>;
3187b8bc95fSKrzysztof Kozlowski	cap-sd-highspeed;
3197b8bc95fSKrzysztof Kozlowski	sd-uhs-sdr12;
3207b8bc95fSKrzysztof Kozlowski	sd-uhs-sdr25;
3217b8bc95fSKrzysztof Kozlowski	sd-uhs-sdr50;
3227b8bc95fSKrzysztof Kozlowski	vqmmc-supply = <&ldo7>;
3237b8bc95fSKrzysztof Kozlowski	vmmc-supply = <&ldo10>;
3247b8bc95fSKrzysztof Kozlowski	bus-width = <0x4>;
3257b8bc95fSKrzysztof Kozlowski	disable-wp;
3267b8bc95fSKrzysztof Kozlowski	cd-gpios = <&gpio1 0 1>;
3277b8bc95fSKrzysztof Kozlowski};
3287b8bc95fSKrzysztof Kozlowski
3297b8bc95fSKrzysztof Kozlowski&dwmmc_2 {
3307b8bc95fSKrzysztof Kozlowski	bus-width = <0x4>;
3317b8bc95fSKrzysztof Kozlowski	non-removable;
3327b8bc95fSKrzysztof Kozlowski	cap-power-off-card;
3337b8bc95fSKrzysztof Kozlowski	vmmc-supply = <&reg_vdd_3v3>;
3347b8bc95fSKrzysztof Kozlowski	mmc-pwrseq = <&wl1835_pwrseq>;
3357b8bc95fSKrzysztof Kozlowski
3367b8bc95fSKrzysztof Kozlowski	#address-cells = <0x1>;
3377b8bc95fSKrzysztof Kozlowski	#size-cells = <0x0>;
3387b8bc95fSKrzysztof Kozlowski	wlcore: wlcore@2 {
3397b8bc95fSKrzysztof Kozlowski		compatible = "ti,wl1835";
3407b8bc95fSKrzysztof Kozlowski		reg = <2>;	/* sdio func num */
3417b8bc95fSKrzysztof Kozlowski		/* WL_IRQ, WL_HOST_WAKE_GPIO1_3 */
3427b8bc95fSKrzysztof Kozlowski		interrupt-parent = <&gpio1>;
3437b8bc95fSKrzysztof Kozlowski		interrupts = <3 IRQ_TYPE_EDGE_RISING>;
3447b8bc95fSKrzysztof Kozlowski	};
3457b8bc95fSKrzysztof Kozlowski};
3467b8bc95fSKrzysztof Kozlowski
3477b8bc95fSKrzysztof Kozlowski/*
3487b8bc95fSKrzysztof Kozlowski * Legend: proper name = the GPIO line is used as GPIO
3497b8bc95fSKrzysztof Kozlowski *         NC = not connected (not routed from the SoC)
3507b8bc95fSKrzysztof Kozlowski *         "[PER]" = pin is muxed for peripheral (not GPIO)
3517b8bc95fSKrzysztof Kozlowski *         "" = no idea, schematic doesn't say, could be
3527b8bc95fSKrzysztof Kozlowski *              unrouted (not connected to any external pin)
3537b8bc95fSKrzysztof Kozlowski *         LSEC = Low Speed External Connector
3547b8bc95fSKrzysztof Kozlowski *         HSEC = High Speed External Connector
3557b8bc95fSKrzysztof Kozlowski *
3567b8bc95fSKrzysztof Kozlowski * Pin assignments taken from LeMaker and CircuitCo Schematics
3577b8bc95fSKrzysztof Kozlowski * Rev A1.
3587b8bc95fSKrzysztof Kozlowski *
3597b8bc95fSKrzysztof Kozlowski * For the lines routed to the external connectors the
3607b8bc95fSKrzysztof Kozlowski * lines are named after the 96Boards CE Specification 1.0,
3617b8bc95fSKrzysztof Kozlowski * Appendix "Expansion Connector Signal Description".
3627b8bc95fSKrzysztof Kozlowski *
3637b8bc95fSKrzysztof Kozlowski * When the 96Board naming of a line and the schematic name of
3647b8bc95fSKrzysztof Kozlowski * the same line are in conflict, the 96Board specification
3657b8bc95fSKrzysztof Kozlowski * takes precedence, which means that the external UART on the
3667b8bc95fSKrzysztof Kozlowski * LSEC is named UART0 while the schematic and SoC names this
3677b8bc95fSKrzysztof Kozlowski * UART2. This is only for the informational lines i.e. "[FOO]",
3687b8bc95fSKrzysztof Kozlowski * the GPIO named lines "GPIO-A" thru "GPIO-L" are the only
3697b8bc95fSKrzysztof Kozlowski * ones actually used for GPIO.
3707b8bc95fSKrzysztof Kozlowski */
3717b8bc95fSKrzysztof Kozlowski&gpio0 {
3727b8bc95fSKrzysztof Kozlowski	gpio-line-names = "PWR_HOLD", "DSI_SEL",
3737b8bc95fSKrzysztof Kozlowski	"USB_HUB_RESET_N", "USB_SEL", "HDMI_PD", "WL_REG_ON",
3747b8bc95fSKrzysztof Kozlowski	"PWRON_DET", "5V_HUB_EN";
3757b8bc95fSKrzysztof Kozlowski};
3767b8bc95fSKrzysztof Kozlowski
3777b8bc95fSKrzysztof Kozlowski&gpio1 {
3787b8bc95fSKrzysztof Kozlowski	gpio-line-names = "SD_DET", "HDMI_INT", "PMU_IRQ_N",
3797b8bc95fSKrzysztof Kozlowski	"WL_HOST_WAKE", "NC", "NC", "NC", "BT_REG_ON";
3807b8bc95fSKrzysztof Kozlowski};
3817b8bc95fSKrzysztof Kozlowski
3827b8bc95fSKrzysztof Kozlowski&gpio2 {
3837b8bc95fSKrzysztof Kozlowski	gpio-line-names =
3847b8bc95fSKrzysztof Kozlowski		"GPIO-A", /* LSEC Pin 23: GPIO2_0 */
3857b8bc95fSKrzysztof Kozlowski		"GPIO-B", /* LSEC Pin 24: GPIO2_1 */
3867b8bc95fSKrzysztof Kozlowski		"GPIO-C", /* LSEC Pin 25: GPIO2_2 */
3877b8bc95fSKrzysztof Kozlowski		"GPIO-D", /* LSEC Pin 26: GPIO2_3 */
3887b8bc95fSKrzysztof Kozlowski		"GPIO-E", /* LSEC Pin 27: GPIO2_4 */
3897b8bc95fSKrzysztof Kozlowski		"USB_ID_DET", "USB_VBUS_DET",
3907b8bc95fSKrzysztof Kozlowski		"GPIO-H"; /* LSEC Pin 30: GPIO2_7 */
3917b8bc95fSKrzysztof Kozlowski};
3927b8bc95fSKrzysztof Kozlowski
3937b8bc95fSKrzysztof Kozlowski&gpio3 {
3947b8bc95fSKrzysztof Kozlowski	gpio-line-names = "GPIO3_0", "NC", "NC", "", "NC", "",
3957b8bc95fSKrzysztof Kozlowski	"WLAN_ACTIVE", "NC", "NC";
3967b8bc95fSKrzysztof Kozlowski};
3977b8bc95fSKrzysztof Kozlowski
3987b8bc95fSKrzysztof Kozlowski&gpio4 {
3997b8bc95fSKrzysztof Kozlowski	gpio-line-names = "USER_LED1", "USER_LED2", "USER_LED3",
4007b8bc95fSKrzysztof Kozlowski	"USER_LED4", "SD_SEL", "NC", "NC", "BT_ACTIVE";
4017b8bc95fSKrzysztof Kozlowski};
4027b8bc95fSKrzysztof Kozlowski
4037b8bc95fSKrzysztof Kozlowski&gpio5 {
4047b8bc95fSKrzysztof Kozlowski	gpio-line-names = "NC", "NC",
4057b8bc95fSKrzysztof Kozlowski	"[UART1_RxD]", /* LSEC Pin 11: UART3_RX */
4067b8bc95fSKrzysztof Kozlowski	"[UART1_TxD]", /* LSEC Pin 13: UART3_TX */
4077b8bc95fSKrzysztof Kozlowski	"[AUX_SSI1]", "NC",
4087b8bc95fSKrzysztof Kozlowski	"[PCM_CLK]", /* LSEC Pin 18: MODEM_PCM_XCLK */
4097b8bc95fSKrzysztof Kozlowski	"[PCM_FS]"; /* LSEC Pin 16: MODEM_PCM_XFS */
4107b8bc95fSKrzysztof Kozlowski};
4117b8bc95fSKrzysztof Kozlowski
4127b8bc95fSKrzysztof Kozlowski&gpio6 {
4137b8bc95fSKrzysztof Kozlowski	gpio-line-names =
4147b8bc95fSKrzysztof Kozlowski	"[SPI0_DIN]", /* Pin 10: SPI0_DI */
4157b8bc95fSKrzysztof Kozlowski	"[SPI0_DOUT]", /* Pin 14: SPI0_DO */
4167b8bc95fSKrzysztof Kozlowski	"[SPI0_CS]", /* Pin 12: SPI0_CS_N */
4177b8bc95fSKrzysztof Kozlowski	"[SPI0_SCLK]", /* Pin 8: SPI0_SCLK */
4187b8bc95fSKrzysztof Kozlowski	"NC", "NC", "NC",
4197b8bc95fSKrzysztof Kozlowski	"GPIO-G"; /* Pin 29: GPIO6_7_DSI_TE0 */
4207b8bc95fSKrzysztof Kozlowski};
4217b8bc95fSKrzysztof Kozlowski
4227b8bc95fSKrzysztof Kozlowski&gpio7 {
4237b8bc95fSKrzysztof Kozlowski	gpio-line-names = "NC", "NC", "NC", "NC",
4247b8bc95fSKrzysztof Kozlowski	"[PCM_DI]", /* Pin 22: MODEM_PCM_DI */
4257b8bc95fSKrzysztof Kozlowski	"[PCM_DO]", /* Pin 20: MODEM_PCM_DO */
4267b8bc95fSKrzysztof Kozlowski	"NC", "NC";
4277b8bc95fSKrzysztof Kozlowski};
4287b8bc95fSKrzysztof Kozlowski
4297b8bc95fSKrzysztof Kozlowski&gpio8 {
4307b8bc95fSKrzysztof Kozlowski	gpio-line-names = "NC", "[CEC_CLK_19_2MHZ]", "NC",
4317b8bc95fSKrzysztof Kozlowski	"", "", "", "", "", "";
4327b8bc95fSKrzysztof Kozlowski};
4337b8bc95fSKrzysztof Kozlowski
4347b8bc95fSKrzysztof Kozlowski&gpio9 {
4357b8bc95fSKrzysztof Kozlowski	gpio-line-names = "",
4367b8bc95fSKrzysztof Kozlowski	"GPIO-J", /* LSEC Pin 32: ISP_PWDN0_GPIO9_1 */
4377b8bc95fSKrzysztof Kozlowski	"GPIO-L", /* LSEC Pin 34: ISP_PWDN1_GPIO9_2 */
4387b8bc95fSKrzysztof Kozlowski	"NC", "NC", "NC", "NC", "[ISP_CCLK0]";
4397b8bc95fSKrzysztof Kozlowski};
4407b8bc95fSKrzysztof Kozlowski
4417b8bc95fSKrzysztof Kozlowski&gpio10 {
4427b8bc95fSKrzysztof Kozlowski	gpio-line-names = "BOOT_SEL",
4437b8bc95fSKrzysztof Kozlowski	"[ISP_CCLK1]",
4447b8bc95fSKrzysztof Kozlowski	"GPIO-I", /* LSEC Pin 31: ISP_RSTB0_GPIO10_2 */
4457b8bc95fSKrzysztof Kozlowski	"GPIO-K", /* LSEC Pin 33: ISP_RSTB1_GPIO10_3 */
4467b8bc95fSKrzysztof Kozlowski	"NC", "NC",
4477b8bc95fSKrzysztof Kozlowski	"[I2C2_SDA]", /* HSEC Pin 34: ISP0_SDA */
4487b8bc95fSKrzysztof Kozlowski	"[I2C2_SCL]"; /* HSEC Pin 32: ISP0_SCL */
4497b8bc95fSKrzysztof Kozlowski};
4507b8bc95fSKrzysztof Kozlowski
4517b8bc95fSKrzysztof Kozlowski&gpio11 {
4527b8bc95fSKrzysztof Kozlowski	gpio-line-names =
4537b8bc95fSKrzysztof Kozlowski	"[I2C3_SDA]", /* HSEC Pin 38: ISP1_SDA */
4547b8bc95fSKrzysztof Kozlowski	"[I2C3_SCL]", /* HSEC Pin 36: ISP1_SCL */
4557b8bc95fSKrzysztof Kozlowski	"", "NC", "NC", "NC", "", "";
4567b8bc95fSKrzysztof Kozlowski};
4577b8bc95fSKrzysztof Kozlowski
4587b8bc95fSKrzysztof Kozlowski&gpio12 {
4597b8bc95fSKrzysztof Kozlowski	gpio-line-names = "[BT_PCM_XFS]", "[BT_PCM_DI]",
4607b8bc95fSKrzysztof Kozlowski	"[BT_PCM_DO]",
4617b8bc95fSKrzysztof Kozlowski	"NC", "NC", "NC", "NC",
4627b8bc95fSKrzysztof Kozlowski	"GPIO-F"; /* LSEC Pin 28: BL_PWM_GPIO12_7 */
4637b8bc95fSKrzysztof Kozlowski};
4647b8bc95fSKrzysztof Kozlowski
4657b8bc95fSKrzysztof Kozlowski&gpio13 {
4667b8bc95fSKrzysztof Kozlowski	gpio-line-names = "[UART0_RX]", "[UART0_TX]",
4677b8bc95fSKrzysztof Kozlowski	"[BT_UART1_CTS]", "[BT_UART1_RTS]",
4687b8bc95fSKrzysztof Kozlowski	"[BT_UART1_RX]", "[BT_UART1_TX]",
4697b8bc95fSKrzysztof Kozlowski	"[UART0_CTS]", /* LSEC Pin 3: UART2_CTS_N */
4707b8bc95fSKrzysztof Kozlowski	"[UART0_RTS]"; /* LSEC Pin 9: UART2_RTS_N */
4717b8bc95fSKrzysztof Kozlowski};
4727b8bc95fSKrzysztof Kozlowski
4737b8bc95fSKrzysztof Kozlowski&gpio14 {
4747b8bc95fSKrzysztof Kozlowski	gpio-line-names =
4757b8bc95fSKrzysztof Kozlowski	"[UART0_RxD]", /* LSEC Pin 7: UART2_RX */
4767b8bc95fSKrzysztof Kozlowski	"[UART0_TxD]", /* LSEC Pin 5: UART2_TX */
4777b8bc95fSKrzysztof Kozlowski	"[I2C0_SCL]", /* LSEC Pin 15: I2C0_SCL */
4787b8bc95fSKrzysztof Kozlowski	"[I2C0_SDA]", /* LSEC Pin 17: I2C0_SDA */
4797b8bc95fSKrzysztof Kozlowski	"[I2C1_SCL]", /* LSEC Pin 19: I2C1_SCL */
4807b8bc95fSKrzysztof Kozlowski	"[I2C1_SDA]", /* LSEC Pin 21: I2C1_SDA */
4817b8bc95fSKrzysztof Kozlowski	"[I2C2_SCL]", "[I2C2_SDA]";
4827b8bc95fSKrzysztof Kozlowski};
4837b8bc95fSKrzysztof Kozlowski
4847b8bc95fSKrzysztof Kozlowski&gpio15 {
4857b8bc95fSKrzysztof Kozlowski	gpio-line-names = "", "", "", "", "", "", "NC", "";
4867b8bc95fSKrzysztof Kozlowski};
4877b8bc95fSKrzysztof Kozlowski
4887b8bc95fSKrzysztof Kozlowski/* GPIO blocks 16 thru 19 do not appear to be routed to pins */
4897b8bc95fSKrzysztof Kozlowski
4907b8bc95fSKrzysztof Kozlowski
4917b8bc95fSKrzysztof Kozlowski&i2c0 {
49264ea21e0SAdrian Schmutzler	status = "okay";
4937b8bc95fSKrzysztof Kozlowski};
4947b8bc95fSKrzysztof Kozlowski
4957b8bc95fSKrzysztof Kozlowski&i2c1 {
49664ea21e0SAdrian Schmutzler	status = "okay";
4977b8bc95fSKrzysztof Kozlowski};
4987b8bc95fSKrzysztof Kozlowski
499b77c23a0SXinliang Liu&i2c2 {
500b77c23a0SXinliang Liu	#address-cells = <1>;
501b77c23a0SXinliang Liu	#size-cells = <0>;
50264ea21e0SAdrian Schmutzler	status = "okay";
503b77c23a0SXinliang Liu
504b77c23a0SXinliang Liu	adv7533: adv7533@39 {
505b77c23a0SXinliang Liu		compatible = "adi,adv7533";
506b77c23a0SXinliang Liu		reg = <0x39>;
507b77c23a0SXinliang Liu		interrupt-parent = <&gpio1>;
508b77c23a0SXinliang Liu		interrupts = <1 2>;
509bbe28fc3SRicardo Cañuelo		pd-gpios = <&gpio0 4 0>;
510b77c23a0SXinliang Liu		adi,dsi-lanes = <4>;
5110cf6a8e2SJohn Stultz		#sound-dai-cells = <0>;
512b77c23a0SXinliang Liu
5130cf6a8e2SJohn Stultz		ports {
5140cf6a8e2SJohn Stultz			#address-cells = <1>;
5150cf6a8e2SJohn Stultz			#size-cells = <0>;
5160cf6a8e2SJohn Stultz			port@0 {
517b77c23a0SXinliang Liu				adv7533_in: endpoint {
518b77c23a0SXinliang Liu					remote-endpoint = <&dsi_out0>;
519b77c23a0SXinliang Liu				};
520b77c23a0SXinliang Liu			};
5210cf6a8e2SJohn Stultz			port@2 {
5220cf6a8e2SJohn Stultz				reg = <2>;
5230cf6a8e2SJohn Stultz				codec_endpoint: endpoint {
5240cf6a8e2SJohn Stultz					remote-endpoint = <&i2s0_cpu_endpoint>;
5250cf6a8e2SJohn Stultz				};
5260cf6a8e2SJohn Stultz			};
5270cf6a8e2SJohn Stultz		};
5280cf6a8e2SJohn Stultz	};
5290cf6a8e2SJohn Stultz};
5300cf6a8e2SJohn Stultz
5310cf6a8e2SJohn Stultz&i2s0 {
5320cf6a8e2SJohn Stultz
5330cf6a8e2SJohn Stultz	ports {
5340cf6a8e2SJohn Stultz		i2s0_port0: port@0 {
5350cf6a8e2SJohn Stultz			i2s0_cpu_endpoint: endpoint {
5360cf6a8e2SJohn Stultz				remote-endpoint = <&codec_endpoint>;
5370cf6a8e2SJohn Stultz				dai-format = "i2s";
5380cf6a8e2SJohn Stultz			};
5390cf6a8e2SJohn Stultz		};
540b77c23a0SXinliang Liu	};
5413814b61bSXinliang Liu};
5427b8bc95fSKrzysztof Kozlowski
5437b8bc95fSKrzysztof Kozlowski&spi0 {
54464ea21e0SAdrian Schmutzler	status = "okay";
5457b8bc95fSKrzysztof Kozlowski};
546