Commit | Line | Data |
---|---|---|
31836ade LS |
1 | /* |
2 | * Copyright (C) 2015 Lucas Stach <kernel@pengutronix.de> | |
3 | * | |
4 | * This file is dual-licensed: you can use it either under the terms | |
5 | * of the GPL or the X11 license, at your option. Note that this dual | |
6 | * licensing only applies to this file, and not this project as a | |
7 | * whole. | |
8 | * | |
9 | * a) This file is free software; you can redistribute it and/or | |
10 | * modify it under the terms of the GNU General Public License | |
11 | * version 2 as published by the Free Software Foundation. | |
12 | * | |
13 | * This file is distributed in the hope that it will be useful | |
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | * GNU General Public License for more details. | |
17 | * | |
18 | * Or, alternatively | |
19 | * | |
20 | * b) Permission is hereby granted, free of charge, to any person | |
21 | * obtaining a copy of this software and associated documentation | |
22 | * files (the "Software"), to deal in the Software without | |
23 | * restriction, including without limitation the rights to use | |
24 | * copy, modify, merge, publish, distribute, sublicense, and/or | |
25 | * sell copies of the Software, and to permit persons to whom the | |
26 | * Software is furnished to do so, subject to the following | |
27 | * conditions: | |
28 | * | |
29 | * The above copyright notice and this permission notice shall be | |
30 | * included in all copies or substantial portions of the Software. | |
31 | * | |
32 | * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND | |
33 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | |
34 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | |
35 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | |
36 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY | |
37 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | |
38 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | |
39 | * OTHER DEALINGS IN THE SOFTWARE. | |
40 | */ | |
41 | ||
42 | /dts-v1/; | |
43 | ||
44 | #include "imx6q.dtsi" | |
45 | #include "imx6qdl-microsom.dtsi" | |
46 | #include "imx6qdl-microsom-ar8035.dtsi" | |
47 | ||
48 | / { | |
49 | model = "Auvidea H100"; | |
50 | compatible = "auvidea,h100", "fsl,imx6q"; | |
51 | ||
52 | aliases { | |
53 | rtc0 = &rtc; | |
54 | rtc1 = &snvs_rtc; | |
55 | }; | |
56 | ||
57 | chosen { | |
58 | stdout-path = &uart2; | |
59 | }; | |
60 | ||
61 | hdmi_osc: hdmi-osc { | |
62 | compatible = "fixed-clock"; | |
63 | clock-output-names = "hdmi-osc"; | |
64 | clock-frequency = <27000000>; | |
65 | #clock-cells = <0>; | |
66 | }; | |
67 | ||
68 | leds { | |
69 | compatible = "gpio-leds"; | |
70 | pinctrl-names = "default"; | |
71 | pinctrl-0 = <&pinctrl_h100_leds>; | |
72 | ||
73 | led0: power { | |
74 | label = "power"; | |
75 | gpios = <&gpio3 0 GPIO_ACTIVE_LOW>; | |
76 | default-state = "on"; | |
77 | }; | |
78 | ||
79 | led1: stream { | |
80 | label = "stream"; | |
81 | gpios = <&gpio2 29 GPIO_ACTIVE_LOW>; | |
82 | default-state = "off"; | |
83 | }; | |
84 | ||
85 | led2: rec { | |
86 | label = "rec"; | |
87 | gpios = <&gpio2 28 GPIO_ACTIVE_LOW>; | |
88 | default-state = "off"; | |
89 | }; | |
90 | }; | |
91 | ||
92 | reg_3p3v: regulator-3p3v { | |
93 | compatible = "regulator-fixed"; | |
94 | regulator-name = "3P3V"; | |
95 | regulator-min-microvolt = <3300000>; | |
96 | regulator-max-microvolt = <3300000>; | |
97 | }; | |
98 | ||
99 | reg_hdmi: regulator-hdmi { | |
100 | pinctrl-names = "default"; | |
101 | pinctrl-0 = <&pinctrl_h100_reg_hdmi>; | |
102 | compatible = "regulator-fixed"; | |
103 | enable-active-high; | |
104 | gpio = <&gpio2 20 GPIO_ACTIVE_HIGH>; | |
105 | regulator-name = "V_HDMI"; | |
106 | regulator-min-microvolt = <5000000>; | |
107 | regulator-max-microvolt = <5000000>; | |
108 | regulator-always-on; | |
109 | }; | |
110 | ||
111 | reg_nvcc_sd2: regulator-nvcc-sd2 { | |
112 | pinctrl-names = "default"; | |
113 | pinctrl-0 = <&pinctrl_h100_reg_nvcc_sd2>; | |
114 | compatible = "regulator-gpio"; | |
115 | regulator-name = "NVCC_SD2"; | |
116 | regulator-min-microvolt = <1800000>; | |
117 | regulator-max-microvolt = <3300000>; | |
118 | regulator-type = "voltage"; | |
119 | regulator-boot-on; | |
120 | regulator-always-on; | |
121 | gpios = <&gpio4 9 GPIO_ACTIVE_HIGH>; | |
122 | states = <1800000 0x1 | |
123 | 3300000 0x0>; | |
124 | }; | |
125 | ||
126 | reg_usbh1_vbus: regulator-usb-h1-vbus { | |
127 | compatible = "regulator-fixed"; | |
128 | enable-active-high; | |
129 | gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>; | |
130 | pinctrl-names = "default"; | |
131 | pinctrl-0 = <&pinctrl_h100_usbh1_vbus>; | |
132 | regulator-name = "USB_H1_VBUS"; | |
133 | regulator-min-microvolt = <5000000>; | |
134 | regulator-max-microvolt = <5000000>; | |
135 | }; | |
136 | ||
137 | reg_usbotg_vbus: regulator-usb-otg-vbus { | |
138 | compatible = "regulator-fixed"; | |
139 | enable-active-high; | |
140 | gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>; | |
141 | pinctrl-names = "default"; | |
142 | pinctrl-0 = <&pinctrl_h100_usbotg_vbus>; | |
143 | regulator-name = "USB_OTG_VBUS"; | |
144 | regulator-min-microvolt = <5000000>; | |
145 | regulator-max-microvolt = <5000000>; | |
146 | }; | |
147 | ||
148 | sound-sgtl5000 { | |
149 | compatible = "fsl,imx-audio-sgtl5000"; | |
150 | model = "H100 on-board codec"; | |
151 | audio-codec = <&sgtl5000>; | |
152 | audio-routing = | |
153 | "MIC_IN", "Mic Jack", | |
154 | "Mic Jack", "Mic Bias", | |
155 | "Headphone Jack", "HP_OUT"; | |
156 | mux-ext-port = <5>; | |
157 | mux-int-port = <1>; | |
158 | ssi-controller = <&ssi1>; | |
159 | }; | |
160 | }; | |
161 | ||
162 | &audmux { | |
163 | status = "okay"; | |
164 | }; | |
165 | ||
166 | &hdmi { | |
167 | pinctrl-names = "default"; | |
168 | pinctrl-0 = <&pinctrl_h100_hdmi>; | |
169 | ddc-i2c-bus = <&i2c2>; | |
170 | status = "okay"; | |
171 | }; | |
172 | ||
173 | &i2c1 { | |
174 | pinctrl-names = "default"; | |
175 | pinctrl-0 = <&pinctrl_h100_i2c1>; | |
176 | status = "okay"; | |
177 | ||
178 | eeprom: 24c02@51 { | |
179 | compatible = "microchip,24c02", "at24"; | |
180 | reg = <0x51>; | |
181 | }; | |
182 | ||
183 | rtc: pcf8523@68 { | |
184 | compatible = "nxp,pcf8523"; | |
185 | reg = <0x68>; | |
186 | }; | |
187 | ||
188 | sgtl5000: sgtl5000@0a { | |
189 | compatible = "fsl,sgtl5000"; | |
190 | reg = <0x0a>; | |
191 | pinctrl-names = "default"; | |
192 | pinctrl-0 = <&pinctrl_h100_sgtl5000>; | |
193 | clocks = <&clks IMX6QDL_CLK_CKO>; | |
194 | VDDA-supply = <®_3p3v>; | |
195 | VDDIO-supply = <®_3p3v>; | |
196 | }; | |
197 | ||
198 | tc358743: tc358743@0f { | |
199 | compatible = "toshiba,tc358743"; | |
200 | reg = <0x0f>; | |
201 | pinctrl-names = "default"; | |
202 | pinctrl-0 = <&pinctrl_h100_tc358743>; | |
203 | clocks = <&hdmi_osc>; | |
204 | clock-names = "refclk"; | |
205 | reset-gpios = <&gpio6 15 GPIO_ACTIVE_LOW>; | |
206 | /* IRQ has a wrong pull resistor which renders it useless */ | |
207 | ||
208 | port@0 { | |
209 | tc358743_out: endpoint { | |
210 | remote-endpoint = <&mipi_csi2_in>; | |
211 | data-lanes = <1 2 3 4>; | |
212 | clock-lanes = <0>; | |
213 | clock-noncontinuous; | |
214 | link-frequencies = /bits/ 64 <297000000>; | |
215 | }; | |
216 | }; | |
217 | }; | |
218 | }; | |
219 | ||
220 | &i2c2 { | |
221 | clock-frequency = <100000>; | |
222 | pinctrl-names = "default"; | |
223 | pinctrl-0 = <&pinctrl_h100_i2c2>; | |
224 | status = "okay"; | |
225 | }; | |
226 | ||
227 | &iomuxc { | |
228 | h100 { | |
229 | pinctrl_h100_hdmi: h100-hdmi { | |
230 | fsl,pins = < | |
231 | MX6QDL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE 0x1f8b0 | |
232 | >; | |
233 | }; | |
234 | ||
235 | pinctrl_h100_i2c1: h100-i2c1 { | |
236 | fsl,pins = < | |
237 | MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1 | |
238 | MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1 | |
239 | >; | |
240 | }; | |
241 | ||
242 | pinctrl_h100_i2c2: h100-i2c2 { | |
243 | fsl,pins = < | |
244 | MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1 | |
245 | MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1 | |
246 | >; | |
247 | }; | |
248 | ||
249 | pinctrl_h100_leds: pinctrl-h100-leds { | |
250 | fsl,pins = < | |
251 | MX6QDL_PAD_EIM_DA0__GPIO3_IO00 0x1b0b0 | |
252 | MX6QDL_PAD_EIM_EB1__GPIO2_IO29 0x1b0b0 | |
253 | MX6QDL_PAD_EIM_EB0__GPIO2_IO28 0x1b0b0 | |
254 | >; | |
255 | }; | |
256 | ||
257 | pinctrl_h100_reg_hdmi: h100-reg-hdmi { | |
258 | fsl,pins = < | |
259 | MX6QDL_PAD_EIM_A18__GPIO2_IO20 0x1b0b0 | |
260 | >; | |
261 | }; | |
262 | ||
263 | pinctrl_h100_reg_nvcc_sd2: h100-reg-nvcc-sd2 { | |
264 | fsl,pins = < | |
265 | MX6QDL_PAD_KEY_ROW1__GPIO4_IO09 0x1b0b0 | |
266 | >; | |
267 | }; | |
268 | ||
269 | pinctrl_h100_sgtl5000: h100-sgtl5000 { | |
270 | fsl,pins = < | |
271 | MX6QDL_PAD_DISP0_DAT19__AUD5_RXD 0x130b0 | |
272 | MX6QDL_PAD_KEY_COL0__AUD5_TXC 0x130b0 | |
273 | MX6QDL_PAD_KEY_ROW0__AUD5_TXD 0x110b0 | |
274 | MX6QDL_PAD_KEY_COL1__AUD5_TXFS 0x130b0 | |
275 | MX6QDL_PAD_GPIO_5__CCM_CLKO1 0x130b0 | |
276 | >; | |
277 | }; | |
278 | ||
279 | pinctrl_h100_tc358743: h100-tc358743 { | |
280 | fsl,pins = < | |
281 | MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x1b0b0 | |
282 | >; | |
283 | }; | |
284 | ||
285 | pinctrl_h100_uart2: h100-uart2 { | |
286 | fsl,pins = < | |
287 | MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA 0x1b0b1 | |
288 | MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x1b0b1 | |
289 | >; | |
290 | }; | |
291 | ||
292 | pinctrl_h100_usbh1_vbus: hummingboard-usbh1-vbus { | |
293 | fsl,pins = < | |
294 | MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x1b0b0 | |
295 | >; | |
296 | }; | |
297 | ||
298 | pinctrl_h100_usbotg_id: hummingboard-usbotg-id { | |
299 | fsl,pins = < | |
300 | MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x13059 | |
301 | >; | |
302 | }; | |
303 | ||
304 | pinctrl_h100_usbotg_vbus: hummingboard-usbotg-vbus { | |
305 | fsl,pins = < | |
306 | MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1b0b0 | |
307 | >; | |
308 | }; | |
309 | ||
310 | pinctrl_h100_usdhc2: h100-usdhc2 { | |
311 | fsl,pins = < | |
312 | MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1f071 | |
313 | MX6QDL_PAD_SD2_CMD__SD2_CMD 0x17059 | |
314 | MX6QDL_PAD_SD2_CLK__SD2_CLK 0x10059 | |
315 | MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x17059 | |
316 | MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17059 | |
317 | MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17059 | |
318 | MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x13059 | |
319 | >; | |
320 | }; | |
321 | ||
322 | pinctrl_h100_usdhc2_100mhz: h100-usdhc2-100mhz { | |
323 | fsl,pins = < | |
324 | MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1f071 | |
325 | MX6QDL_PAD_SD2_CMD__SD2_CMD 0x170b9 | |
326 | MX6QDL_PAD_SD2_CLK__SD2_CLK 0x100b9 | |
327 | MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x170b9 | |
328 | MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x170b9 | |
329 | MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x170b9 | |
330 | MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x170b9 | |
331 | >; | |
332 | }; | |
333 | ||
334 | pinctrl_h100_usdhc2_200mhz: h100-usdhc2-200mhz { | |
335 | fsl,pins = < | |
336 | MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1f071 | |
337 | MX6QDL_PAD_SD2_CMD__SD2_CMD 0x170f9 | |
338 | MX6QDL_PAD_SD2_CLK__SD2_CLK 0x100f9 | |
339 | MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x170f9 | |
340 | MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x170f9 | |
341 | MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x170f9 | |
342 | MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x170f9 | |
343 | >; | |
344 | }; | |
345 | }; | |
346 | }; | |
347 | ||
348 | &mipi_csi { | |
349 | status = "okay"; | |
350 | ||
351 | port@0 { | |
352 | mipi_csi2_in: endpoint { | |
353 | remote-endpoint = <&tc358743_out>; | |
354 | data-lanes = <1 2 3 4>; | |
355 | clock-lanes = <0>; | |
356 | clock-noncontinuous; | |
357 | link-frequencies = /bits/ 64 <297000000>; | |
358 | }; | |
359 | }; | |
360 | }; | |
361 | ||
362 | &ssi1 { | |
363 | status = "okay"; | |
364 | }; | |
365 | ||
366 | &uart2 { | |
367 | pinctrl-names = "default"; | |
368 | pinctrl-0 = <&pinctrl_h100_uart2>; | |
369 | status = "okay"; | |
370 | }; | |
371 | ||
372 | &usbh1 { | |
373 | disable-over-current; | |
374 | vbus-supply = <®_usbh1_vbus>; | |
375 | status = "okay"; | |
376 | }; | |
377 | ||
378 | &usbotg { | |
379 | disable-over-current; | |
380 | pinctrl-names = "default"; | |
381 | pinctrl-0 = <&pinctrl_h100_usbotg_id>; | |
382 | vbus-supply = <®_usbotg_vbus>; | |
383 | status = "okay"; | |
384 | }; | |
385 | ||
386 | &usdhc2 { | |
387 | pinctrl-names = "default", "state_100mhz", "state_200mhz"; | |
388 | pinctrl-0 = <&pinctrl_h100_usdhc2>; | |
389 | pinctrl-1 = <&pinctrl_h100_usdhc2_100mhz>; | |
390 | pinctrl-2 = <&pinctrl_h100_usdhc2_200mhz>; | |
391 | vmmc-supply = <®_3p3v>; | |
392 | vqmmc-supply = <®_nvcc_sd2>; | |
393 | cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>; | |
394 | status = "okay"; | |
395 | }; |