xref: /openbmc/linux/arch/arm/boot/dts/nxp/imx/imx6ull-dhcom-pdk2.dts (revision 2612e3bbc0386368a850140a6c9b990cd496a5ec)
1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
2*724ba675SRob Herring/*
3*724ba675SRob Herring * Copyright (C) 2023 DH electronics GmbH
4*724ba675SRob Herring *
5*724ba675SRob Herring * DHCOM iMX6ULL variant:
6*724ba675SRob Herring * DHCM-iMX6ULL-C080-R051-F0409-SPI-E2-CAN2-RTC-WBT-ADC-I-01D2
7*724ba675SRob Herring * DHCOR PCB number: 578-200 or newer
8*724ba675SRob Herring * DHCOM PCB number: 579-200 or newer
9*724ba675SRob Herring * PDK2 PCB number: 516-400 or newer
10*724ba675SRob Herring */
11*724ba675SRob Herring/dts-v1/;
12*724ba675SRob Herring
13*724ba675SRob Herring#include "imx6ull-dhcom-som.dtsi"
14*724ba675SRob Herring
15*724ba675SRob Herring/ {
16*724ba675SRob Herring	model = "DH electronics i.MX6ULL DHCOM on Premium Developer Kit (2)";
17*724ba675SRob Herring	compatible = "dh,imx6ull-dhcom-pdk2", "dh,imx6ull-dhcom-som",
18*724ba675SRob Herring		     "dh,imx6ull-dhcor-som", "fsl,imx6ull";
19*724ba675SRob Herring
20*724ba675SRob Herring	clk_ext_audio_codec: clock-codec {
21*724ba675SRob Herring		compatible = "fixed-clock";
22*724ba675SRob Herring		#clock-cells = <0>;
23*724ba675SRob Herring		clock-frequency = <24000000>;
24*724ba675SRob Herring	};
25*724ba675SRob Herring
26*724ba675SRob Herring	display_bl: display-bl {
27*724ba675SRob Herring		compatible = "pwm-backlight";
28*724ba675SRob Herring		brightness-levels = <0 16 22 30 40 55 75 102 138 188 255>;
29*724ba675SRob Herring		default-brightness-level = <8>;
30*724ba675SRob Herring		enable-gpios = <&gpio5 8 GPIO_ACTIVE_HIGH>; /* GPIO G */
31*724ba675SRob Herring		power-supply = <&reg_panel_3v3>;
32*724ba675SRob Herring		pwms = <&pwm1 0 50000 PWM_POLARITY_INVERTED>;
33*724ba675SRob Herring	};
34*724ba675SRob Herring
35*724ba675SRob Herring	gpio-keys {
36*724ba675SRob Herring		compatible = "gpio-keys";
37*724ba675SRob Herring
38*724ba675SRob Herring		button-0 {
39*724ba675SRob Herring			gpios = <&gpio5 0 GPIO_ACTIVE_LOW>; /* GPIO A */
40*724ba675SRob Herring			label = "TA1-GPIO-A";
41*724ba675SRob Herring			linux,code = <KEY_A>;
42*724ba675SRob Herring			wakeup-source;
43*724ba675SRob Herring		};
44*724ba675SRob Herring
45*724ba675SRob Herring		button-1 {
46*724ba675SRob Herring			gpios = <&gpio5 1 GPIO_ACTIVE_LOW>; /* GPIO B */
47*724ba675SRob Herring			label = "TA2-GPIO-B";
48*724ba675SRob Herring			linux,code = <KEY_B>;
49*724ba675SRob Herring			wakeup-source;
50*724ba675SRob Herring		};
51*724ba675SRob Herring
52*724ba675SRob Herring		button-2 {
53*724ba675SRob Herring			gpios = <&gpio5 2 GPIO_ACTIVE_LOW>; /* GPIO C */
54*724ba675SRob Herring			label = "TA3-GPIO-C";
55*724ba675SRob Herring			linux,code = <KEY_C>;
56*724ba675SRob Herring			wakeup-source;
57*724ba675SRob Herring		};
58*724ba675SRob Herring
59*724ba675SRob Herring		button-3 {
60*724ba675SRob Herring			gpios = <&gpio5 3 GPIO_ACTIVE_LOW>; /* GPIO D */
61*724ba675SRob Herring			label = "TA4-GPIO-D";
62*724ba675SRob Herring			linux,code = <KEY_D>;
63*724ba675SRob Herring			wakeup-source;
64*724ba675SRob Herring		};
65*724ba675SRob Herring	};
66*724ba675SRob Herring
67*724ba675SRob Herring	led: led {
68*724ba675SRob Herring		compatible = "gpio-leds";
69*724ba675SRob Herring
70*724ba675SRob Herring		/*
71*724ba675SRob Herring		 * Disable PDK2 LED5, because GPIO E is
72*724ba675SRob Herring		 * already used as touch interrupt.
73*724ba675SRob Herring		 */
74*724ba675SRob Herring		led-0 {
75*724ba675SRob Herring			color = <LED_COLOR_ID_GREEN>;
76*724ba675SRob Herring			default-state = "off";
77*724ba675SRob Herring			function = LED_FUNCTION_INDICATOR;
78*724ba675SRob Herring			function-enumerator = <5>; /* PDK2 LED5 */
79*724ba675SRob Herring			gpios = <&gpio5 4 GPIO_ACTIVE_HIGH>; /* GPIO E */
80*724ba675SRob Herring			status = "disabled";
81*724ba675SRob Herring		};
82*724ba675SRob Herring
83*724ba675SRob Herring		led-1 {
84*724ba675SRob Herring			color = <LED_COLOR_ID_GREEN>;
85*724ba675SRob Herring			default-state = "off";
86*724ba675SRob Herring			function = LED_FUNCTION_INDICATOR;
87*724ba675SRob Herring			function-enumerator = <6>; /* PDK2 LED6 */
88*724ba675SRob Herring			gpios = <&gpio5 7 GPIO_ACTIVE_HIGH>; /* GPIO F */
89*724ba675SRob Herring		};
90*724ba675SRob Herring
91*724ba675SRob Herring		/*
92*724ba675SRob Herring		 * Disable PDK2 LED7, because GPIO H is
93*724ba675SRob Herring		 * already used for WiFi pin WL_REG_ON.
94*724ba675SRob Herring		 */
95*724ba675SRob Herring		led-2 {
96*724ba675SRob Herring			color = <LED_COLOR_ID_GREEN>;
97*724ba675SRob Herring			default-state = "off";
98*724ba675SRob Herring			function = LED_FUNCTION_INDICATOR;
99*724ba675SRob Herring			function-enumerator = <7>; /* PDK2 LED7 */
100*724ba675SRob Herring			gpios = <&gpio5 9 GPIO_ACTIVE_HIGH>; /* GPIO H */
101*724ba675SRob Herring			status = "disabled";
102*724ba675SRob Herring		};
103*724ba675SRob Herring
104*724ba675SRob Herring		/*
105*724ba675SRob Herring		 * Disable PDK2 LED8, because GPIO I is
106*724ba675SRob Herring		 * already used for BT pin BT_REG_ON.
107*724ba675SRob Herring		 */
108*724ba675SRob Herring		led-3 {
109*724ba675SRob Herring			color = <LED_COLOR_ID_GREEN>;
110*724ba675SRob Herring			default-state = "off";
111*724ba675SRob Herring			function = LED_FUNCTION_INDICATOR;
112*724ba675SRob Herring			function-enumerator = <8>; /* PDK2 LED8 */
113*724ba675SRob Herring			gpios = <&gpio1 18 GPIO_ACTIVE_HIGH>; /* GPIO I */
114*724ba675SRob Herring			status = "disabled";
115*724ba675SRob Herring		};
116*724ba675SRob Herring	};
117*724ba675SRob Herring
118*724ba675SRob Herring	panel {
119*724ba675SRob Herring		compatible = "edt,etm0700g0edh6";
120*724ba675SRob Herring		backlight = <&display_bl>;
121*724ba675SRob Herring		power-supply = <&reg_panel_3v3>;
122*724ba675SRob Herring
123*724ba675SRob Herring		port {
124*724ba675SRob Herring			lcd_panel_in: endpoint {
125*724ba675SRob Herring				remote-endpoint = <&lcd_display_out>;
126*724ba675SRob Herring			};
127*724ba675SRob Herring		};
128*724ba675SRob Herring	};
129*724ba675SRob Herring
130*724ba675SRob Herring	/* Filtered supply voltage */
131*724ba675SRob Herring	reg_pdk2_24v: regulator-pdk2-24v {
132*724ba675SRob Herring		compatible = "regulator-fixed";
133*724ba675SRob Herring		regulator-always-on;
134*724ba675SRob Herring		regulator-max-microvolt = <24000000>;
135*724ba675SRob Herring		regulator-min-microvolt = <24000000>;
136*724ba675SRob Herring		regulator-name = "24V_PDK2";
137*724ba675SRob Herring	};
138*724ba675SRob Herring
139*724ba675SRob Herring	/* PDK2 U35 */
140*724ba675SRob Herring	reg_pdk2_3v3: regulator-pdk2-3v3 {
141*724ba675SRob Herring		compatible = "regulator-fixed";
142*724ba675SRob Herring		regulator-always-on;
143*724ba675SRob Herring		regulator-min-microvolt = <3300000>;
144*724ba675SRob Herring		regulator-max-microvolt = <3300000>;
145*724ba675SRob Herring		regulator-name = "3V3_PDK2";
146*724ba675SRob Herring		vin-supply = <&reg_pdk2_24v>;
147*724ba675SRob Herring	};
148*724ba675SRob Herring
149*724ba675SRob Herring	/* 560-200 U1 */
150*724ba675SRob Herring	reg_panel_3v3: regulator-panel-3v3 {
151*724ba675SRob Herring		compatible = "regulator-fixed";
152*724ba675SRob Herring		regulator-always-on;
153*724ba675SRob Herring		regulator-min-microvolt = <3300000>;
154*724ba675SRob Herring		regulator-max-microvolt = <3300000>;
155*724ba675SRob Herring		regulator-name = "3V3_PANEL";
156*724ba675SRob Herring		vin-supply = <&reg_pdk2_24v>;
157*724ba675SRob Herring	};
158*724ba675SRob Herring
159*724ba675SRob Herring	sound {
160*724ba675SRob Herring		compatible = "simple-audio-card";
161*724ba675SRob Herring		simple-audio-card,bitclock-master = <&dailink_master>;
162*724ba675SRob Herring		simple-audio-card,format = "i2s";
163*724ba675SRob Herring		simple-audio-card,frame-master = <&dailink_master>;
164*724ba675SRob Herring		simple-audio-card,name = "sgtl5000";
165*724ba675SRob Herring		simple-audio-card,routing =
166*724ba675SRob Herring			"MIC_IN", "Mic Jack",
167*724ba675SRob Herring			"Mic Jack", "Mic Bias",
168*724ba675SRob Herring			"LINE_IN", "Line In Jack",
169*724ba675SRob Herring			"Headphone Jack", "HP_OUT";
170*724ba675SRob Herring		simple-audio-card,widgets =
171*724ba675SRob Herring			"Microphone", "Mic Jack",
172*724ba675SRob Herring			"Line", "Line In Jack",
173*724ba675SRob Herring			"Headphone", "Headphone Jack";
174*724ba675SRob Herring
175*724ba675SRob Herring		simple-audio-card,cpu {
176*724ba675SRob Herring			sound-dai = <&sai2>;
177*724ba675SRob Herring		};
178*724ba675SRob Herring
179*724ba675SRob Herring		dailink_master: simple-audio-card,codec {
180*724ba675SRob Herring			clocks = <&clk_ext_audio_codec>;
181*724ba675SRob Herring			sound-dai = <&sgtl5000>;
182*724ba675SRob Herring		};
183*724ba675SRob Herring	};
184*724ba675SRob Herring};
185*724ba675SRob Herring
186*724ba675SRob Herring/* DHCOM I2C1 */
187*724ba675SRob Herring&i2c2 {
188*724ba675SRob Herring	sgtl5000: audio-codec@a {
189*724ba675SRob Herring		compatible = "fsl,sgtl5000";
190*724ba675SRob Herring		reg = <0x0a>;
191*724ba675SRob Herring		#sound-dai-cells = <0>;
192*724ba675SRob Herring		clocks = <&clk_ext_audio_codec>;
193*724ba675SRob Herring		VDDA-supply = <&reg_pdk2_3v3>;
194*724ba675SRob Herring		VDDIO-supply = <&reg_pdk2_3v3>;
195*724ba675SRob Herring	};
196*724ba675SRob Herring
197*724ba675SRob Herring	touchscreen@38 {
198*724ba675SRob Herring		compatible = "edt,edt-ft5406";
199*724ba675SRob Herring		reg = <0x38>;
200*724ba675SRob Herring		interrupt-parent = <&gpio5>;
201*724ba675SRob Herring		interrupts = <4 IRQ_TYPE_EDGE_FALLING>; /* GPIO E */
202*724ba675SRob Herring		power-supply = <&reg_panel_3v3>;
203*724ba675SRob Herring	};
204*724ba675SRob Herring};
205*724ba675SRob Herring
206*724ba675SRob Herring&lcdif {
207*724ba675SRob Herring	status = "okay";
208*724ba675SRob Herring
209*724ba675SRob Herring	port {
210*724ba675SRob Herring		lcd_display_out: endpoint {
211*724ba675SRob Herring			remote-endpoint = <&lcd_panel_in>;
212*724ba675SRob Herring		};
213*724ba675SRob Herring	};
214*724ba675SRob Herring};
215*724ba675SRob Herring
216*724ba675SRob Herring&pwm1 {
217*724ba675SRob Herring	status = "okay";
218*724ba675SRob Herring};
219*724ba675SRob Herring
220*724ba675SRob Herring&sai2 {
221*724ba675SRob Herring	status = "okay";
222*724ba675SRob Herring};
223