xref: /linux/scripts/dtc/include-prefixes/arm64/freescale/imx8mp-phyboard-pollux-peb-av-10.dtsi (revision 0cac5ce06e524755b3dac1e0a060b05992076d93)
1*7012f551SYannic Moog// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2*7012f551SYannic Moog/*
3*7012f551SYannic Moog * Copyright (C) 2025 PHYTEC Messtechnik GmbH
4*7012f551SYannic Moog */
5*7012f551SYannic Moog
6*7012f551SYannic Moog#include <dt-bindings/clock/imx8mp-clock.h>
7*7012f551SYannic Moog#include <dt-bindings/gpio/gpio.h>
8*7012f551SYannic Moog#include "imx8mp-pinfunc.h"
9*7012f551SYannic Moog
10*7012f551SYannic Moog&{/} {
11*7012f551SYannic Moog	backlight_lvds0: backlight0 {
12*7012f551SYannic Moog		compatible = "pwm-backlight";
13*7012f551SYannic Moog		pinctrl-0 = <&pinctrl_lvds0>;
14*7012f551SYannic Moog		pinctrl-names = "default";
15*7012f551SYannic Moog		power-supply = <&reg_vcc_12v>;
16*7012f551SYannic Moog		status = "disabled";
17*7012f551SYannic Moog	};
18*7012f551SYannic Moog
19*7012f551SYannic Moog	panel_lvds0: panel-lvds0 {
20*7012f551SYannic Moog		backlight = <&backlight_lvds0>;
21*7012f551SYannic Moog		power-supply = <&reg_vcc_3v3_sw>;
22*7012f551SYannic Moog		status = "disabled";
23*7012f551SYannic Moog
24*7012f551SYannic Moog		port {
25*7012f551SYannic Moog			panel0_in: endpoint {
26*7012f551SYannic Moog				remote-endpoint = <&ldb_lvds_ch0>;
27*7012f551SYannic Moog			};
28*7012f551SYannic Moog		};
29*7012f551SYannic Moog	};
30*7012f551SYannic Moog
31*7012f551SYannic Moog	reg_vcc_12v: regulator-12v {
32*7012f551SYannic Moog		compatible = "regulator-fixed";
33*7012f551SYannic Moog		regulator-always-on;
34*7012f551SYannic Moog		regulator-boot-on;
35*7012f551SYannic Moog		regulator-max-microvolt = <12000000>;
36*7012f551SYannic Moog		regulator-min-microvolt = <12000000>;
37*7012f551SYannic Moog		regulator-name = "VCC_12V";
38*7012f551SYannic Moog	};
39*7012f551SYannic Moog
40*7012f551SYannic Moog	reg_vcc_1v8_audio: regulator-1v8 {
41*7012f551SYannic Moog		compatible = "regulator-fixed";
42*7012f551SYannic Moog		regulator-always-on;
43*7012f551SYannic Moog		regulator-boot-on;
44*7012f551SYannic Moog		regulator-max-microvolt = <1800000>;
45*7012f551SYannic Moog		regulator-min-microvolt = <1800000>;
46*7012f551SYannic Moog		regulator-name = "VCC_1V8_Audio";
47*7012f551SYannic Moog	};
48*7012f551SYannic Moog
49*7012f551SYannic Moog	reg_vcc_3v3_analog: regulator-3v3 {
50*7012f551SYannic Moog		compatible = "regulator-fixed";
51*7012f551SYannic Moog		regulator-always-on;
52*7012f551SYannic Moog		regulator-boot-on;
53*7012f551SYannic Moog		regulator-max-microvolt = <3300000>;
54*7012f551SYannic Moog		regulator-min-microvolt = <3300000>;
55*7012f551SYannic Moog		regulator-name = "VCC_3V3_Analog";
56*7012f551SYannic Moog	};
57*7012f551SYannic Moog
58*7012f551SYannic Moog	sound {
59*7012f551SYannic Moog		compatible = "simple-audio-card";
60*7012f551SYannic Moog		simple-audio-card,name = "snd-peb-av-10";
61*7012f551SYannic Moog		simple-audio-card,format = "i2s";
62*7012f551SYannic Moog		simple-audio-card,bitclock-master = <&dailink_master>;
63*7012f551SYannic Moog		simple-audio-card,frame-master = <&dailink_master>;
64*7012f551SYannic Moog		simple-audio-card,mclk-fs = <32>;
65*7012f551SYannic Moog		simple-audio-card,widgets =
66*7012f551SYannic Moog			"Line", "Line In",
67*7012f551SYannic Moog			"Speaker", "Speaker",
68*7012f551SYannic Moog			"Microphone", "Microphone Jack",
69*7012f551SYannic Moog			"Headphone", "Headphone Jack";
70*7012f551SYannic Moog		simple-audio-card,routing =
71*7012f551SYannic Moog			"Speaker", "SPOP",
72*7012f551SYannic Moog			"Speaker", "SPOM",
73*7012f551SYannic Moog			"Headphone Jack", "HPLOUT",
74*7012f551SYannic Moog			"Headphone Jack", "HPROUT",
75*7012f551SYannic Moog			"LINE1L", "Line In",
76*7012f551SYannic Moog			"LINE1R", "Line In",
77*7012f551SYannic Moog			"MIC3R", "Microphone Jack",
78*7012f551SYannic Moog			"Microphone Jack", "Mic Bias";
79*7012f551SYannic Moog
80*7012f551SYannic Moog		simple-audio-card,cpu {
81*7012f551SYannic Moog			sound-dai = <&sai2>;
82*7012f551SYannic Moog		};
83*7012f551SYannic Moog
84*7012f551SYannic Moog		dailink_master: simple-audio-card,codec {
85*7012f551SYannic Moog			sound-dai = <&codec>;
86*7012f551SYannic Moog			clocks = <&clk IMX8MP_CLK_SAI2>;
87*7012f551SYannic Moog		};
88*7012f551SYannic Moog	};
89*7012f551SYannic Moog};
90*7012f551SYannic Moog
91*7012f551SYannic Moog&i2c4 {
92*7012f551SYannic Moog	clock-frequency = <400000>;
93*7012f551SYannic Moog	pinctrl-0 = <&pinctrl_i2c4>;
94*7012f551SYannic Moog	pinctrl-1 = <&pinctrl_i2c4_gpio>;
95*7012f551SYannic Moog	pinctrl-names = "default", "gpio";
96*7012f551SYannic Moog	scl-gpios = <&gpio5 20 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
97*7012f551SYannic Moog	sda-gpios = <&gpio5 21 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
98*7012f551SYannic Moog	#address-cells = <1>;
99*7012f551SYannic Moog	#size-cells = <0>;
100*7012f551SYannic Moog	status = "okay";
101*7012f551SYannic Moog
102*7012f551SYannic Moog	codec: codec@18 {
103*7012f551SYannic Moog		compatible = "ti,tlv320aic3007";
104*7012f551SYannic Moog		reg = <0x18>;
105*7012f551SYannic Moog		pinctrl-0 = <&pinctrl_tlv320>;
106*7012f551SYannic Moog		pinctrl-names = "default";
107*7012f551SYannic Moog		#sound-dai-cells = <0>;
108*7012f551SYannic Moog		reset-gpios = <&gpio4 28 GPIO_ACTIVE_LOW>;
109*7012f551SYannic Moog		ai3x-gpio-func = <0xd 0x0>;
110*7012f551SYannic Moog		ai3x-micbias-vg = <2>;
111*7012f551SYannic Moog		AVDD-supply = <&reg_vcc_3v3_analog>;
112*7012f551SYannic Moog		DRVDD-supply = <&reg_vcc_3v3_analog>;
113*7012f551SYannic Moog		DVDD-supply = <&reg_vcc_1v8_audio>;
114*7012f551SYannic Moog		IOVDD-supply = <&reg_vcc_3v3_sw>;
115*7012f551SYannic Moog	};
116*7012f551SYannic Moog
117*7012f551SYannic Moog	eeprom@57 {
118*7012f551SYannic Moog		compatible = "atmel,24c32";
119*7012f551SYannic Moog		reg = <0x57>;
120*7012f551SYannic Moog		pagesize = <32>;
121*7012f551SYannic Moog		vcc-supply = <&reg_vcc_3v3_sw>;
122*7012f551SYannic Moog	};
123*7012f551SYannic Moog};
124*7012f551SYannic Moog
125*7012f551SYannic Moog&ldb_lvds_ch0 {
126*7012f551SYannic Moog	remote-endpoint = <&panel0_in>;
127*7012f551SYannic Moog};
128*7012f551SYannic Moog
129*7012f551SYannic Moog&pwm4 {
130*7012f551SYannic Moog	pinctrl-0 = <&pinctrl_pwm4>;
131*7012f551SYannic Moog	pinctrl-names = "default";
132*7012f551SYannic Moog};
133*7012f551SYannic Moog
134*7012f551SYannic Moog&sai2 {
135*7012f551SYannic Moog	pinctrl-0 = <&pinctrl_sai2>;
136*7012f551SYannic Moog	pinctrl-names = "default";
137*7012f551SYannic Moog	assigned-clocks = <&clk IMX8MP_CLK_SAI2>;
138*7012f551SYannic Moog	assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
139*7012f551SYannic Moog	assigned-clock-rates = <12288000>;
140*7012f551SYannic Moog	clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI2_IPG>,
141*7012f551SYannic Moog		 <&clk IMX8MP_CLK_DUMMY>,
142*7012f551SYannic Moog		 <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI2_MCLK1>,
143*7012f551SYannic Moog		 <&clk IMX8MP_CLK_DUMMY>,
144*7012f551SYannic Moog		 <&clk IMX8MP_CLK_DUMMY>,
145*7012f551SYannic Moog		 <&clk IMX8MP_AUDIO_PLL1_OUT>,
146*7012f551SYannic Moog		 <&clk IMX8MP_AUDIO_PLL2_OUT>;
147*7012f551SYannic Moog	clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k",
148*7012f551SYannic Moog		      "pll11k";
149*7012f551SYannic Moog	#sound-dai-cells = <0>;
150*7012f551SYannic Moog	fsl,sai-mclk-direction-output;
151*7012f551SYannic Moog	fsl,sai-synchronous-rx;
152*7012f551SYannic Moog	status = "okay";
153*7012f551SYannic Moog};
154*7012f551SYannic Moog
155*7012f551SYannic Moog&iomuxc {
156*7012f551SYannic Moog	pinctrl_i2c4: i2c4grp {
157*7012f551SYannic Moog		fsl,pins = <
158*7012f551SYannic Moog			MX8MP_IOMUXC_I2C4_SCL__I2C4_SCL		0x400001c2
159*7012f551SYannic Moog			MX8MP_IOMUXC_I2C4_SDA__I2C4_SDA		0x400001c2
160*7012f551SYannic Moog		>;
161*7012f551SYannic Moog	};
162*7012f551SYannic Moog
163*7012f551SYannic Moog	pinctrl_i2c4_gpio: i2c4gpiogrp {
164*7012f551SYannic Moog		fsl,pins = <
165*7012f551SYannic Moog			MX8MP_IOMUXC_I2C4_SCL__GPIO5_IO20	0x1e2
166*7012f551SYannic Moog			MX8MP_IOMUXC_I2C4_SDA__GPIO5_IO21	0x1e2
167*7012f551SYannic Moog		>;
168*7012f551SYannic Moog	};
169*7012f551SYannic Moog
170*7012f551SYannic Moog	pinctrl_lvds0: lvds0grp {
171*7012f551SYannic Moog		fsl,pins = <
172*7012f551SYannic Moog			MX8MP_IOMUXC_SAI3_TXD__GPIO5_IO01	0x12
173*7012f551SYannic Moog		>;
174*7012f551SYannic Moog	};
175*7012f551SYannic Moog
176*7012f551SYannic Moog	pinctrl_pwm4: pwm4grp {
177*7012f551SYannic Moog		fsl,pins = <
178*7012f551SYannic Moog			MX8MP_IOMUXC_SAI3_MCLK__PWM4_OUT	0x12
179*7012f551SYannic Moog		>;
180*7012f551SYannic Moog	};
181*7012f551SYannic Moog
182*7012f551SYannic Moog	pinctrl_sai2: sai2grp {
183*7012f551SYannic Moog		fsl,pins = <
184*7012f551SYannic Moog			MX8MP_IOMUXC_SAI2_MCLK__AUDIOMIX_SAI2_MCLK	0xd6
185*7012f551SYannic Moog			MX8MP_IOMUXC_SAI2_RXFS__AUDIOMIX_SAI2_RX_SYNC	0xd6
186*7012f551SYannic Moog			MX8MP_IOMUXC_SAI2_TXC__AUDIOMIX_SAI2_TX_BCLK	0xd6
187*7012f551SYannic Moog			MX8MP_IOMUXC_SAI2_TXD0__AUDIOMIX_SAI2_TX_DATA00	0xd6
188*7012f551SYannic Moog			MX8MP_IOMUXC_SAI2_RXD0__AUDIOMIX_SAI2_RX_DATA00 0xd6
189*7012f551SYannic Moog		>;
190*7012f551SYannic Moog	};
191*7012f551SYannic Moog
192*7012f551SYannic Moog	pinctrl_tlv320: tlv320grp {
193*7012f551SYannic Moog		fsl,pins = <
194*7012f551SYannic Moog			MX8MP_IOMUXC_SAI3_RXFS__GPIO4_IO28	0x16
195*7012f551SYannic Moog			MX8MP_IOMUXC_SAI2_RXC__GPIO4_IO22	0x16
196*7012f551SYannic Moog		>;
197*7012f551SYannic Moog	};
198*7012f551SYannic Moog};
199