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