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