summaryrefslogtreecommitdiff
path: root/arch/arm/boot/dts/imx6q-logicpd.dts
blob: 46a4ddedb4236d324f45a8701f326de6d6fdb360 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
// SPDX-License-Identifier: GPL-2.0
//
// Copyright (C) 2019 Logic PD, Inc.

/dts-v1/;
#include "imx6q.dtsi"
#include "imx6-logicpd-som.dtsi"
#include "imx6-logicpd-baseboard.dtsi"

/ {
	model = "Logic PD i.MX6QD SOM-M3";
	compatible = "logicpd,imx6q-logicpd", "fsl,imx6q";

	backlight: backlight-lvds {
		compatible = "pwm-backlight";
		pwms = <&pwm3 0 20000 0>;
		brightness-levels = <0 4 8 16 32 64 128 255>;
		default-brightness-level = <6>;
		power-supply = <&reg_lcd>;
	};

	panel-lvds0 {
		compatible = "okaya,rs800480t-7x0gp";
		power-supply = <&reg_lcd_reset>;
		backlight = <&backlight>;

		port {
			panel_in_lvds0: endpoint {
				remote-endpoint = <&lvds0_out>;
			};
		};
	};

	reg_lcd: regulator-lcd {
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_lcd_reg>;
		compatible = "regulator-fixed";
		regulator-name = "lcd_panel_pwr";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		gpio = <&gpio4 17 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		vin-supply = <&reg_3v3>;
		startup-delay-us = <500000>;
	};

	reg_lcd_reset: regulator-lcd-reset {
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_lcd_reset>;
		compatible = "regulator-fixed";
		regulator-name = "nLCD_RESET";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		vin-supply = <&reg_lcd>;
	};
};

&clks {
	assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
			  <&clks IMX6QDL_CLK_LDB_DI1_SEL>,
			  <&clks IMX6QDL_CLK_IPU1_DI0_PRE_SEL>,
			  <&clks IMX6QDL_CLK_IPU2_DI0_PRE_SEL>;
	assigned-clock-parents = <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>,
				 <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>,
				 <&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
				 <&clks IMX6QDL_CLK_PLL2_PFD2_396M>;
};

&hdmi {
	ddc-i2c-bus = <&i2c3>;
	status = "okay";
};

&i2c1 {
	touchscreen@26 {
		compatible = "ilitek,ili2117";
		reg = <0x26>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_touchscreen>;
		interrupts-extended = <&gpio1 6 IRQ_TYPE_EDGE_RISING>;
	};
};

&ldb {
	status = "okay";

	lvds-channel@0 {
		fsl,data-mapping = "spwg";
		fsl,data-width = <24>;
		status = "okay";

		port@4 {
			reg = <4>;
			lvds0_out: endpoint {
				remote-endpoint = <&panel_in_lvds0>;
			};
		};
	};

};

&pwm3 {
	status = "okay";
};

&reg_hdmi {
	regulator-always-on;	/* Without this, the level shifter on HDMI doesn't turn on */
};

&iomuxc {
	pinctrl_lcd_reg: lcdreg {
		fsl,pins = <
			MX6QDL_PAD_DI0_PIN15__GPIO4_IO17	0x100b0	/* R_LCD_PANEL_PWR */
		>;
	};

	pinctrl_lcd_reset: lcdreset {
		fsl,pins = <
			MX6QDL_PAD_EIM_A25__GPIO5_IO02	0x100b0	/* LCD_nRESET */
		>;
	};

	pinctrl_touchscreen: touchscreengrp {
		fsl,pins = <
			MX6QDL_PAD_GPIO_6__GPIO1_IO06	0x1b0b0	/* TOUCH_nPINTDAV */
		>;
	};
};