1// SPDX-License-Identifier: GPL-2.0
2/*
3 * dts file for Hisilicon HiKey960 Development Board
4 *
5 * Copyright (C) 2016, Hisilicon Ltd.
6 *
7 */
8
9/dts-v1/;
10
11#include "hi3660.dtsi"
12#include "hikey960-pinctrl.dtsi"
13#include <dt-bindings/gpio/gpio.h>
14#include <dt-bindings/input/input.h>
15#include <dt-bindings/interrupt-controller/irq.h>
16
17/ {
18	model = "HiKey960";
19	compatible = "hisilicon,hi3660-hikey960", "hisilicon,hi3660";
20
21	aliases {
22		mshc1 = &dwmmc1;
23		mshc2 = &dwmmc2;
24		serial0 = &uart0;
25		serial1 = &uart1;
26		serial2 = &uart2;
27		serial3 = &uart3;
28		serial4 = &uart4;
29		serial5 = &uart5;
30		serial6 = &uart6;
31	};
32
33	chosen {
34		stdout-path = "serial6:115200n8";
35	};
36
37	memory@0 {
38		device_type = "memory";
39		/* rewrite this at bootloader */
40		reg = <0x0 0x0 0x0 0x0>;
41	};
42
43	reserved-memory {
44		#address-cells = <2>;
45		#size-cells = <2>;
46		ranges;
47
48		ramoops@32000000 {
49			compatible = "ramoops";
50			reg = <0x0 0x32000000 0x0 0x00100000>;
51			record-size	= <0x00020000>;
52			console-size	= <0x00020000>;
53			ftrace-size	= <0x00020000>;
54		};
55	};
56
57	reboot-mode-syscon@32100000 {
58		compatible = "syscon", "simple-mfd";
59		reg = <0x0 0x32100000 0x0 0x00001000>;
60
61		reboot-mode {
62			compatible = "syscon-reboot-mode";
63			offset = <0x0>;
64
65			mode-normal	= <0x77665501>;
66			mode-bootloader	= <0x77665500>;
67			mode-recovery	= <0x77665502>;
68		};
69	};
70
71	keys {
72		compatible = "gpio-keys";
73		pinctrl-names = "default";
74		pinctrl-0 = <&pwr_key_pmx_func &pwr_key_cfg_func>;
75
76		power {
77			wakeup-source;
78			gpios = <&gpio4 2 GPIO_ACTIVE_LOW>;
79			label = "GPIO Power";
80			linux,code = <KEY_POWER>;
81		};
82	};
83
84	leds {
85		compatible = "gpio-leds";
86
87		user_led1 {
88			label = "user_led1";
89			/* gpio_150_user_led1 */
90			gpios = <&gpio18 6 0>;
91			linux,default-trigger = "heartbeat";
92		};
93
94		user_led2 {
95			label = "user_led2";
96			/* gpio_151_user_led2 */
97			gpios = <&gpio18 7 0>;
98			linux,default-trigger = "mmc0";
99		};
100
101		user_led3 {
102			label = "user_led3";
103			/* gpio_189_user_led3 */
104			gpios = <&gpio23 5 0>;
105			default-state = "off";
106		};
107
108		user_led4 {
109			label = "user_led4";
110			/* gpio_190_user_led4 */
111			gpios = <&gpio23 6 0>;
112			linux,default-trigger = "cpu0";
113		};
114
115		wlan_active_led {
116			label = "wifi_active";
117			/* gpio_205_wifi_active */
118			gpios = <&gpio25 5 0>;
119			linux,default-trigger = "phy0tx";
120			default-state = "off";
121		};
122
123		bt_active_led {
124			label = "bt_active";
125			gpios = <&gpio25 7 0>;
126			/* gpio_207_user_led1 */
127			linux,default-trigger = "hci0-power";
128			default-state = "off";
129		};
130	};
131
132	pmic: pmic@fff34000 {
133		compatible = "hisilicon,hi6421v530-pmic";
134		reg = <0x0 0xfff34000 0x0 0x1000>;
135		interrupt-controller;
136		#interrupt-cells = <2>;
137
138		regulators {
139			ldo3: LDO3 { /* HDMI */
140				regulator-name = "VOUT3_1V85";
141				regulator-min-microvolt = <1800000>;
142				regulator-max-microvolt = <2200000>;
143				regulator-enable-ramp-delay = <120>;
144			};
145
146			ldo9: LDO9 { /* SDCARD I/O */
147				regulator-name = "VOUT9_1V8_2V95";
148				regulator-min-microvolt = <1750000>;
149				regulator-max-microvolt = <3300000>;
150				regulator-enable-ramp-delay = <240>;
151			};
152
153			ldo11: LDO11 { /* Low Speed Connector */
154				regulator-name = "VOUT11_1V8_2V95";
155				regulator-min-microvolt = <1750000>;
156				regulator-max-microvolt = <3300000>;
157				regulator-enable-ramp-delay = <240>;
158			};
159
160			ldo15: LDO15 { /* UFS VCC */
161				regulator-name = "VOUT15_3V0";
162				regulator-min-microvolt = <1750000>;
163				regulator-max-microvolt = <3000000>;
164				regulator-boot-on;
165				regulator-always-on;
166				regulator-enable-ramp-delay = <120>;
167			};
168
169			ldo16: LDO16 { /* SD VDD */
170				regulator-name = "VOUT16_2V95";
171				regulator-min-microvolt = <1750000>;
172				regulator-max-microvolt = <3000000>;
173				regulator-enable-ramp-delay = <360>;
174			};
175		};
176	};
177
178	wlan_en: wlan-en-1-8v {
179		compatible = "regulator-fixed";
180		regulator-name = "wlan-en-regulator";
181		regulator-min-microvolt = <1800000>;
182		regulator-max-microvolt = <1800000>;
183
184		/* GPIO_051_WIFI_EN */
185		gpio = <&gpio6 3 0>;
186
187		/* WLAN card specific delay */
188		startup-delay-us = <70000>;
189		enable-active-high;
190	};
191
192	firmware {
193		optee {
194			compatible = "linaro,optee-tz";
195			method = "smc";
196		};
197	};
198};
199
200&i2c0 {
201	/* On Low speed expansion */
202	label = "LS-I2C0";
203	status = "okay";
204};
205
206&i2c1 {
207	status = "okay";
208
209	adv7533: adv7533@39 {
210		status = "ok";
211		compatible = "adi,adv7533";
212		reg = <0x39>;
213	};
214};
215
216&i2c7 {
217	/* On Low speed expansion */
218	label = "LS-I2C1";
219	status = "okay";
220};
221
222&uart3 {
223	/* On Low speed expansion */
224	label = "LS-UART0";
225	status = "okay";
226};
227
228&uart4 {
229	status = "okay";
230
231	bluetooth {
232		compatible = "ti,wl1837-st";
233		enable-gpios = <&gpio15 6 GPIO_ACTIVE_HIGH>;
234		max-speed = <3000000>;
235	};
236};
237
238&uart6 {
239	/* On Low speed expansion */
240	label = "LS-UART1";
241	status = "okay";
242};
243
244&spi2 {
245	/* On Low speed expansion */
246	label = "LS-SPI0";
247	status = "okay";
248};
249
250&spi3 {
251	/* On High speed expansion */
252	label = "HS-SPI1";
253	status = "okay";
254};
255
256&dwmmc1 {
257	vmmc-supply = <&ldo16>;
258	vqmmc-supply = <&ldo9>;
259	status = "okay";
260};
261
262&dwmmc2 { /* WIFI */
263	broken-cd;
264	/* WL_EN */
265	vmmc-supply = <&wlan_en>;
266	ti,non-removable;
267	non-removable;
268	#address-cells = <0x1>;
269	#size-cells = <0x0>;
270	status = "ok";
271
272	wlcore: wlcore@2 {
273		compatible = "ti,wl1837";
274		reg = <2>;      /* sdio func num */
275		/* WL_IRQ, GPIO_179_WL_WAKEUP_AP */
276		interrupt-parent = <&gpio22>;
277		interrupts = <3 IRQ_TYPE_EDGE_RISING>;
278	};
279};
280