blob: 67c76888dab3ae74567616f1238ca30b5bdc67e4 [file] [log] [blame]
Troy Kiskya177f182013-12-16 18:13:03 -07001/*
2 * Copyright 2013 Boundary Devices, Inc.
3 * Copyright 2011 Freescale Semiconductor, Inc.
4 * Copyright 2011 Linaro Ltd.
5 *
6 * The code contained herein is licensed under the GNU General Public
7 * License. You may obtain a copy of the GNU General Public License
8 * Version 2 or later at the following locations:
9 *
10 * http://www.opensource.org/licenses/gpl-license.html
11 * http://www.gnu.org/copyleft/gpl.html
12 */
Troy Kiskyda474d42013-12-18 14:51:44 -070013#include <dt-bindings/gpio/gpio.h>
14#include <dt-bindings/input/input.h>
Troy Kiskya177f182013-12-16 18:13:03 -070015
16/ {
Sascha Hauer48f51962014-05-07 15:19:00 +020017 chosen {
18 stdout-path = &uart2;
19 };
20
Troy Kiskya177f182013-12-16 18:13:03 -070021 memory {
22 reg = <0x10000000 0x40000000>;
23 };
24
25 regulators {
26 compatible = "simple-bus";
27 #address-cells = <1>;
28 #size-cells = <0>;
29
30 reg_2p5v: regulator@0 {
31 compatible = "regulator-fixed";
32 reg = <0>;
33 regulator-name = "2P5V";
34 regulator-min-microvolt = <2500000>;
35 regulator-max-microvolt = <2500000>;
36 regulator-always-on;
37 };
38
39 reg_3p3v: regulator@1 {
40 compatible = "regulator-fixed";
41 reg = <1>;
42 regulator-name = "3P3V";
43 regulator-min-microvolt = <3300000>;
44 regulator-max-microvolt = <3300000>;
45 regulator-always-on;
46 };
47
48 reg_usb_otg_vbus: regulator@2 {
49 compatible = "regulator-fixed";
50 reg = <2>;
51 regulator-name = "usb_otg_vbus";
52 regulator-min-microvolt = <5000000>;
53 regulator-max-microvolt = <5000000>;
54 gpio = <&gpio3 22 0>;
55 enable-active-high;
56 };
Peter Seiderer3e223392015-06-02 21:07:16 +020057
58 reg_can_xcvr: regulator@3 {
59 compatible = "regulator-fixed";
60 reg = <3>;
61 regulator-name = "CAN XCVR";
62 regulator-min-microvolt = <3300000>;
63 regulator-max-microvolt = <3300000>;
64 pinctrl-names = "default";
65 pinctrl-0 = <&pinctrl_can_xcvr>;
66 gpio = <&gpio1 2 GPIO_ACTIVE_LOW>;
67 };
Troy Kiskya177f182013-12-16 18:13:03 -070068 };
69
Troy Kiskyda474d42013-12-18 14:51:44 -070070 gpio-keys {
71 compatible = "gpio-keys";
72 pinctrl-names = "default";
73 pinctrl-0 = <&pinctrl_gpio_keys>;
74
75 power {
76 label = "Power Button";
77 gpios = <&gpio2 3 GPIO_ACTIVE_LOW>;
78 linux,code = <KEY_POWER>;
79 gpio-key,wakeup;
80 };
81
82 menu {
83 label = "Menu";
84 gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
85 linux,code = <KEY_MENU>;
86 };
87
88 home {
89 label = "Home";
90 gpios = <&gpio2 4 GPIO_ACTIVE_LOW>;
91 linux,code = <KEY_HOME>;
92 };
93
94 back {
95 label = "Back";
96 gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
97 linux,code = <KEY_BACK>;
98 };
99
100 volume-up {
101 label = "Volume Up";
102 gpios = <&gpio7 13 GPIO_ACTIVE_LOW>;
103 linux,code = <KEY_VOLUMEUP>;
104 };
105
106 volume-down {
107 label = "Volume Down";
108 gpios = <&gpio4 5 GPIO_ACTIVE_LOW>;
109 linux,code = <KEY_VOLUMEDOWN>;
110 };
111 };
112
Troy Kiskya177f182013-12-16 18:13:03 -0700113 sound {
114 compatible = "fsl,imx6q-nitrogen6x-sgtl5000",
115 "fsl,imx-audio-sgtl5000";
116 model = "imx6q-nitrogen6x-sgtl5000";
117 ssi-controller = <&ssi1>;
118 audio-codec = <&codec>;
119 audio-routing =
120 "MIC_IN", "Mic Jack",
121 "Mic Jack", "Mic Bias",
122 "Headphone Jack", "HP_OUT";
123 mux-int-port = <1>;
124 mux-ext-port = <3>;
125 };
126
127 backlight_lcd {
128 compatible = "pwm-backlight";
129 pwms = <&pwm1 0 5000000>;
130 brightness-levels = <0 4 8 16 32 64 128 255>;
131 default-brightness-level = <7>;
132 power-supply = <&reg_3p3v>;
133 status = "okay";
134 };
135
Eric Nelson5d5c8652015-05-19 08:50:15 -0700136 backlight_lvds: backlight_lvds {
Troy Kiskya177f182013-12-16 18:13:03 -0700137 compatible = "pwm-backlight";
138 pwms = <&pwm4 0 5000000>;
139 brightness-levels = <0 4 8 16 32 64 128 255>;
140 default-brightness-level = <7>;
141 power-supply = <&reg_3p3v>;
142 status = "okay";
143 };
Eric Nelson5d5c8652015-05-19 08:50:15 -0700144
145 panel {
146 compatible = "hannstar,hsd100pxn1";
147 backlight = <&backlight_lvds>;
148
149 port {
150 panel_in: endpoint {
151 remote-endpoint = <&lvds0_out>;
152 };
153 };
154 };
Troy Kiskya177f182013-12-16 18:13:03 -0700155};
156
157&audmux {
158 pinctrl-names = "default";
159 pinctrl-0 = <&pinctrl_audmux>;
160 status = "okay";
161};
162
Peter Seiderer3e223392015-06-02 21:07:16 +0200163&can1 {
164 pinctrl-names = "default";
165 pinctrl-0 = <&pinctrl_can1>;
166 xceiver-supply = <&reg_can_xcvr>;
167 status = "okay";
168};
169
Troy Kiskya177f182013-12-16 18:13:03 -0700170&ecspi1 {
171 fsl,spi-num-chipselects = <1>;
172 cs-gpios = <&gpio3 19 0>;
173 pinctrl-names = "default";
174 pinctrl-0 = <&pinctrl_ecspi1>;
175 status = "okay";
176
177 flash: m25p80@0 {
178 compatible = "sst,sst25vf016b";
179 spi-max-frequency = <20000000>;
180 reg = <0>;
181 };
182};
183
184&fec {
185 pinctrl-names = "default";
186 pinctrl-0 = <&pinctrl_enet>;
187 phy-mode = "rgmii";
188 phy-reset-gpios = <&gpio1 27 0>;
189 txen-skew-ps = <0>;
190 txc-skew-ps = <3000>;
191 rxdv-skew-ps = <0>;
192 rxc-skew-ps = <3000>;
193 rxd0-skew-ps = <0>;
194 rxd1-skew-ps = <0>;
195 rxd2-skew-ps = <0>;
196 rxd3-skew-ps = <0>;
197 txd0-skew-ps = <0>;
198 txd1-skew-ps = <0>;
199 txd2-skew-ps = <0>;
200 txd3-skew-ps = <0>;
Troy Kisky6261c4c2013-12-20 11:47:11 -0700201 interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>,
202 <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
Troy Kiskya177f182013-12-16 18:13:03 -0700203 status = "okay";
204};
205
Michael Olbrichd6536202014-07-25 12:49:52 +0200206&hdmi {
207 ddc-i2c-bus = <&i2c2>;
208 status = "okay";
209};
210
Troy Kiskya177f182013-12-16 18:13:03 -0700211&i2c1 {
212 clock-frequency = <100000>;
213 pinctrl-names = "default";
214 pinctrl-0 = <&pinctrl_i2c1>;
215 status = "okay";
216
217 codec: sgtl5000@0a {
218 compatible = "fsl,sgtl5000";
219 reg = <0x0a>;
220 clocks = <&clks 201>;
221 VDDA-supply = <&reg_2p5v>;
222 VDDIO-supply = <&reg_3p3v>;
223 };
Philipp Zabel7881fb32014-08-22 11:13:02 +0200224
225 rtc: rtc@6f {
226 compatible = "isil,isl1208";
227 reg = <0x6f>;
228 };
Troy Kiskya177f182013-12-16 18:13:03 -0700229};
230
Michael Olbrich43c3c002014-07-25 12:49:51 +0200231&i2c2 {
232 clock-frequency = <100000>;
233 pinctrl-names = "default";
234 pinctrl-0 = <&pinctrl_i2c2>;
235 status = "okay";
236};
237
Philipp Zabel1dffdd62014-07-25 12:49:53 +0200238&i2c3 {
239 clock-frequency = <100000>;
240 pinctrl-names = "default";
241 pinctrl-0 = <&pinctrl_i2c3>;
242 status = "okay";
243};
244
Troy Kiskya177f182013-12-16 18:13:03 -0700245&iomuxc {
246 pinctrl-names = "default";
247 pinctrl-0 = <&pinctrl_hog>;
248
249 imx6q-nitrogen6x {
250 pinctrl_hog: hoggrp {
251 fsl,pins = <
252 /* SGTL5000 sys_mclk */
253 MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x030b0
254 >;
255 };
256
257 pinctrl_audmux: audmuxgrp {
258 fsl,pins = <
259 MX6QDL_PAD_CSI0_DAT7__AUD3_RXD 0x130b0
260 MX6QDL_PAD_CSI0_DAT4__AUD3_TXC 0x130b0
261 MX6QDL_PAD_CSI0_DAT5__AUD3_TXD 0x110b0
262 MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS 0x130b0
263 >;
264 };
265
Peter Seiderer3e223392015-06-02 21:07:16 +0200266 pinctrl_can1: can1grp {
267 fsl,pins = <
268 MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX 0x1b0b0
269 MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0x1b0b0
270 >;
271 };
272
273 pinctrl_can_xcvr: can-xcvrgrp {
274 fsl,pins = <
275 /* Flexcan XCVR enable */
276 MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x1b0b0
277 >;
278 };
279
Troy Kiskya177f182013-12-16 18:13:03 -0700280 pinctrl_ecspi1: ecspi1grp {
281 fsl,pins = <
282 MX6QDL_PAD_EIM_D17__ECSPI1_MISO 0x100b1
283 MX6QDL_PAD_EIM_D18__ECSPI1_MOSI 0x100b1
284 MX6QDL_PAD_EIM_D16__ECSPI1_SCLK 0x100b1
285 MX6QDL_PAD_EIM_D19__GPIO3_IO19 0x000b1 /* CS */
286 >;
287 };
288
289 pinctrl_enet: enetgrp {
290 fsl,pins = <
291 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x100b0
292 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x100b0
293 MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x100b0
294 MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x100b0
295 MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x100b0
296 MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x100b0
297 MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x100b0
298 MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x100b0
299 MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x100b0
300 MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0
301 MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b0b0
302 MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b0b0
303 MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b0b0
304 MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b0b0
305 MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0
306 /* Phy reset */
307 MX6QDL_PAD_ENET_RXD0__GPIO1_IO27 0x000b0
Troy Kisky6261c4c2013-12-20 11:47:11 -0700308 MX6QDL_PAD_GPIO_6__ENET_IRQ 0x000b1
Troy Kiskya177f182013-12-16 18:13:03 -0700309 >;
310 };
311
Troy Kiskyda474d42013-12-18 14:51:44 -0700312 pinctrl_gpio_keys: gpio_keysgrp {
313 fsl,pins = <
314 /* Power Button */
315 MX6QDL_PAD_NANDF_D3__GPIO2_IO03 0x1b0b0
316 /* Menu Button */
317 MX6QDL_PAD_NANDF_D1__GPIO2_IO01 0x1b0b0
318 /* Home Button */
319 MX6QDL_PAD_NANDF_D4__GPIO2_IO04 0x1b0b0
320 /* Back Button */
321 MX6QDL_PAD_NANDF_D2__GPIO2_IO02 0x1b0b0
322 /* Volume Up Button */
323 MX6QDL_PAD_GPIO_18__GPIO7_IO13 0x1b0b0
324 /* Volume Down Button */
325 MX6QDL_PAD_GPIO_19__GPIO4_IO05 0x1b0b0
326 >;
327 };
328
Troy Kiskya177f182013-12-16 18:13:03 -0700329 pinctrl_i2c1: i2c1grp {
330 fsl,pins = <
331 MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1
332 MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1
333 >;
334 };
335
Michael Olbrich43c3c002014-07-25 12:49:51 +0200336 pinctrl_i2c2: i2c2grp {
337 fsl,pins = <
338 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
339 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
340 >;
341 };
342
Philipp Zabel1dffdd62014-07-25 12:49:53 +0200343 pinctrl_i2c3: i2c3grp {
344 fsl,pins = <
345 MX6QDL_PAD_GPIO_5__I2C3_SCL 0x4001b8b1
346 MX6QDL_PAD_GPIO_16__I2C3_SDA 0x4001b8b1
347 >;
348 };
349
Troy Kiskya177f182013-12-16 18:13:03 -0700350 pinctrl_pwm1: pwm1grp {
351 fsl,pins = <
352 MX6QDL_PAD_SD1_DAT3__PWM1_OUT 0x1b0b1
353 >;
354 };
355
356 pinctrl_pwm3: pwm3grp {
357 fsl,pins = <
358 MX6QDL_PAD_SD1_DAT1__PWM3_OUT 0x1b0b1
359 >;
360 };
361
362 pinctrl_pwm4: pwm4grp {
363 fsl,pins = <
364 MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x1b0b1
365 >;
366 };
367
368 pinctrl_uart1: uart1grp {
369 fsl,pins = <
370 MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x1b0b1
371 MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA 0x1b0b1
372 >;
373 };
374
375 pinctrl_uart2: uart2grp {
376 fsl,pins = <
377 MX6QDL_PAD_EIM_D26__UART2_TX_DATA 0x1b0b1
378 MX6QDL_PAD_EIM_D27__UART2_RX_DATA 0x1b0b1
379 >;
380 };
381
382 pinctrl_usbotg: usbotggrp {
383 fsl,pins = <
384 MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x17059
385 MX6QDL_PAD_KEY_COL4__USB_OTG_OC 0x1b0b0
386 /* power enable, high active */
387 MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x000b0
388 >;
389 };
390
391 pinctrl_usdhc3: usdhc3grp {
392 fsl,pins = <
393 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059
394 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059
395 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059
396 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059
397 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059
398 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059
399 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x1b0b0 /* CD */
400 >;
401 };
402
403 pinctrl_usdhc4: usdhc4grp {
404 fsl,pins = <
405 MX6QDL_PAD_SD4_CMD__SD4_CMD 0x17059
406 MX6QDL_PAD_SD4_CLK__SD4_CLK 0x10059
407 MX6QDL_PAD_SD4_DAT0__SD4_DATA0 0x17059
408 MX6QDL_PAD_SD4_DAT1__SD4_DATA1 0x17059
409 MX6QDL_PAD_SD4_DAT2__SD4_DATA2 0x17059
410 MX6QDL_PAD_SD4_DAT3__SD4_DATA3 0x17059
411 MX6QDL_PAD_NANDF_D6__GPIO2_IO06 0x1b0b0 /* CD */
412 >;
413 };
414 };
415};
416
417&ldb {
418 status = "okay";
419
420 lvds-channel@0 {
421 fsl,data-mapping = "spwg";
422 fsl,data-width = <18>;
423 status = "okay";
424
Eric Nelson5d5c8652015-05-19 08:50:15 -0700425 port@4 {
426 reg = <4>;
427
428 lvds0_out: endpoint {
429 remote-endpoint = <&panel_in>;
Troy Kiskya177f182013-12-16 18:13:03 -0700430 };
431 };
432 };
433};
434
435&pcie {
436 status = "okay";
437};
438
439&pwm1 {
440 pinctrl-names = "default";
441 pinctrl-0 = <&pinctrl_pwm1>;
442 status = "okay";
443};
444
445&pwm3 {
446 pinctrl-names = "default";
447 pinctrl-0 = <&pinctrl_pwm3>;
448 status = "okay";
449};
450
451&pwm4 {
452 pinctrl-names = "default";
453 pinctrl-0 = <&pinctrl_pwm4>;
454 status = "okay";
455};
456
457&ssi1 {
Troy Kiskya177f182013-12-16 18:13:03 -0700458 status = "okay";
459};
460
461&uart1 {
462 pinctrl-names = "default";
463 pinctrl-0 = <&pinctrl_uart1>;
464 status = "okay";
465};
466
467&uart2 {
468 pinctrl-names = "default";
469 pinctrl-0 = <&pinctrl_uart2>;
470 status = "okay";
471};
472
473&usbh1 {
474 status = "okay";
475};
476
477&usbotg {
478 vbus-supply = <&reg_usb_otg_vbus>;
479 pinctrl-names = "default";
480 pinctrl-0 = <&pinctrl_usbotg>;
481 disable-over-current;
482 status = "okay";
483};
484
485&usdhc3 {
486 pinctrl-names = "default";
487 pinctrl-0 = <&pinctrl_usdhc3>;
488 cd-gpios = <&gpio7 0 0>;
489 vmmc-supply = <&reg_3p3v>;
490 status = "okay";
491};
492
493&usdhc4 {
494 pinctrl-names = "default";
495 pinctrl-0 = <&pinctrl_usdhc4>;
496 cd-gpios = <&gpio2 6 0>;
497 vmmc-supply = <&reg_3p3v>;
498 status = "okay";
499};