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