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 = "fsl,imx6q";
13
14	backlight: backlight-lvds {
15		compatible = "pwm-backlight";
16		pwms = <&pwm3 0 20000>;
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
25		port {
26			panel_in_lvds0: endpoint {
27				remote-endpoint = <&lvds0_out>;
28			};
29		};
30	};
31
32	reg_lcd: regulator-lcd {
33		pinctrl-names = "default";
34		pinctrl-0 = <&pinctrl_lcd_reg>;
35		compatible = "regulator-fixed";
36		regulator-name = "lcd_panel_pwr";
37		regulator-min-microvolt = <3300000>;
38		regulator-max-microvolt = <3300000>;
39		gpio = <&gpio4 17 GPIO_ACTIVE_HIGH>;
40		enable-active-high;
41		regulator-always-on;
42		vin-supply = <&reg_3v3>;
43		startup-delay-us = <500000>;
44	};
45
46	reg_lcd_reset: regulator-lcd-reset {
47		pinctrl-names = "default";
48		pinctrl-0 = <&pinctrl_lcd_reset>;
49		compatible = "regulator-fixed";
50		regulator-name = "nLCD_RESET";
51		regulator-min-microvolt = <3300000>;
52		regulator-max-microvolt = <3300000>;
53		gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>;
54		enable-active-high;
55		regulator-always-on;
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&ldb {
77	status = "okay";
78
79	lvds-channel@0 {
80		fsl,data-mapping = "spwg";
81		fsl,data-width = <24>;
82		status = "okay";
83
84		port@4 {
85			reg = <4>;
86			lvds0_out: endpoint {
87				remote-endpoint = <&panel_in_lvds0>;
88			};
89		};
90	};
91
92};
93
94&pwm3 {
95	status = "okay";
96};
97
98&reg_hdmi {
99	regulator-always-on;	/* Without this, the level shifter on HDMI doesn't turn on */
100};
101
102&iomuxc {
103	pinctrl_lcd_reg: lcdreg {
104		fsl,pins = <
105			MX6QDL_PAD_DI0_PIN15__GPIO4_IO17	0x100b0	/* R_LCD_PANEL_PWR */
106		>;
107	};
108
109	pinctrl_lcd_reset: lcdreset {
110		fsl,pins = <
111			MX6QDL_PAD_EIM_A25__GPIO5_IO02	0x100b0	/* LCD_nRESET */
112		>;
113	};
114
115	pinctrl_touchscreen: touchscreengrp {
116		fsl,pins = <
117			MX6QDL_PAD_GPIO_6__GPIO1_IO06	0x1b0b0	/* TOUCH_nPINTDAV */
118		>;
119	};
120};
121