blob: d96ae54be3381399f9fe2285a6a0f45e7278b54f [file] [log] [blame]
Adam Ford1c207f912019-02-10 14:57:23 -06001// 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";
Adam Ford6fd6d6f2019-04-02 14:25:46 -050024 power-supply = <&reg_lcd_reset>;
25 backlight = <&backlight>;
Adam Ford1c207f912019-02-10 14:57:23 -060026
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;
Adam Ford1c207f912019-02-10 14:57:23 -060043 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;
Adam Ford1c207f912019-02-10 14:57:23 -060056 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};