xref: /linux/scripts/dtc/include-prefixes/arm64/hisilicon/hi3660-hikey960.dts (revision 313aebda8432afd98ff1663cbc62f2c35245a006)
135ca8168SChen Feng/*
235ca8168SChen Feng * dts file for Hisilicon HiKey960 Development Board
335ca8168SChen Feng *
435ca8168SChen Feng * Copyright (C) 2016, Hisilicon Ltd.
535ca8168SChen Feng *
635ca8168SChen Feng */
735ca8168SChen Feng
835ca8168SChen Feng/dts-v1/;
935ca8168SChen Feng
1035ca8168SChen Feng#include "hi3660.dtsi"
11d4e1eaeeSWang Xiaoyin#include "hikey960-pinctrl.dtsi"
122e9b4447SGuodong Xu#include <dt-bindings/gpio/gpio.h>
138cb53a8dSChen Jun#include <dt-bindings/input/input.h>
148cb53a8dSChen Jun#include <dt-bindings/interrupt-controller/irq.h>
1535ca8168SChen Feng
1635ca8168SChen Feng/ {
1735ca8168SChen Feng	model = "HiKey960";
18b6c93186SGuodong Xu	compatible = "hisilicon,hi3660-hikey960", "hisilicon,hi3660";
1935ca8168SChen Feng
2035ca8168SChen Feng	aliases {
21804d7d7aSLi Wei		mshc1 = &dwmmc1;
22804d7d7aSLi Wei		mshc2 = &dwmmc2;
23254b07b2SChen Feng		serial0 = &uart0;
24254b07b2SChen Feng		serial1 = &uart1;
25254b07b2SChen Feng		serial2 = &uart2;
26254b07b2SChen Feng		serial3 = &uart3;
27254b07b2SChen Feng		serial4 = &uart4;
28254b07b2SChen Feng		serial5 = &uart5;
29254b07b2SChen Feng		serial6 = &uart6;
3035ca8168SChen Feng	};
3135ca8168SChen Feng
3235ca8168SChen Feng	chosen {
33254b07b2SChen Feng		stdout-path = "serial6:115200n8";
3435ca8168SChen Feng	};
3535ca8168SChen Feng
3635ca8168SChen Feng	memory@0 {
3735ca8168SChen Feng		device_type = "memory";
3835ca8168SChen Feng		/* rewrite this at bootloader */
3935ca8168SChen Feng		reg = <0x0 0x0 0x0 0x0>;
4035ca8168SChen Feng	};
418cb53a8dSChen Jun
428cb53a8dSChen Jun	keys {
438cb53a8dSChen Jun		compatible = "gpio-keys";
448cb53a8dSChen Jun		pinctrl-names = "default";
458cb53a8dSChen Jun		pinctrl-0 = <&pwr_key_pmx_func &pwr_key_cfg_func>;
468cb53a8dSChen Jun
478cb53a8dSChen Jun		power {
488cb53a8dSChen Jun			wakeup-source;
498cb53a8dSChen Jun			gpios = <&gpio4 2 GPIO_ACTIVE_LOW>;
508cb53a8dSChen Jun			label = "GPIO Power";
518cb53a8dSChen Jun			linux,code = <KEY_POWER>;
528cb53a8dSChen Jun		};
538cb53a8dSChen Jun	};
54fc5f2ed6SGuodong Xu
55fc5f2ed6SGuodong Xu	leds {
56fc5f2ed6SGuodong Xu		compatible = "gpio-leds";
57fc5f2ed6SGuodong Xu
58fc5f2ed6SGuodong Xu		user_led1 {
59fc5f2ed6SGuodong Xu			label = "user_led1";
60fc5f2ed6SGuodong Xu			/* gpio_150_user_led1 */
61fc5f2ed6SGuodong Xu			gpios = <&gpio18 6 0>;
62fc5f2ed6SGuodong Xu			linux,default-trigger = "heartbeat";
63fc5f2ed6SGuodong Xu		};
64fc5f2ed6SGuodong Xu
65fc5f2ed6SGuodong Xu		user_led2 {
66fc5f2ed6SGuodong Xu			label = "user_led2";
67fc5f2ed6SGuodong Xu			/* gpio_151_user_led2 */
68fc5f2ed6SGuodong Xu			gpios = <&gpio18 7 0>;
69fc5f2ed6SGuodong Xu			linux,default-trigger = "mmc0";
70fc5f2ed6SGuodong Xu		};
71fc5f2ed6SGuodong Xu
72fc5f2ed6SGuodong Xu		user_led3 {
73fc5f2ed6SGuodong Xu			label = "user_led3";
74fc5f2ed6SGuodong Xu			/* gpio_189_user_led3 */
75fc5f2ed6SGuodong Xu			gpios = <&gpio23 5 0>;
76fc5f2ed6SGuodong Xu			default-state = "off";
77fc5f2ed6SGuodong Xu		};
78fc5f2ed6SGuodong Xu
79fc5f2ed6SGuodong Xu		user_led4 {
80fc5f2ed6SGuodong Xu			label = "user_led4";
81fc5f2ed6SGuodong Xu			/* gpio_190_user_led4 */
82fc5f2ed6SGuodong Xu			gpios = <&gpio23 6 0>;
83fc5f2ed6SGuodong Xu			linux,default-trigger = "cpu0";
84fc5f2ed6SGuodong Xu		};
85fc5f2ed6SGuodong Xu
86fc5f2ed6SGuodong Xu		wlan_active_led {
87fc5f2ed6SGuodong Xu			label = "wifi_active";
88fc5f2ed6SGuodong Xu			/* gpio_205_wifi_active */
89fc5f2ed6SGuodong Xu			gpios = <&gpio25 5 0>;
90fc5f2ed6SGuodong Xu			linux,default-trigger = "phy0tx";
91fc5f2ed6SGuodong Xu			default-state = "off";
92fc5f2ed6SGuodong Xu		};
93fc5f2ed6SGuodong Xu
94fc5f2ed6SGuodong Xu		bt_active_led {
95fc5f2ed6SGuodong Xu			label = "bt_active";
96fc5f2ed6SGuodong Xu			gpios = <&gpio25 7 0>;
97fc5f2ed6SGuodong Xu			/* gpio_207_user_led1 */
98fc5f2ed6SGuodong Xu			linux,default-trigger = "hci0-power";
99fc5f2ed6SGuodong Xu			default-state = "off";
100fc5f2ed6SGuodong Xu		};
101fc5f2ed6SGuodong Xu	};
102e02045aaSWang Xiaoyin
103e02045aaSWang Xiaoyin	pmic: pmic@fff34000 {
104e02045aaSWang Xiaoyin		compatible = "hisilicon,hi6421v530-pmic";
105e02045aaSWang Xiaoyin		reg = <0x0 0xfff34000 0x0 0x1000>;
106e02045aaSWang Xiaoyin		interrupt-controller;
107e02045aaSWang Xiaoyin		#interrupt-cells = <2>;
108e02045aaSWang Xiaoyin
109e02045aaSWang Xiaoyin		regulators {
110e02045aaSWang Xiaoyin			ldo3: LDO3 { /* HDMI */
111e02045aaSWang Xiaoyin				regulator-name = "VOUT3_1V85";
112e02045aaSWang Xiaoyin				regulator-min-microvolt = <1800000>;
113e02045aaSWang Xiaoyin				regulator-max-microvolt = <2200000>;
114e02045aaSWang Xiaoyin				regulator-enable-ramp-delay = <120>;
115e02045aaSWang Xiaoyin			};
116e02045aaSWang Xiaoyin
117e02045aaSWang Xiaoyin			ldo9: LDO9 { /* SDCARD I/O */
118e02045aaSWang Xiaoyin				regulator-name = "VOUT9_1V8_2V95";
119e02045aaSWang Xiaoyin				regulator-min-microvolt = <1750000>;
120e02045aaSWang Xiaoyin				regulator-max-microvolt = <3300000>;
121e02045aaSWang Xiaoyin				regulator-enable-ramp-delay = <240>;
122e02045aaSWang Xiaoyin			};
123e02045aaSWang Xiaoyin
124e02045aaSWang Xiaoyin			ldo11: LDO11 { /* Low Speed Connector */
125e02045aaSWang Xiaoyin				regulator-name = "VOUT11_1V8_2V95";
126e02045aaSWang Xiaoyin				regulator-min-microvolt = <1750000>;
127e02045aaSWang Xiaoyin				regulator-max-microvolt = <3300000>;
128e02045aaSWang Xiaoyin				regulator-enable-ramp-delay = <240>;
129e02045aaSWang Xiaoyin			};
130e02045aaSWang Xiaoyin
131e02045aaSWang Xiaoyin			ldo15: LDO15 { /* UFS VCC */
132e02045aaSWang Xiaoyin				regulator-name = "VOUT15_3V0";
133e02045aaSWang Xiaoyin				regulator-min-microvolt = <1750000>;
134e02045aaSWang Xiaoyin				regulator-max-microvolt = <3000000>;
135e02045aaSWang Xiaoyin				regulator-boot-on;
136e02045aaSWang Xiaoyin				regulator-always-on;
137e02045aaSWang Xiaoyin				regulator-enable-ramp-delay = <120>;
138e02045aaSWang Xiaoyin			};
139e02045aaSWang Xiaoyin
140e02045aaSWang Xiaoyin			ldo16: LDO16 { /* SD VDD */
141e02045aaSWang Xiaoyin				regulator-name = "VOUT16_2V95";
142e02045aaSWang Xiaoyin				regulator-min-microvolt = <1750000>;
143e02045aaSWang Xiaoyin				regulator-max-microvolt = <3000000>;
144e02045aaSWang Xiaoyin				regulator-enable-ramp-delay = <360>;
145e02045aaSWang Xiaoyin			};
146e02045aaSWang Xiaoyin		};
147e02045aaSWang Xiaoyin	};
1487d8c3667SGuodong Xu
1497d8c3667SGuodong Xu	wlan_en: wlan-en-1-8v {
1507d8c3667SGuodong Xu		compatible = "regulator-fixed";
1517d8c3667SGuodong Xu		regulator-name = "wlan-en-regulator";
1527d8c3667SGuodong Xu		regulator-min-microvolt = <1800000>;
1537d8c3667SGuodong Xu		regulator-max-microvolt = <1800000>;
1547d8c3667SGuodong Xu
1557d8c3667SGuodong Xu		/* GPIO_051_WIFI_EN */
1567d8c3667SGuodong Xu		gpio = <&gpio6 3 0>;
1577d8c3667SGuodong Xu
1587d8c3667SGuodong Xu		/* WLAN card specific delay */
1597d8c3667SGuodong Xu		startup-delay-us = <70000>;
1607d8c3667SGuodong Xu		enable-active-high;
1617d8c3667SGuodong Xu	};
162*313aebdaSVictor Chong
163*313aebdaSVictor Chong	firmware {
164*313aebdaSVictor Chong		optee {
165*313aebdaSVictor Chong			compatible = "linaro,optee-tz";
166*313aebdaSVictor Chong			method = "smc";
167*313aebdaSVictor Chong		};
168*313aebdaSVictor Chong	};
16935ca8168SChen Feng};
17035ca8168SChen Feng
1715f8a3b77SZhangfei Gao&i2c0 {
1725f8a3b77SZhangfei Gao	/* On Low speed expansion */
1735f8a3b77SZhangfei Gao	label = "LS-I2C0";
1745f8a3b77SZhangfei Gao	status = "okay";
1755f8a3b77SZhangfei Gao};
1765f8a3b77SZhangfei Gao
1775f8a3b77SZhangfei Gao&i2c1 {
1785f8a3b77SZhangfei Gao	status = "okay";
1795f8a3b77SZhangfei Gao
1805f8a3b77SZhangfei Gao	adv7533: adv7533@39 {
1815f8a3b77SZhangfei Gao		status = "ok";
1825f8a3b77SZhangfei Gao		compatible = "adi,adv7533";
1835f8a3b77SZhangfei Gao		reg = <0x39>;
1845f8a3b77SZhangfei Gao	};
1855f8a3b77SZhangfei Gao};
1865f8a3b77SZhangfei Gao
1875f8a3b77SZhangfei Gao&i2c7 {
1885f8a3b77SZhangfei Gao	/* On Low speed expansion */
1895f8a3b77SZhangfei Gao	label = "LS-I2C1";
1905f8a3b77SZhangfei Gao	status = "okay";
1915f8a3b77SZhangfei Gao};
1925f8a3b77SZhangfei Gao
193254b07b2SChen Feng&uart3 {
194254b07b2SChen Feng	/* On Low speed expansion */
195254b07b2SChen Feng	label = "LS-UART0";
196254b07b2SChen Feng	status = "okay";
197254b07b2SChen Feng};
198254b07b2SChen Feng
1992e9b4447SGuodong Xu&uart4 {
2002e9b4447SGuodong Xu	status = "okay";
2012e9b4447SGuodong Xu
2022e9b4447SGuodong Xu	bluetooth {
2032e9b4447SGuodong Xu		compatible = "ti,wl1837-st";
2042e9b4447SGuodong Xu		enable-gpios = <&gpio15 6 GPIO_ACTIVE_HIGH>;
2052e9b4447SGuodong Xu		max-speed = <921600>;
2062e9b4447SGuodong Xu	};
2072e9b4447SGuodong Xu};
2082e9b4447SGuodong Xu
209254b07b2SChen Feng&uart6 {
210254b07b2SChen Feng	/* On Low speed expansion */
211254b07b2SChen Feng	label = "LS-UART1";
21235ca8168SChen Feng	status = "okay";
21335ca8168SChen Feng};
21438810497SWang Xiaoyin
21538810497SWang Xiaoyin&spi2 {
21638810497SWang Xiaoyin	/* On Low speed expansion */
21738810497SWang Xiaoyin	label = "LS-SPI0";
21838810497SWang Xiaoyin	status = "okay";
21938810497SWang Xiaoyin};
22038810497SWang Xiaoyin
22138810497SWang Xiaoyin&spi3 {
22238810497SWang Xiaoyin	/* On High speed expansion */
22338810497SWang Xiaoyin	label = "HS-SPI1";
22438810497SWang Xiaoyin	status = "okay";
22538810497SWang Xiaoyin};
226804d7d7aSLi Wei
227804d7d7aSLi Wei&dwmmc1 {
228804d7d7aSLi Wei	vmmc-supply = <&ldo16>;
229804d7d7aSLi Wei	vqmmc-supply = <&ldo9>;
230804d7d7aSLi Wei	status = "okay";
231804d7d7aSLi Wei};
2327d8c3667SGuodong Xu
2337d8c3667SGuodong Xu&dwmmc2 { /* WIFI */
2347d8c3667SGuodong Xu	broken-cd;
2357d8c3667SGuodong Xu	/* WL_EN */
2367d8c3667SGuodong Xu	vmmc-supply = <&wlan_en>;
2377d8c3667SGuodong Xu	ti,non-removable;
2387d8c3667SGuodong Xu	non-removable;
2397d8c3667SGuodong Xu	#address-cells = <0x1>;
2407d8c3667SGuodong Xu	#size-cells = <0x0>;
2417d8c3667SGuodong Xu	status = "ok";
2427d8c3667SGuodong Xu
2437d8c3667SGuodong Xu	wlcore: wlcore@2 {
2447d8c3667SGuodong Xu		compatible = "ti,wl1837";
2457d8c3667SGuodong Xu		reg = <2>;      /* sdio func num */
2467d8c3667SGuodong Xu		/* WL_IRQ, GPIO_179_WL_WAKEUP_AP */
2477d8c3667SGuodong Xu		interrupt-parent = <&gpio22>;
2487d8c3667SGuodong Xu		interrupts = <3 IRQ_TYPE_EDGE_RISING>;
2497d8c3667SGuodong Xu	};
2507d8c3667SGuodong Xu};
251