1 // SPDX-License-Identifier: GPL-2.0
2 //
3 // Copyright (C) 2019 Logic PD, Inc.
4 
5 /dts-v1/;
6 #include "imx6q.dtsi"
7 #include "imx6-logicpd-som.dtsi"
8 #include "imx6-logicpd-baseboard.dtsi"
9 
10 / {
11 	model = "Logic PD i.MX6QD SOM-M3";
12 	compatible = "logicpd,imx6q-logicpd", "fsl,imx6q";
13 
14 	backlight: backlight-lvds {
15 		compatible = "pwm-backlight";
16 		pwms = <&pwm3 0 20000 0>;
17 		brightness-levels = <0 4 8 16 32 64 128 255>;
18 		default-brightness-level = <6>;
19 		power-supply = <&reg_lcd>;
20 	};
21 
22 	panel-lvds0 {
23 		compatible = "okaya,rs800480t-7x0gp";
24 		power-supply = <&reg_lcd_reset>;
25 		backlight = <&backlight>;
26 
27 		port {
28 			panel_in_lvds0: endpoint {
29 				remote-endpoint = <&lvds0_out>;
30 			};
31 		};
32 	};
33 
34 	reg_lcd: regulator-lcd {
35 		pinctrl-names = "default";
36 		pinctrl-0 = <&pinctrl_lcd_reg>;
37 		compatible = "regulator-fixed";
38 		regulator-name = "lcd_panel_pwr";
39 		regulator-min-microvolt = <3300000>;
40 		regulator-max-microvolt = <3300000>;
41 		gpio = <&gpio4 17 GPIO_ACTIVE_HIGH>;
42 		enable-active-high;
43 		vin-supply = <&reg_3v3>;
44 		startup-delay-us = <500000>;
45 	};
46 
47 	reg_lcd_reset: regulator-lcd-reset {
48 		pinctrl-names = "default";
49 		pinctrl-0 = <&pinctrl_lcd_reset>;
50 		compatible = "regulator-fixed";
51 		regulator-name = "nLCD_RESET";
52 		regulator-min-microvolt = <3300000>;
53 		regulator-max-microvolt = <3300000>;
54 		gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>;
55 		enable-active-high;
56 		vin-supply = <&reg_lcd>;
57 	};
58 };
59 
60 &clks {
61 	assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
62 			  <&clks IMX6QDL_CLK_LDB_DI1_SEL>,
63 			  <&clks IMX6QDL_CLK_IPU1_DI0_PRE_SEL>,
64 			  <&clks IMX6QDL_CLK_IPU2_DI0_PRE_SEL>;
65 	assigned-clock-parents = <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>,
66 				 <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>,
67 				 <&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
68 				 <&clks IMX6QDL_CLK_PLL2_PFD2_396M>;
69 };
70 
71 &hdmi {
72 	ddc-i2c-bus = <&i2c3>;
73 	status = "okay";
74 };
75 
76 &i2c1 {
77 	touchscreen@26 {
78 		compatible = "ilitek,ili2117";
79 		reg = <0x26>;
80 		pinctrl-names = "default";
81 		pinctrl-0 = <&pinctrl_touchscreen>;
82 		interrupts-extended = <&gpio1 6 IRQ_TYPE_EDGE_RISING>;
83 	};
84 };
85 
86 &ldb {
87 	status = "okay";
88 
89 	lvds-channel@0 {
90 		fsl,data-mapping = "spwg";
91 		fsl,data-width = <24>;
92 		status = "okay";
93 
94 		port@4 {
95 			reg = <4>;
96 			lvds0_out: endpoint {
97 				remote-endpoint = <&panel_in_lvds0>;
98 			};
99 		};
100 	};
101 
102 };
103 
104 &pwm3 {
105 	status = "okay";
106 };
107 
108 &reg_hdmi {
109 	regulator-always-on;	/* Without this, the level shifter on HDMI doesn't turn on */
110 };
111 
112 &iomuxc {
113 	pinctrl_lcd_reg: lcdreg {
114 		fsl,pins = <
115 			MX6QDL_PAD_DI0_PIN15__GPIO4_IO17	0x100b0	/* R_LCD_PANEL_PWR */
116 		>;
117 	};
118 
119 	pinctrl_lcd_reset: lcdreset {
120 		fsl,pins = <
121 			MX6QDL_PAD_EIM_A25__GPIO5_IO02	0x100b0	/* LCD_nRESET */
122 		>;
123 	};
124 
125 	pinctrl_touchscreen: touchscreengrp {
126 		fsl,pins = <
127 			MX6QDL_PAD_GPIO_6__GPIO1_IO06	0x1b0b0	/* TOUCH_nPINTDAV */
128 		>;
129 	};
130 };
131