Merge remote-tracking branches 'asoc/topic/tfa9879', 'asoc/topic/ts3a277e', 'asoc...
[sfrench/cifs-2.6.git] / arch / arm64 / boot / dts / hisilicon / hi3660-hikey960.dts
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 };