Merge branch 'drm-next-4.16' of git://people.freedesktop.org/~agd5f/linux into drm...
[sfrench/cifs-2.6.git] / arch / arm / boot / dts / rk3288-rock2-square.dts
1 /*
2  * This file is dual-licensed: you can use it either under the terms
3  * of the GPL or the X11 license, at your option. Note that this dual
4  * licensing only applies to this file, and not this project as a
5  * whole.
6  *
7  *  a) This file is free software; you can redistribute it and/or
8  *     modify it under the terms of the GNU General Public License as
9  *     published by the Free Software Foundation; either version 2 of the
10  *     License, or (at your option) any later version.
11  *
12  *     This file is distributed in the hope that it will be useful,
13  *     but WITHOUT ANY WARRANTY; without even the implied warranty of
14  *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  *     GNU General Public License for more details.
16  *
17  * Or, alternatively,
18  *
19  *  b) Permission is hereby granted, free of charge, to any person
20  *     obtaining a copy of this software and associated documentation
21  *     files (the "Software"), to deal in the Software without
22  *     restriction, including without limitation the rights to use,
23  *     copy, modify, merge, publish, distribute, sublicense, and/or
24  *     sell copies of the Software, and to permit persons to whom the
25  *     Software is furnished to do so, subject to the following
26  *     conditions:
27  *
28  *     The above copyright notice and this permission notice shall be
29  *     included in all copies or substantial portions of the Software.
30  *
31  *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
32  *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
33  *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
34  *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
35  *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
36  *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
37  *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
38  *     OTHER DEALINGS IN THE SOFTWARE.
39  */
40
41 /dts-v1/;
42 #include "rk3288-rock2-som.dtsi"
43
44 / {
45         model = "Radxa Rock 2 Square";
46         compatible = "radxa,rock2-square", "rockchip,rk3288";
47
48         chosen {
49                 stdout-path = "serial2:115200n8";
50         };
51
52         gpio-leds {
53                 compatible = "gpio-leds";
54
55                 heartbeat {
56                         gpios = <&gpio7 RK_PB7 GPIO_ACTIVE_LOW>;
57                         label = "rock2:green:state1";
58                         linux,default-trigger = "heartbeat";
59                 };
60
61                 mmc {
62                         gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_LOW>;
63                         label = "rock2:blue:state2";
64                         linux,default-trigger = "mmc0";
65                 };
66         };
67
68         ir: ir-receiver {
69                 compatible = "gpio-ir-receiver";
70                 gpios = <&gpio8 RK_PA1 GPIO_ACTIVE_LOW>;
71                 pinctrl-names = "default";
72                 pinctrl-0 = <&ir_int>;
73         };
74
75         sound {
76                 compatible = "simple-audio-card";
77                 simple-audio-card,name = "SPDIF";
78                 simple-audio-card,dai-link@1 {  /* S/PDIF - S/PDIF */
79                         cpu { sound-dai = <&spdif>; };
80                         codec { sound-dai = <&spdif_out>; };
81                 };
82         };
83
84         sata_pwr: sata-prw-regulator {
85                 compatible = "regulator-fixed";
86                 enable-active-high;
87                 gpio = <&gpio0 13 GPIO_ACTIVE_HIGH>;
88                 pinctrl-names = "default";
89                 pinctrl-0 = <&sata_pwr_en>;
90                 /* Always turn on the 5V sata power connector */
91                 regulator-always-on;
92                 regulator-name = "sata_pwr";
93         };
94
95         spdif_out: spdif-out {
96                 compatible = "linux,spdif-dit";
97                 #sound-dai-cells = <0>;
98         };
99
100         sound-i2s {
101                 compatible = "rockchip,rk3288-hdmi-analog";
102                 pinctrl-names = "default";
103                 pinctrl-0 = <&phone_ctl>, <&hp_det>;
104                 rockchip,audio-codec = <&es8388>;
105                 rockchip,hp-det-gpios = <&gpio7 7 GPIO_ACTIVE_HIGH>;
106                 rockchip,hp-en-gpios = <&gpio8 0 GPIO_ACTIVE_HIGH>;
107                 rockchip,i2s-controller = <&i2s>;
108                 rockchip,model = "I2S";
109                 rockchip,routing = "Analog", "LOUT2",
110                                    "Analog", "ROUT2";
111         };
112
113         sdio_pwrseq: sdio-pwrseq {
114                 compatible = "mmc-pwrseq-simple";
115                 clocks = <&hym8563>;
116                 clock-names = "ext_clock";
117                 pinctrl-names = "default";
118                 pinctrl-0 = <&wifi_enable>;
119                 reset-gpios = <&gpio4 RK_PD4 GPIO_ACTIVE_LOW>;
120         };
121
122         vcc_usb_host: vcc-host-regulator {
123                 compatible = "regulator-fixed";
124                 enable-active-high;
125                 gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
126                 pinctrl-names = "default";
127                 pinctrl-0 = <&host_vbus_drv>;
128                 regulator-name = "vcc_host";
129         };
130
131         vcc_sd: sdmmc-regulator {
132                 compatible = "regulator-fixed";
133                 gpio = <&gpio7 RK_PB3 GPIO_ACTIVE_LOW>;
134                 pinctrl-names = "default";
135                 pinctrl-0 = <&sdmmc_pwr>;
136                 regulator-name = "vcc_sd";
137                 regulator-min-microvolt = <3300000>;
138                 regulator-max-microvolt = <3300000>;
139                 vin-supply = <&vcc_io>;
140         };
141 };
142
143 &sdio0 {
144         bus-width = <4>;
145         cap-sd-highspeed;
146         cap-sdio-irq;
147         disable-wp;
148         mmc-pwrseq = <&sdio_pwrseq>;
149         non-removable;
150         pinctrl-names = "default";
151         pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk &sdio0_int>;
152         vmmc-supply = <&vcc_io>;
153         vqmmc-supply = <&vcc_18>;
154         status = "okay";
155 };
156
157 &sdmmc {
158         bus-width = <4>;
159         cap-mmc-highspeed;
160         cap-sd-highspeed;
161         card-detect-delay = <200>;
162         disable-wp;     /* wp not hooked up */
163         pinctrl-names = "default";
164         pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
165         vmmc-supply = <&vcc_sd>;
166         vqmmc-supply = <&vccio_sd>;
167         status = "okay";
168 };
169
170 &gmac {
171         status = "ok";
172 };
173
174 &hdmi {
175         ddc-i2c-bus = <&i2c5>;
176         status = "okay";
177 };
178
179 &i2c0 {
180         hym8563: hym8563@51 {
181                 compatible = "haoyu,hym8563";
182                 reg = <0x51>;
183                 #clock-cells = <0>;
184                 clock-frequency = <32768>;
185                 clock-output-names = "xin32k";
186                 interrupt-parent = <&gpio0>;
187                 interrupts = <RK_PA4 IRQ_TYPE_EDGE_FALLING>;
188                 pinctrl-names = "default";
189                 pinctrl-0 = <&pmic_int>;
190
191         };
192 };
193
194 &i2c2 {
195         status = "okay";
196
197         es8388: es8388@10 {
198                 compatible = "everest,es8388", "everest,es8328";
199                 reg = <0x10>;
200                 AVDD-supply = <&vccio_codec>;
201                 DVDD-supply = <&vccio_codec>;
202                 HPVDD-supply = <&vccio_codec>;
203                 PVDD-supply = <&vccio_codec>;
204                 clocks = <&cru SCLK_I2S0_OUT>;
205         };
206 };
207
208 &i2c5 {
209         status = "okay";
210 };
211
212 &i2s {
213         status = "okay";
214 };
215
216 &pinctrl {
217         ir {
218                 ir_int: ir-int {
219                         rockchip,pins = <8 1 RK_FUNC_GPIO &pcfg_pull_up>;
220                 };
221         };
222
223         pmic {
224                 pmic_int: pmic-int {
225                         rockchip,pins = <0 4 RK_FUNC_GPIO &pcfg_pull_up>;
226                 };
227         };
228
229         headphone {
230                 hp_det: hp-det {
231                         rockchip,pins = <7 7 RK_FUNC_GPIO &pcfg_pull_none>;
232                 };
233
234                 phone_ctl: phone-ctl {
235                         rockchip,pins = <8 0 RK_FUNC_GPIO &pcfg_pull_up>;
236                 };
237         };
238
239         usb {
240                 host_vbus_drv: host-vbus-drv {
241                         rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
242                 };
243         };
244
245         sata {
246                 sata_pwr_en: sata-pwr-en {
247                         rockchip,pins = <0 13 RK_FUNC_GPIO &pcfg_pull_none>;
248                 };
249         };
250
251         sdmmc {
252                 sdmmc_pwr: sdmmc-pwr {
253                         rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
254                 };
255         };
256
257         sdio {
258                 wifi_enable: wifi-enable {
259                         rockchip,pins = <4 28 RK_FUNC_GPIO &pcfg_pull_none>;
260                 };
261         };
262 };
263
264 &spdif {
265         status = "okay";
266 };
267
268 &uart2 {
269         status = "okay";
270 };
271
272 &usbphy {
273         status = "okay";
274 };
275
276 &usbphy1 {
277         vbus-supply = <&vcc_usb_host>;
278 };
279
280 &usb_host0_ehci {
281         status = "okay";
282 };
283
284 &usb_host1 {
285         status = "okay";
286 };