2 * Copyright (C) 2017 NutsBoard.Org
4 * Author: Wig Cheng <onlywig@gmail.com>
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
11 * a) This file is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE.
47 #include <dt-bindings/gpio/gpio.h>
48 #include <dt-bindings/input/input.h>
52 model = "NutsBoard i.MX6 Quad Pistachio board";
53 compatible = "nutsboard,imx6q-pistachio", "fsl,imx6q";
60 reg = <0x10000000 0x80000000>;
63 reg_3p3v: regulator-3p3v {
64 compatible = "regulator-fixed";
65 regulator-name = "3P3V";
66 regulator-min-microvolt = <3300000>;
67 regulator-max-microvolt = <3300000>;
70 reg_1p8v: regulator-1p8v {
71 compatible = "regulator-fixed";
72 regulator-name = "1P8V";
73 regulator-min-microvolt = <1800000>;
74 regulator-max-microvolt = <1800000>;
77 wlan_en_reg: regulator-wlan_en {
78 compatible = "regulator-fixed";
79 regulator-name = "wlan-en-regulator";
80 regulator-min-microvolt = <1800000>;
81 regulator-max-microvolt = <1800000>;
82 gpio = <&gpio2 24 GPIO_ACTIVE_HIGH>;
83 startup-delay-us = <70000>;
87 reg_usb_otg_vbus: regulator-usb_vbus {
88 compatible = "regulator-fixed";
89 regulator-name = "usb_otg_vbus";
90 regulator-min-microvolt = <5000000>;
91 regulator-max-microvolt = <5000000>;
92 gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
94 vin-supply = <&swbst_reg>;
98 compatible = "gpio-keys";
99 pinctrl-names = "default";
100 pinctrl-0 = <&pinctrl_gpio_keys>;
103 label = "Power Button";
104 gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
106 linux,code = <KEY_POWER>;
111 compatible = "fsl,imx-sgtl5000",
112 "fsl,imx-audio-sgtl5000";
113 model = "audio-sgtl5000";
114 ssi-controller = <&ssi1>;
115 audio-codec = <&codec>;
117 "MIC_IN", "Mic Jack",
118 "Mic Jack", "Mic Bias",
119 "Headphone Jack", "HP_OUT";
124 backlight_lvds: backlight-lvds {
125 compatible = "pwm-backlight";
126 pwms = <&pwm1 0 50000>;
127 brightness-levels = <
128 0 /*1 2 3 4 5 6*/ 7 8 9
129 10 11 12 13 14 15 16 17 18 19
130 20 21 22 23 24 25 26 27 28 29
131 30 31 32 33 34 35 36 37 38 39
132 40 41 42 43 44 45 46 47 48 49
133 50 51 52 53 54 55 56 57 58 59
134 60 61 62 63 64 65 66 67 68 69
135 70 71 72 73 74 75 76 77 78 79
136 80 81 82 83 84 85 86 87 88 89
137 90 91 92 93 94 95 96 97 98 99
140 default-brightness-level = <94>;
145 compatible = "hannstar,hsd100pxn1";
146 backlight = <&backlight_lvds>;
150 remote-endpoint = <&lvds0_out>;
157 pinctrl-names = "default";
158 pinctrl-0 = <&pinctrl_audmux>;
163 pinctrl-names = "default";
164 pinctrl-0 = <&pinctrl_flexcan2>;
169 assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
170 <&clks IMX6QDL_CLK_LDB_DI1_SEL>;
171 assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
172 <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
176 pinctrl-names = "default";
177 pinctrl-0 = <&pinctrl_enet>;
183 ddc-i2c-bus = <&i2c2>;
188 clock-frequency = <100000>;
189 pinctrl-names = "default";
190 pinctrl-0 = <&pinctrl_i2c1>;
194 compatible = "fsl,sgtl5000";
195 pinctrl-names = "default";
196 pinctrl-0 = <&pinctrl_i2c1_sgtl5000>;
198 clocks = <&clks IMX6QDL_CLK_CKO>;
199 VDDA-supply = <®_1p8v>;
200 VDDIO-supply = <®_1p8v>;
205 clock-frequency = <100000>;
206 pinctrl-names = "default";
207 pinctrl-0 = <&pinctrl_i2c2>;
211 compatible = "fsl,pfuze100";
216 regulator-min-microvolt = <300000>;
217 regulator-max-microvolt = <1875000>;
220 regulator-ramp-delay = <6250>;
224 regulator-min-microvolt = <300000>;
225 regulator-max-microvolt = <1875000>;
228 regulator-ramp-delay = <6250>;
232 regulator-min-microvolt = <800000>;
233 regulator-max-microvolt = <3300000>;
236 regulator-ramp-delay = <6250>;
240 regulator-min-microvolt = <400000>;
241 regulator-max-microvolt = <1975000>;
247 regulator-min-microvolt = <400000>;
248 regulator-max-microvolt = <1975000>;
254 regulator-min-microvolt = <800000>;
255 regulator-max-microvolt = <3300000>;
259 regulator-min-microvolt = <5000000>;
260 regulator-max-microvolt = <5150000>;
264 regulator-min-microvolt = <1000000>;
265 regulator-max-microvolt = <3000000>;
276 regulator-min-microvolt = <800000>;
277 regulator-max-microvolt = <1550000>;
281 regulator-min-microvolt = <800000>;
282 regulator-max-microvolt = <1550000>;
286 regulator-min-microvolt = <1800000>;
287 regulator-max-microvolt = <3300000>;
291 regulator-min-microvolt = <1800000>;
292 regulator-max-microvolt = <3300000>;
297 regulator-min-microvolt = <1800000>;
298 regulator-max-microvolt = <3300000>;
302 regulator-min-microvolt = <1800000>;
303 regulator-max-microvolt = <3300000>;
310 compatible = "microchip,ar1021-i2c";
312 interrupt-parent = <&gpio6>;
313 interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
318 clock-frequency = <100000>;
319 pinctrl-names = "default";
320 pinctrl-0 = <&pinctrl_i2c3>;
325 pinctrl-names = "default";
327 pinctrl_hog: hoggrp {
329 MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1b0b0 /*pcie power*/
330 MX6QDL_PAD_EIM_A25__GPIO5_IO02 0x1b0b0 /*LCD power*/
331 MX6QDL_PAD_EIM_D16__GPIO3_IO16 0x1b0b0 /*backlight power*/
332 MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x1b0b1 /*SD3 CD pin*/
333 MX6QDL_PAD_KEY_COL2__GPIO4_IO10 0x1b0b0 /*codec power*/
334 MX6QDL_PAD_EIM_A16__GPIO2_IO22 0x1b0b0 /*touch reset*/
335 MX6QDL_PAD_NANDF_ALE__GPIO6_IO08 0x1b0b01 /*touch irq*/
336 MX6QDL_PAD_GPIO_7__GPIO1_IO07 0x1b0b0/*backlight pwr*/
337 MX6QDL_PAD_GPIO_16__GPIO7_IO11 0x1b0b0 /*gpio 5V_1*/
338 MX6QDL_PAD_EIM_A19__GPIO2_IO19 0x1b0b0 /*gpio 5V_2*/
339 MX6QDL_PAD_EIM_A24__GPIO5_IO04 0x1b0b0 /*gpio 5V_3*/
340 MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x1b0b0 /*gpio 5V_4*/
341 MX6QDL_PAD_NANDF_CLE__GPIO6_IO07 0x1b0b0 /*AUX_5V_EN*/
342 MX6QDL_PAD_NANDF_WP_B__GPIO6_IO09 0x1b0b0 /*AUX_5VB_EN*/
343 MX6QDL_PAD_NANDF_RB0__GPIO6_IO10 0x1b0b0 /*AUX_3V3_EN*/
344 MX6QDL_PAD_EIM_D21__GPIO3_IO21 0x1b0b0 /*I2C expander pwr*/
348 pinctrl_audmux: audmuxgrp {
350 MX6QDL_PAD_CSI0_DAT7__AUD3_RXD 0x130b0
351 MX6QDL_PAD_CSI0_DAT4__AUD3_TXC 0x130b0
352 MX6QDL_PAD_CSI0_DAT5__AUD3_TXD 0x110b0
353 MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS 0x130b0
357 pinctrl_ecspi1: ecspi1grp {
359 MX6QDL_PAD_KEY_COL1__ECSPI1_MISO 0x100b1
360 MX6QDL_PAD_KEY_ROW0__ECSPI1_MOSI 0x100b1
361 MX6QDL_PAD_KEY_COL0__ECSPI1_SCLK 0x100b1
362 MX6QDL_PAD_KEY_ROW1__GPIO4_IO09 0x1b0b0
366 pinctrl_enet: enetgrp {
368 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b8b0
369 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
371 MX6QDL_PAD_EIM_A20__GPIO2_IO18 0x130b0
372 /* AR8035 interrupt */
373 MX6QDL_PAD_EIM_CS0__GPIO2_IO23 0x1b0b1
374 MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b030
375 MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b030
376 MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b030
377 MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b030
378 MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b030
379 MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b030
380 /* AR8035 CLK_25M --> ENET_REF_CLK (V22) */
381 MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x0a0b1
382 /* AR8035 pin strapping: IO voltage: pull up */
383 MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b030
384 /* AR8035 pin strapping: PHYADDR#0: pull down */
385 MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x13030
386 /* AR8035 pin strapping: PHYADDR#1: pull down */
387 MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x13030
388 /* AR8035 pin strapping: MODE#1: pull up */
389 MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b030
390 /* AR8035 pin strapping: MODE#3: pull up */
391 MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b030
392 /* AR8035 pin strapping: MODE#0: pull down */
393 MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x13030
397 pinctrl_flexcan2: flexcan2grp {
399 MX6QDL_PAD_KEY_COL4__FLEXCAN2_TX 0x1b0b0
400 MX6QDL_PAD_KEY_ROW4__FLEXCAN2_RX 0x1b0b0
404 pinctrl_gpio_keys: gpio_keysgrp {
406 MX6QDL_PAD_SD4_DAT4__GPIO2_IO12 0x1b0b0
410 pinctrl_hdmi_cec: hdmicecgrp {
412 MX6QDL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE 0x108b0
416 pinctrl_i2c1: i2c1grp {
418 MX6QDL_PAD_CSI0_DAT8__I2C1_SDA 0x4001b8b1
419 MX6QDL_PAD_CSI0_DAT9__I2C1_SCL 0x4001b8b1
423 pinctrl_i2c2: i2c2grp {
425 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
426 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
430 pinctrl_i2c3: i2c3grp {
432 MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1
433 MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1
437 pinctrl_i2c1_sgtl5000: i2c1-sgtl5000grp {
439 MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x000b0 /* sys_mclk */
440 MX6QDL_PAD_SD3_RST__GPIO7_IO08 0x130b0 /*headphone det*/
441 MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x130b0 /*microphone det*/
445 pinctrl_pwm1: pwm1grp {
447 MX6QDL_PAD_GPIO_9__PWM1_OUT 0x1b0b1
451 pinctrl_uart1: uart1grp {
453 MX6QDL_PAD_CSI0_DAT10__UART1_RX_DATA 0x1b0b1
454 MX6QDL_PAD_CSI0_DAT11__UART1_TX_DATA 0x1b0b1
455 MX6QDL_PAD_EIM_D20__UART1_CTS_B 0x1b0b1
456 MX6QDL_PAD_EIM_D19__UART1_RTS_B 0x1b0b1
457 MX6QDL_PAD_EIM_D23__UART1_DCD_B 0x1b0b0
458 MX6QDL_PAD_EIM_D24__UART1_DTR_B 0x1b0b0
459 MX6QDL_PAD_EIM_D25__UART1_DSR_B 0x1b0b0
463 pinctrl_uart2: uart2grp {
465 MX6QDL_PAD_EIM_D26__UART2_TX_DATA 0x1b0b1
466 MX6QDL_PAD_EIM_D27__UART2_RX_DATA 0x1b0b1
467 MX6QDL_PAD_EIM_D28__UART2_CTS_B 0x1b0b1
468 MX6QDL_PAD_EIM_D29__UART2_RTS_B 0x1b0b1
472 pinctrl_uart3: uart3grp {
474 MX6QDL_PAD_SD4_CLK__UART3_RX_DATA 0x1b0b1
475 MX6QDL_PAD_SD4_CMD__UART3_TX_DATA 0x1b0b1
476 MX6QDL_PAD_EIM_D30__UART3_CTS_B 0x1b0b1
477 MX6QDL_PAD_EIM_D31__UART3_RTS_B 0x1b0b1
481 pinctrl_uart4: uart4grp {
483 MX6QDL_PAD_CSI0_DAT12__UART4_TX_DATA 0x1b0b1
484 MX6QDL_PAD_CSI0_DAT13__UART4_RX_DATA 0x1b0b1
485 MX6QDL_PAD_CSI0_DAT16__UART4_RTS_B 0x1b0b1
486 MX6QDL_PAD_CSI0_DAT17__UART4_CTS_B 0x1b0b1
490 pinctrl_uart5: uart5grp {
492 MX6QDL_PAD_CSI0_DAT14__UART5_TX_DATA 0x1b0b1
493 MX6QDL_PAD_CSI0_DAT15__UART5_RX_DATA 0x1b0b1
494 MX6QDL_PAD_CSI0_DAT18__UART5_RTS_B 0x1b0b1
495 MX6QDL_PAD_CSI0_DAT19__UART5_CTS_B 0x1b0b1
496 MX6QDL_PAD_EIM_A21__GPIO2_IO17 0x15059 /*BT_EN*/
500 pinctrl_usbotg: usbotggrp {
502 MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID 0x17059
506 pinctrl_usdhc1: usdhc1grp {
508 MX6QDL_PAD_SD1_CMD__SD1_CMD 0x17059
509 MX6QDL_PAD_SD1_CLK__SD1_CLK 0x10059
510 MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x17059
511 MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x17059
512 MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x17059
513 MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x17059
514 MX6QDL_PAD_NANDF_D0__SD1_DATA4 0x17059
515 MX6QDL_PAD_NANDF_D1__SD1_DATA5 0x17059
516 MX6QDL_PAD_NANDF_D2__SD1_DATA6 0x17059
517 MX6QDL_PAD_NANDF_D3__SD1_DATA7 0x17059
521 pinctrl_usdhc2: usdhc2grp {
523 MX6QDL_PAD_SD2_CMD__SD2_CMD 0x17059
524 MX6QDL_PAD_SD2_CLK__SD2_CLK 0x10059
525 MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x17059
526 MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17059
527 MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17059
528 MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x17059
529 MX6QDL_PAD_EIM_RW__GPIO2_IO26 0x15059 /*WL_EN_LDO*/
530 MX6QDL_PAD_EIM_CS1__GPIO2_IO24 0x15059 /*WL_EN*/
531 MX6QDL_PAD_CSI0_PIXCLK__GPIO5_IO18 0x15059 /*WL_IRQ*/
535 pinctrl_usdhc3: usdhc3grp {
537 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17071
538 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10071
539 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17071
540 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17071
541 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17071
542 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17071
546 pinctrl_wdog: wdoggrp {
548 MX6QDL_PAD_GPIO_1__WDOG2_B 0x1b0b00
557 fsl,data-mapping = "spwg";
558 fsl,data-width = <18>;
564 lvds0_out: endpoint {
565 remote-endpoint = <&panel_in>;
572 pinctrl-names = "default";
573 pinctrl-0 = <&pinctrl_pwm1>;
586 pinctrl-names = "default";
587 pinctrl-0 = <&pinctrl_uart1>;
594 pinctrl-names = "default";
595 pinctrl-0 = <&pinctrl_uart2>;
601 pinctrl-names = "default";
602 pinctrl-0 = <&pinctrl_uart3>;
608 pinctrl-names = "default";
609 pinctrl-0 = <&pinctrl_uart4>;
615 pinctrl-names = "default";
616 pinctrl-0 = <&pinctrl_uart5>;
622 vbus-supply = <®_usb_otg_vbus>;
623 pinctrl-names = "default";
624 pinctrl-0 = <&pinctrl_usbotg>;
625 disable-over-current;
637 fsl,tx-d-cal = <0x5>;
641 fsl,tx-d-cal = <0x5>;
645 pinctrl-names = "default";
646 pinctrl-0 = <&pinctrl_usdhc1>;
648 keep-power-in-suspend;
649 vmmc-supply = <®_3p3v>;
654 pinctrl-names = "default";
655 pinctrl-0 = <&pinctrl_usdhc2>;
657 vmmc-supply = <&wlan_en_reg>;
659 keep-power-in-suspend;
664 #address-cells = <1>;
667 compatible = "ti,wl1835";
669 interrupt-parent = <&gpio5>;
670 interrupts = <18 IRQ_TYPE_LEVEL_HIGH>;
671 ref-clock-frequency = <38400000>;
672 tcxo-clock-frequency = <26000000>;
677 pinctrl-names = "default";
678 pinctrl-0 = <&pinctrl_usdhc3>;
680 cd-gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
682 keep-power-in-suspend;