1 // SPDX-License-Identifier: GPL-2.0
3 * Support for the i.MX6-based Bosch ACC board.
5 * Copyright (C) 2016 Garz & Fricke GmbH
6 * Copyright (C) 2018 DENX Software Engineering GmbH, Heiko Schocher <hs@denx.de>
7 * Copyright (C) 2018 DENX Software Engineering GmbH, Niel Fourie <lusus@denx.de>
8 * Copyright (C) 2019-2021 Bosch Thermotechnik GmbH, Matthias Winker <matthias.winker@bosch.com>
9 * Copyright (C) 2022 DENX Software Engineering GmbH, Philip Oberfichtner <pro@denx.de>
14 #include <dt-bindings/gpio/gpio.h>
15 #include <dt-bindings/leds/common.h>
20 compatible = "bosch,imx6q-acc", "fsl,imx6q";
33 device_type = "memory";
34 reg = <0x10000000 0x40000000>;
37 backlight_lvds: backlight-lvds {
38 compatible = "pwm-backlight";
39 pwms = <&pwm1 0 200000>;
40 brightness-levels = <0 61 499 1706 4079 8022 13938 22237 33328 47623 65535>;
41 num-interpolated-steps = <10>;
42 default-brightness-level = <60>;
43 power-supply = <®_lcd>;
47 compatible = "dataimage,fg1001l0dsswmg01";
48 backlight = <&backlight_lvds>;
52 remote-endpoint = <&lvds0_out>;
58 compatible = "fixed-factor-clock";
60 clocks = <&clks IMX6QDL_CLK_CKO2>;
63 clock-output-names = "12mhz_refclk";
64 assigned-clocks = <&clks IMX6QDL_CLK_CKO>,
65 <&clks IMX6QDL_CLK_CKO2>,
66 <&clks IMX6QDL_CLK_CKO2_SEL>;
67 assigned-clock-parents = <&clks IMX6QDL_CLK_CKO2>,
68 <&clks IMX6QDL_CLK_CKO2_PODF>,
69 <&clks IMX6QDL_CLK_OSC>;
70 assigned-clock-rates = <0>, <12000000>, <0>;
83 fsl,soc-operating-points = <
84 /* ARM kHz SOC-PU uV */
102 fsl,soc-operating-points = <
103 /* ARM kHz SOC-PU uV */
114 compatible = "pwm-leds";
117 color = <LED_COLOR_ID_RED>;
118 max-brightness = <248>;
119 default-state = "off";
120 pwms = <&pwm2 0 500000>;
124 color = <LED_COLOR_ID_WHITE>;
125 max-brightness = <248>;
126 default-state = "off";
127 pwms = <&pwm3 0 500000>;
128 linux,default-trigger = "heartbeat";
133 compatible = "gpio-leds";
134 pinctrl-names = "default";
135 pinctrl-0 = <&pinctrl_reset_gpio_led>;
138 color = <LED_COLOR_ID_RED>;
139 gpios = <&gpio5 18 GPIO_ACTIVE_HIGH>;
140 default-state = "off";
144 reg_5p0: regulator-5p0 {
145 compatible = "regulator-fixed";
146 regulator-name = "5p0";
149 reg_vin: regulator-vin {
150 compatible = "regulator-fixed";
151 regulator-name = "VIN";
152 regulator-min-microvolt = <4500000>;
153 regulator-max-microvolt = <4500000>;
155 vin-supply = <®_5p0>;
158 reg_usb_otg_vbus: regulator-usb-otg-vbus {
159 compatible = "regulator-fixed";
160 regulator-name = "usb_otg_vbus";
161 regulator-min-microvolt = <5000000>;
162 regulator-max-microvolt = <5000000>;
165 reg_usb_h1_vbus: regulator-usb-h1-vbus {
166 compatible = "regulator-fixed";
167 regulator-name = "usb_h1_vbus";
168 regulator-min-microvolt = <5000000>;
169 regulator-max-microvolt = <5000000>;
171 vin-supply = <®_5p0>;
174 reg_usb_h2_vbus: regulator-usb-h2-vbus {
175 compatible = "regulator-fixed";
176 regulator-name = "usb_h2_vbus";
177 regulator-min-microvolt = <5000000>;
178 regulator-max-microvolt = <5000000>;
179 vin-supply = <®_5p0> ;
183 reg_vsnvs: regulator-vsnvs {
184 compatible = "regulator-fixed";
185 regulator-name = "VSNVS_3V0";
186 regulator-min-microvolt = <3000000>;
187 regulator-max-microvolt = <3000000>;
189 vin-supply = <®_5p0>;
192 reg_lcd: regulator-lcd {
193 compatible = "regulator-fixed";
194 regulator-name = "LCD0 POWER";
195 regulator-min-microvolt = <5000000>;
196 regulator-max-microvolt = <5000000>;
197 pinctrl-names = "default";
198 pinctrl-0 = <&pinctrl_lcd_enable>;
199 gpio = <&gpio3 23 GPIO_ACTIVE_HIGH>;
204 reg_dac: regulator-dac {
205 compatible = "regulator-fixed";
206 regulator-name = "vref_dac";
207 regulator-min-microvolt = <20000>;
208 regulator-max-microvolt = <20000>;
209 vin-supply = <®_5p0> ;
213 reg_sw4: regulator-sw4 {
214 compatible = "regulator-fixed";
215 regulator-name = "SW4_3V3";
216 regulator-min-microvolt = <3300000>;
217 regulator-max-microvolt = <3300000>;
219 vin-supply = <®_5p0>;
222 reg_sys: regulator-sys {
223 compatible = "regulator-fixed";
224 regulator-name = "SYS_4V2";
225 regulator-min-microvolt = <4200000>;
226 regulator-max-microvolt = <4200000>;
228 vin-supply = <®_5p0>;
233 vin-supply = <&sw2_reg>;
237 vin-supply = <&sw1c_reg>;
241 vin-supply = <®_vsnvs>;
245 vin-supply = <®_vsnvs>;
249 vin-supply = <®_vsnvs>;
253 pinctrl-names = "default";
254 pinctrl-0 = <&pinctrl_enet>;
255 clocks = <&clks IMX6QDL_CLK_ENET>,
256 <&clks IMX6QDL_CLK_ENET>,
257 <&clks IMX6QDL_CLK_ENET>,
258 <&clks IMX6QDL_CLK_ENET_REF>;
259 clock-names = "ipg", "ahb", "ptp", "enet_out";
261 phy-supply = <®_sw4>;
262 phy-handle = <ðphy>;
266 #address-cells = <1>;
269 ethphy: ethernet-phy@0 {
270 compatible = "ethernet-phy-ieee802.3-c22";
272 interrupt-parent = <&gpio1>;
273 interrupts = <23 IRQ_TYPE_EDGE_FALLING>;
274 smsc,disable-energy-detect;
288 pinctrl-names = "default";
289 pinctrl-0 = <&pinctrl_i2c1>;
290 clock-frequency = <400000>;
294 compatible = "fsl,pfuze100";
299 regulator-name = "VDD_SOC (sw1abc)";
300 regulator-min-microvolt = <1275000>;
301 regulator-max-microvolt = <1500000>;
304 regulator-ramp-delay = <6250>;
308 regulator-name = "VDD_ARM (sw2)";
309 regulator-min-microvolt = <1050000>;
310 regulator-max-microvolt = <1500000>;
313 regulator-ramp-delay = <6250>;
317 compatible = "regulator-fixed";
318 regulator-name = "DDR_1V5a";
325 compatible = "regulator-fixed";
326 regulator-name = "DDR_1V5b";
333 regulator-name = "AUX 3V15 (sw4)";
334 regulator-min-microvolt = <800000>;
335 regulator-max-microvolt = <3300000>;
339 regulator-min-microvolt = <5000000>;
340 regulator-max-microvolt = <5150000>;
347 regulator-min-microvolt = <1200000>;
348 regulator-max-microvolt = <3000000>;
359 regulator-min-microvolt = <800000>;
360 regulator-max-microvolt = <1550000>;
365 regulator-min-microvolt = <800000>;
366 regulator-max-microvolt = <1550000>;
371 regulator-min-microvolt = <1800000>;
372 regulator-max-microvolt = <3300000>;
377 regulator-min-microvolt = <1800000>;
378 regulator-max-microvolt = <3300000>;
384 regulator-min-microvolt = <1800000>;
385 regulator-max-microvolt = <3300000>;
391 regulator-min-microvolt = <1800000>;
392 regulator-max-microvolt = <3300000>;
399 compatible = "national,lm75b";
400 pinctrl-names = "default";
401 pinctrl-0 = <&pinctrl_lm75>;
406 compatible = "atmel,24c32";
412 pinctrl-names = "default";
413 pinctrl-0 = <&pinctrl_rtc>;
414 compatible = "nxp,pcf8563";
420 pinctrl-names = "default";
421 pinctrl-0 = <&pinctrl_i2c2>;
422 clock-frequency = <100000>;
425 eeprom_ext: eeprom@50 {
426 compatible = "atmel,24c32";
433 pinctrl-names = "default";
434 pinctrl-0 = <&pinctrl_i2c3>;
435 clock-frequency = <400000>;
439 compatible = "smsc,usb3503";
440 pinctrl-names = "default";
441 pinctrl-0 = <&pinctrl_usb3503>;
443 connect-gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>; /* Old: 0, SS: HIGH */
444 intn-gpios = <&gpio7 12 GPIO_ACTIVE_LOW>; /* Old: 1, SS: HIGH */
445 reset-gpios = <&gpio5 5 GPIO_ACTIVE_LOW>; /* Old: 0, SS: HIGH */
448 clock-names = "refclk";
449 refclk-frequency = <12000000>;
452 exc3000: touchscreen@2a {
453 compatible = "eeti,exc3000";
455 pinctrl-names = "default";
456 pinctrl-0 = <&pinctrl_ctouch>;
457 interrupt-parent = <&gpio4>;
458 interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
459 touchscreen-size-x = <4096>;
460 touchscreen-size-y = <4096>;
463 vcnl4035: light-sensor@60 {
464 compatible = "vishay,vcnl4035";
465 pinctrl-names = "default";
466 pinctrl-0 = <&pinctrl_proximity>;
474 lvds0: lvds-channel@0 {
475 fsl,data-mapping = "spwg";
476 fsl,data-width = <24>;
481 lvds0_out: endpoint {
482 remote-endpoint = <&panel_in>;
490 pinctrl-names = "default";
491 pinctrl-0 = <&pinctrl_pwm1>;
497 pinctrl-names = "default";
498 pinctrl-0 = <&pinctrl_pwm2>;
504 pinctrl-names = "default";
505 pinctrl-0 = <&pinctrl_pwm3>;
511 pinctrl-names = "default";
512 pinctrl-0 = <&pinctrl_pwm4>;
517 pinctrl-names = "default";
518 pinctrl-0 = <&pinctrl_uart1>;
519 rts-gpios = <&gpio7 8 GPIO_ACTIVE_HIGH>;
520 linux,rs485-enabled-at-boot-time;
526 pinctrl-names = "default";
527 pinctrl-0 = <&pinctrl_uart2>;
533 vbus-supply = <®_usb_h1_vbus>;
538 pinctrl-names = "idle", "active";
539 pinctrl-0 = <&pinctrl_usbh2_idle>;
540 pinctrl-1 = <&pinctrl_usbh2_active>;
541 vbus-supply = <®_usb_h2_vbus>;
546 pinctrl-names = "default";
547 pinctrl-0 = <&pinctrl_usbotg>;
548 vbus-supply = <®_usb_otg_vbus>;
549 disable-over-current;
558 clocks = <&clks IMX6QDL_CLK_USBPHY1>;
559 clock-names = "main_clk";
560 vcc-supply = <®_usb_h1_vbus>;
564 vcc-supply = <®_usb_h2_vbus>;
568 pinctrl-names = "default";
569 pinctrl-0 = <&pinctrl_usdhc2>;
570 cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
572 keep-power-in-suspend;
574 voltage-ranges = <3300 3300>;
575 vmmc-supply = <®_sw4>;
581 pinctrl-names = "default";
582 pinctrl-0 = <&pinctrl_usdhc4>;
586 keep-power-in-suspend;
587 voltage-ranges = <3300 3300>;
588 vmmc-supply = <®_sw4>;
594 pinctrl-names = "default";
595 pinctrl-0 = <&pinctrl_wdog1>;
596 fsl,ext-reset-output;
602 pinctrl_enet: enetgrp {
604 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
605 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
606 MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN 0x1b0b0
607 MX6QDL_PAD_ENET_REF_CLK__GPIO1_IO23 0x1b0b0 /* FEC INT */
608 MX6QDL_PAD_ENET_RX_ER__ENET_RX_ER 0x1b0b0
609 MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN 0x0001b098
610 MX6QDL_PAD_ENET_RXD0__ENET_RX_DATA0 0x1b0b0
611 MX6QDL_PAD_ENET_RXD1__ENET_RX_DATA1 0x1b0b0
612 MX6QDL_PAD_ENET_TXD1__ENET_TX_DATA1 0x0001b098
613 MX6QDL_PAD_ENET_TXD0__ENET_TX_DATA0 0x0001b098
614 MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8
618 pinctrl_reset_gpio_led: reset-gpio-led-grp {
620 MX6QDL_PAD_CSI0_PIXCLK__GPIO5_IO18 0x1b0b0
624 pinctrl_i2c1: i2c1grp {
626 MX6QDL_PAD_CSI0_DAT8__I2C1_SDA 0x4001b8b1
627 MX6QDL_PAD_CSI0_DAT9__I2C1_SCL 0x4001b8b1
631 pinctrl_i2c2: i2c2grp {
633 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b810
634 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b810
638 pinctrl_i2c3: i2c3grp {
640 MX6QDL_PAD_GPIO_5__I2C3_SCL 0x4001b8b1
641 MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1
645 pinctrl_lcd_enable: lcdenablegrp {
647 MX6QDL_PAD_EIM_D23__GPIO3_IO23 0x1b0b0 /* lcd enable */
648 MX6QDL_PAD_EIM_D16__GPIO3_IO16 0x1b0b0 /* sel6_8 */
652 pinctrl_lm75: lm75grp {
654 MX6QDL_PAD_KEY_ROW0__GPIO4_IO07 0x1b0b0
658 pinctrl_proximity: proximitygrp {
660 MX6QDL_PAD_KEY_ROW2__GPIO4_IO11 0x1b0b0
664 pinctrl_pwm1: pwm1grp {
666 MX6QDL_PAD_SD1_DAT3__PWM1_OUT 0x0001b0b0
670 pinctrl_pwm2: pwm2grp {
672 MX6QDL_PAD_SD1_DAT2__PWM2_OUT 0x0001b0b0
676 pinctrl_pwm3: pwm3grp {
678 MX6QDL_PAD_SD1_DAT1__PWM3_OUT 0x0001b0b0
682 pinctrl_pwm4: pwm4grp {
684 MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x0001b0b0
688 pinctrl_rtc: rtc-grp {
690 MX6QDL_PAD_KEY_COL1__GPIO4_IO08 0x1b0b0 /* RTC INT */
694 pinctrl_ctouch: ctouch-grp {
696 MX6QDL_PAD_KEY_COL0__GPIO4_IO06 0x1b0b0 /* CTOUCH_INT */
697 MX6QDL_PAD_SD1_CLK__GPIO1_IO20 0x0001b0b0 /* CTOUCH_RESET */
701 pinctrl_uart1: uart1grp {
703 MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA 0x1b0b1
704 MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x1b0b1
705 MX6QDL_PAD_SD3_RST__GPIO7_IO08 0x0001b0b0
709 pinctrl_uart2: uart2grp {
711 MX6QDL_PAD_SD3_DAT4__UART2_RX_DATA 0x1b0b1
712 MX6QDL_PAD_SD3_DAT5__UART2_TX_DATA 0x1b0b1
713 MX6QDL_PAD_EIM_D28__UART2_CTS_B 0x1b0b1
714 MX6QDL_PAD_EIM_D29__UART2_RTS_B 0x1b0b1
718 pinctrl_usbh2_idle: usbh2-idle-grp {
720 MX6QDL_PAD_RGMII_TXC__USB_H2_DATA 0x00013018
721 MX6QDL_PAD_RGMII_TX_CTL__USB_H2_STROBE 0x00013018
725 pinctrl_usbh2_active: usbh2-active-grp {
727 MX6QDL_PAD_RGMII_TXC__USB_H2_DATA 0x00013018
728 MX6QDL_PAD_RGMII_TX_CTL__USB_H2_STROBE 0x00017018
732 pinctrl_usb3503: usb3503-grp {
734 MX6QDL_PAD_CSI0_MCLK__CCM_CLKO1 0x00000018
735 MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x1b0b0 /* USB INT */
736 MX6QDL_PAD_DISP0_DAT11__GPIO5_IO05 0x0001b0b0 /* USB Reset */
737 MX6QDL_PAD_SD1_DAT0__GPIO1_IO16 0x1b0b0 /* USB Connect */
741 pinctrl_usbotg: usbotggrp {
743 MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x17059
747 pinctrl_usdhc2: usdhc2grp {
749 MX6QDL_PAD_SD2_CMD__SD2_CMD 0x00017069
750 MX6QDL_PAD_SD2_CLK__SD2_CLK 0x00010038
751 MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x00017069
752 MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x00017069
753 MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x00017069
754 MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x00017069
755 MX6QDL_PAD_GPIO_4__SD2_CD_B 0x0001b0b0
759 pinctrl_usdhc4: usdhc4grp {
761 MX6QDL_PAD_SD4_CMD__SD4_CMD 0x00017059
762 MX6QDL_PAD_SD4_CLK__SD4_CLK 0x00010059
763 MX6QDL_PAD_SD4_DAT0__SD4_DATA0 0x00017059
764 MX6QDL_PAD_SD4_DAT1__SD4_DATA1 0x00017059
765 MX6QDL_PAD_SD4_DAT2__SD4_DATA2 0x00017059
766 MX6QDL_PAD_SD4_DAT3__SD4_DATA3 0x00017059
767 MX6QDL_PAD_SD4_DAT4__SD4_DATA4 0x00017059
768 MX6QDL_PAD_SD4_DAT5__SD4_DATA5 0x00017059
769 MX6QDL_PAD_SD4_DAT6__SD4_DATA6 0x00017059
770 MX6QDL_PAD_SD4_DAT7__SD4_DATA7 0x00017059
774 pinctrl_wdog1: wdoggrp {
776 MX6QDL_PAD_GPIO_9__WDOG1_B 0x1b0b0