186e8f528SBintian Wang/*
286e8f528SBintian Wang * dts file for Hisilicon HiKey Development Board
386e8f528SBintian Wang *
486e8f528SBintian Wang * Copyright (C) 2015, Hisilicon Ltd.
586e8f528SBintian Wang *
686e8f528SBintian Wang */
786e8f528SBintian Wang
886e8f528SBintian Wang/dts-v1/;
986e8f528SBintian Wang#include "hi6220.dtsi"
10379e9bf5SZhong Kaihua#include "hikey-pinctrl.dtsi"
11a817137aSChen Feng#include <dt-bindings/gpio/gpio.h>
1286e8f528SBintian Wang
1386e8f528SBintian Wang/ {
1486e8f528SBintian Wang	model = "HiKey Development Board";
1586e8f528SBintian Wang	compatible = "hisilicon,hi6220-hikey", "hisilicon,hi6220";
1686e8f528SBintian Wang
1786e8f528SBintian Wang	aliases {
18a362ec8fSTyler Baker		serial0 = &uart0; /* On board UART0 */
19a362ec8fSTyler Baker		serial1 = &uart1; /* BT UART */
20a362ec8fSTyler Baker		serial2 = &uart2; /* LS Expansion UART0 */
21a362ec8fSTyler Baker		serial3 = &uart3; /* LS Expansion UART1 */
2286e8f528SBintian Wang	};
2386e8f528SBintian Wang
2486e8f528SBintian Wang	chosen {
25a362ec8fSTyler Baker		stdout-path = "serial3:115200n8";
2686e8f528SBintian Wang	};
2786e8f528SBintian Wang
286da3aba6SLeo Yan	/*
296da3aba6SLeo Yan	 * Reserve below regions from memory node:
306da3aba6SLeo Yan	 *
316da3aba6SLeo Yan	 *  0x05e0,0000 - 0x05ef,ffff: MCU firmware runtime using
326da3aba6SLeo Yan	 *  0x06df,f000 - 0x06df,ffff: Mailbox message data
336da3aba6SLeo Yan	 *  0x0740,f000 - 0x0740,ffff: MCU firmware section
346da3aba6SLeo Yan	 *  0x3e00,0000 - 0x3fff,ffff: OP-TEE
356da3aba6SLeo Yan	 */
3686e8f528SBintian Wang	memory@0 {
3786e8f528SBintian Wang		device_type = "memory";
386da3aba6SLeo Yan		reg = <0x00000000 0x00000000 0x00000000 0x05e00000>,
396da3aba6SLeo Yan		      <0x00000000 0x05f00000 0x00000000 0x00eff000>,
406da3aba6SLeo Yan		      <0x00000000 0x06e00000 0x00000000 0x0060f000>,
416da3aba6SLeo Yan		      <0x00000000 0x07410000 0x00000000 0x36bf0000>;
4286e8f528SBintian Wang	};
4360dac1b1SZhong Kaihua
4460dac1b1SZhong Kaihua	soc {
4560dac1b1SZhong Kaihua		spi0: spi@f7106000 {
4660dac1b1SZhong Kaihua			status = "ok";
4760dac1b1SZhong Kaihua		};
480c231751SGuodong Xu
490c231751SGuodong Xu		i2c0: i2c@f7100000 {
500c231751SGuodong Xu			status = "ok";
510c231751SGuodong Xu		};
520c231751SGuodong Xu
530c231751SGuodong Xu		i2c1: i2c@f7101000 {
540c231751SGuodong Xu			status = "ok";
550c231751SGuodong Xu		};
56c2aad932SGuodong Xu
57c2aad932SGuodong Xu		uart1: uart@f7111000 {
58c2aad932SGuodong Xu			status = "ok";
59c2aad932SGuodong Xu		};
60c2aad932SGuodong Xu
61c2aad932SGuodong Xu		uart2: uart@f7112000 {
62c2aad932SGuodong Xu			status = "ok";
63c2aad932SGuodong Xu		};
64c2aad932SGuodong Xu
65c2aad932SGuodong Xu		uart3: uart@f7113000 {
66c2aad932SGuodong Xu			status = "ok";
67c2aad932SGuodong Xu		};
68841478d4SGuodong Xu
69841478d4SGuodong Xu		dwmmc_2: dwmmc2@f723f000 {
70841478d4SGuodong Xu			ti,non-removable;
71841478d4SGuodong Xu			non-removable;
72841478d4SGuodong Xu			/* WL_EN */
73841478d4SGuodong Xu			vmmc-supply = <&wlan_en_reg>;
74841478d4SGuodong Xu
75841478d4SGuodong Xu			#address-cells = <0x1>;
76841478d4SGuodong Xu			#size-cells = <0x0>;
77841478d4SGuodong Xu			wlcore: wlcore@2 {
78841478d4SGuodong Xu				compatible = "ti,wl1835";
79841478d4SGuodong Xu				reg = <2>;	/* sdio func num */
80841478d4SGuodong Xu				/* WL_IRQ, WL_HOST_WAKE_GPIO1_3 */
81841478d4SGuodong Xu				interrupt-parent = <&gpio1>;
82841478d4SGuodong Xu				interrupts = <3 IRQ_TYPE_EDGE_RISING>;
83841478d4SGuodong Xu			};
84841478d4SGuodong Xu		};
85841478d4SGuodong Xu
86841478d4SGuodong Xu		wlan_en_reg: regulator@1 {
87841478d4SGuodong Xu			compatible = "regulator-fixed";
88841478d4SGuodong Xu			regulator-name = "wlan-en-regulator";
89841478d4SGuodong Xu			regulator-min-microvolt = <1800000>;
90841478d4SGuodong Xu			regulator-max-microvolt = <1800000>;
91841478d4SGuodong Xu			/* WLAN_EN GPIO */
92841478d4SGuodong Xu			gpio = <&gpio0 5 0>;
93841478d4SGuodong Xu			/* WLAN card specific delay */
94841478d4SGuodong Xu			startup-delay-us = <70000>;
95841478d4SGuodong Xu			enable-active-high;
96841478d4SGuodong Xu		};
9760dac1b1SZhong Kaihua	};
98ad05f38bSGuodong Xu
99ad05f38bSGuodong Xu	leds {
100ad05f38bSGuodong Xu		compatible = "gpio-leds";
101ad05f38bSGuodong Xu		user_led4 {
102ad05f38bSGuodong Xu			label = "user_led4";
103ad05f38bSGuodong Xu			gpios = <&gpio4 0 0>; /* <&gpio_user_led_1>; */
104ad05f38bSGuodong Xu			linux,default-trigger = "heartbeat";
105ad05f38bSGuodong Xu		};
106ad05f38bSGuodong Xu
107ad05f38bSGuodong Xu		user_led3 {
108ad05f38bSGuodong Xu			label = "user_led3";
109ad05f38bSGuodong Xu			gpios = <&gpio4 1 0>; /* <&gpio_user_led_2>; */
110ad05f38bSGuodong Xu			linux,default-trigger = "mmc0";
111ad05f38bSGuodong Xu		};
112ad05f38bSGuodong Xu
113ad05f38bSGuodong Xu		user_led2 {
114ad05f38bSGuodong Xu			label = "user_led2";
115ad05f38bSGuodong Xu			gpios = <&gpio4 2 0>; /* <&gpio_user_led_3>; */
116ad05f38bSGuodong Xu			linux,default-trigger = "mmc1";
117ad05f38bSGuodong Xu		};
118ad05f38bSGuodong Xu
119ad05f38bSGuodong Xu		user_led1 {
120ad05f38bSGuodong Xu			label = "user_led1";
121ad05f38bSGuodong Xu			gpios = <&gpio4 3 0>; /* <&gpio_user_led_4>; */
122ad05f38bSGuodong Xu			linux,default-trigger = "cpu0";
123ad05f38bSGuodong Xu		};
124ad05f38bSGuodong Xu
125ad05f38bSGuodong Xu		wlan_active_led {
126ad05f38bSGuodong Xu			label = "wifi_active";
127ad05f38bSGuodong Xu			gpios = <&gpio3 5 0>; /* <&gpio_wlan_active_led>; */
128ad05f38bSGuodong Xu			linux,default-trigger = "phy0tx";
129ad05f38bSGuodong Xu			default-state = "off";
130ad05f38bSGuodong Xu		};
131ad05f38bSGuodong Xu
132ad05f38bSGuodong Xu		bt_active_led {
133ad05f38bSGuodong Xu			label = "bt_active";
134ad05f38bSGuodong Xu			gpios = <&gpio4 7 0>; /* <&gpio_bt_active_led>; */
135ad05f38bSGuodong Xu			linux,default-trigger = "hci0rx";
136ad05f38bSGuodong Xu			default-state = "off";
137ad05f38bSGuodong Xu		};
138ad05f38bSGuodong Xu	};
139a817137aSChen Feng
140a817137aSChen Feng	pmic: pmic@f8000000 {
141a817137aSChen Feng		compatible = "hisilicon,hi655x-pmic";
142a817137aSChen Feng		reg = <0x0 0xf8000000 0x0 0x1000>;
143a817137aSChen Feng		interrupt-controller;
144a817137aSChen Feng		#interrupt-cells = <2>;
145a817137aSChen Feng		pmic-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
146a817137aSChen Feng
147a817137aSChen Feng		regulators {
148a817137aSChen Feng			ldo2: LDO2 {
149a817137aSChen Feng				regulator-name = "LDO2_2V8";
150a817137aSChen Feng				regulator-min-microvolt = <2500000>;
151a817137aSChen Feng				regulator-max-microvolt = <3200000>;
152a817137aSChen Feng				regulator-enable-ramp-delay = <120>;
153a817137aSChen Feng			};
154a817137aSChen Feng
155a817137aSChen Feng			ldo7: LDO7 {
156a817137aSChen Feng				regulator-name = "LDO7_SDIO";
157a817137aSChen Feng				regulator-min-microvolt = <1800000>;
158a817137aSChen Feng				regulator-max-microvolt = <3300000>;
159a817137aSChen Feng				regulator-enable-ramp-delay = <120>;
160a817137aSChen Feng			};
161a817137aSChen Feng
162a817137aSChen Feng			ldo10: LDO10 {
163a817137aSChen Feng				regulator-name = "LDO10_2V85";
164a817137aSChen Feng				regulator-min-microvolt = <1800000>;
165a817137aSChen Feng				regulator-max-microvolt = <3000000>;
166a817137aSChen Feng				regulator-enable-ramp-delay = <360>;
167a817137aSChen Feng			};
168a817137aSChen Feng
169a817137aSChen Feng			ldo13: LDO13 {
170a817137aSChen Feng				regulator-name = "LDO13_1V8";
171a817137aSChen Feng				regulator-min-microvolt = <1600000>;
172a817137aSChen Feng				regulator-max-microvolt = <1950000>;
173a817137aSChen Feng				regulator-enable-ramp-delay = <120>;
174a817137aSChen Feng			};
175a817137aSChen Feng
176a817137aSChen Feng			ldo14: LDO14 {
177a817137aSChen Feng				regulator-name = "LDO14_2V8";
178a817137aSChen Feng				regulator-min-microvolt = <2500000>;
179a817137aSChen Feng				regulator-max-microvolt = <3200000>;
180a817137aSChen Feng				regulator-enable-ramp-delay = <120>;
181a817137aSChen Feng			};
182a817137aSChen Feng
183a817137aSChen Feng			ldo15: LDO15 {
184a817137aSChen Feng				regulator-name = "LDO15_1V8";
185a817137aSChen Feng				regulator-min-microvolt = <1600000>;
186a817137aSChen Feng				regulator-max-microvolt = <1950000>;
187a817137aSChen Feng				regulator-boot-on;
188a817137aSChen Feng				regulator-always-on;
189a817137aSChen Feng				regulator-enable-ramp-delay = <120>;
190a817137aSChen Feng			};
191a817137aSChen Feng
192a817137aSChen Feng			ldo17: LDO17 {
193a817137aSChen Feng				regulator-name = "LDO17_2V5";
194a817137aSChen Feng				regulator-min-microvolt = <2500000>;
195a817137aSChen Feng				regulator-max-microvolt = <3200000>;
196a817137aSChen Feng				regulator-enable-ramp-delay = <120>;
197a817137aSChen Feng			};
198a817137aSChen Feng
199a817137aSChen Feng			ldo19: LDO19 {
200a817137aSChen Feng				regulator-name = "LDO19_3V0";
201a817137aSChen Feng				regulator-min-microvolt = <1800000>;
202a817137aSChen Feng				regulator-max-microvolt = <3000000>;
203a817137aSChen Feng				regulator-enable-ramp-delay = <360>;
204a817137aSChen Feng			};
205a817137aSChen Feng
206a817137aSChen Feng			ldo21: LDO21 {
207a817137aSChen Feng				regulator-name = "LDO21_1V8";
208a817137aSChen Feng				regulator-min-microvolt = <1650000>;
209a817137aSChen Feng				regulator-max-microvolt = <2000000>;
210a817137aSChen Feng				regulator-always-on;
211a817137aSChen Feng				regulator-enable-ramp-delay = <120>;
212a817137aSChen Feng			};
213a817137aSChen Feng
214a817137aSChen Feng			ldo22: LDO22 {
215a817137aSChen Feng				regulator-name = "LDO22_1V2";
216a817137aSChen Feng				regulator-min-microvolt = <900000>;
217a817137aSChen Feng				regulator-max-microvolt = <1200000>;
218a817137aSChen Feng				regulator-boot-on;
219a817137aSChen Feng				regulator-always-on;
220a817137aSChen Feng				regulator-enable-ramp-delay = <120>;
221a817137aSChen Feng			};
222a817137aSChen Feng		};
223a817137aSChen Feng	};
22486e8f528SBintian Wang};
225dd90caacSRob Herring
226dd90caacSRob Herring&uart2 {
227dd90caacSRob Herring	label = "LS-UART0";
228dd90caacSRob Herring};
229dd90caacSRob Herring&uart3 {
230dd90caacSRob Herring	label = "LS-UART1";
231dd90caacSRob Herring};
232