xref: /freebsd/sys/contrib/device-tree/src/arm64/freescale/imx8mm-phyboard-polis-peb-av-10.dtso (revision ae5de77ed78ae54d86cead5604869212e8008e6b)
18ccc0d23SEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0
28ccc0d23SEmmanuel Vadot/*
38ccc0d23SEmmanuel Vadot * Copyright (C) 2025 PHYTEC Messtechnik GmbH
48ccc0d23SEmmanuel Vadot * Author: Teresa Remmet <t.remmet@phytec.de>
58ccc0d23SEmmanuel Vadot */
68ccc0d23SEmmanuel Vadot
78ccc0d23SEmmanuel Vadot/dts-v1/;
88ccc0d23SEmmanuel Vadot/plugin/;
98ccc0d23SEmmanuel Vadot
108ccc0d23SEmmanuel Vadot#include <dt-bindings/clock/imx8mm-clock.h>
118ccc0d23SEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
128ccc0d23SEmmanuel Vadot#include "imx8mm-pinfunc.h"
138ccc0d23SEmmanuel Vadot
148ccc0d23SEmmanuel Vadot&{/} {
158ccc0d23SEmmanuel Vadot	backlight: backlight {
168ccc0d23SEmmanuel Vadot		compatible = "pwm-backlight";
178ccc0d23SEmmanuel Vadot		pinctrl-names = "default";
188ccc0d23SEmmanuel Vadot		pinctrl-0 = <&pinctrl_lcd>;
198ccc0d23SEmmanuel Vadot		default-brightness-level = <6>;
208ccc0d23SEmmanuel Vadot		pwms = <&pwm4 0 50000 0>;
218ccc0d23SEmmanuel Vadot		power-supply = <&reg_vdd_3v3_s>;
228ccc0d23SEmmanuel Vadot		enable-gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;
238ccc0d23SEmmanuel Vadot		brightness-levels= <0 4 8 16 32 64 128 255>;
248ccc0d23SEmmanuel Vadot	};
258ccc0d23SEmmanuel Vadot
268ccc0d23SEmmanuel Vadot	panel {
278ccc0d23SEmmanuel Vadot		compatible = "edt,etml1010g3dra";
288ccc0d23SEmmanuel Vadot		backlight = <&backlight>;
298ccc0d23SEmmanuel Vadot		power-supply = <&reg_vcc_3v3>;
308ccc0d23SEmmanuel Vadot
318ccc0d23SEmmanuel Vadot		port {
328ccc0d23SEmmanuel Vadot			panel_in: endpoint {
338ccc0d23SEmmanuel Vadot				remote-endpoint = <&bridge_out>;
348ccc0d23SEmmanuel Vadot			};
358ccc0d23SEmmanuel Vadot		};
368ccc0d23SEmmanuel Vadot	};
378ccc0d23SEmmanuel Vadot
388ccc0d23SEmmanuel Vadot	reg_sound_1v8: regulator-1v8 {
398ccc0d23SEmmanuel Vadot		compatible = "regulator-fixed";
408ccc0d23SEmmanuel Vadot		regulator-name = "VCC_1V8_Audio";
418ccc0d23SEmmanuel Vadot		regulator-min-microvolt = <1800000>;
428ccc0d23SEmmanuel Vadot		regulator-max-microvolt = <1800000>;
438ccc0d23SEmmanuel Vadot	};
448ccc0d23SEmmanuel Vadot
458ccc0d23SEmmanuel Vadot	reg_sound_3v3: regulator-3v3 {
468ccc0d23SEmmanuel Vadot		compatible = "regulator-fixed";
478ccc0d23SEmmanuel Vadot		regulator-name = "VCC_3V3_Analog";
488ccc0d23SEmmanuel Vadot		regulator-min-microvolt = <3300000>;
498ccc0d23SEmmanuel Vadot		regulator-max-microvolt = <3300000>;
508ccc0d23SEmmanuel Vadot	};
518ccc0d23SEmmanuel Vadot
528ccc0d23SEmmanuel Vadot	sound-peb-av-10 {
538ccc0d23SEmmanuel Vadot		compatible = "simple-audio-card";
548ccc0d23SEmmanuel Vadot		simple-audio-card,name = "snd-peb-av-10";
558ccc0d23SEmmanuel Vadot		simple-audio-card,format = "i2s";
568ccc0d23SEmmanuel Vadot		simple-audio-card,bitclock-master = <&dailink_master>;
578ccc0d23SEmmanuel Vadot		simple-audio-card,frame-master = <&dailink_master>;
588ccc0d23SEmmanuel Vadot		simple-audio-card,mclk-fs = <32>;
598ccc0d23SEmmanuel Vadot		simple-audio-card,widgets =
608ccc0d23SEmmanuel Vadot			"Line", "Line In",
618ccc0d23SEmmanuel Vadot			"Speaker", "Speaker",
628ccc0d23SEmmanuel Vadot			"Microphone", "Microphone Jack",
638ccc0d23SEmmanuel Vadot			"Headphone", "Headphone Jack";
648ccc0d23SEmmanuel Vadot		simple-audio-card,routing =
658ccc0d23SEmmanuel Vadot			"Speaker", "SPOP",
668ccc0d23SEmmanuel Vadot			"Speaker", "SPOM",
678ccc0d23SEmmanuel Vadot			"Headphone Jack", "HPLOUT",
688ccc0d23SEmmanuel Vadot			"Headphone Jack", "HPROUT",
698ccc0d23SEmmanuel Vadot			"LINE1L", "Line In",
708ccc0d23SEmmanuel Vadot			"LINE1R", "Line In",
718ccc0d23SEmmanuel Vadot			"MIC3R", "Microphone Jack",
728ccc0d23SEmmanuel Vadot			"Microphone Jack", "Mic Bias";
738ccc0d23SEmmanuel Vadot
748ccc0d23SEmmanuel Vadot		simple-audio-card,cpu {
758ccc0d23SEmmanuel Vadot			sound-dai = <&sai5>;
768ccc0d23SEmmanuel Vadot		};
778ccc0d23SEmmanuel Vadot
788ccc0d23SEmmanuel Vadot		dailink_master: simple-audio-card,codec {
798ccc0d23SEmmanuel Vadot			sound-dai = <&codec>;
808ccc0d23SEmmanuel Vadot			clocks = <&clk IMX8MM_CLK_SAI5>;
818ccc0d23SEmmanuel Vadot		};
828ccc0d23SEmmanuel Vadot	};
838ccc0d23SEmmanuel Vadot};
848ccc0d23SEmmanuel Vadot
858ccc0d23SEmmanuel Vadot&i2c3 {
868ccc0d23SEmmanuel Vadot	clock-frequency = <400000>;
878ccc0d23SEmmanuel Vadot	pinctrl-names = "default", "gpio";
888ccc0d23SEmmanuel Vadot	pinctrl-0 = <&pinctrl_i2c3>;
898ccc0d23SEmmanuel Vadot	pinctrl-1 = <&pinctrl_i2c3_gpio>;
908ccc0d23SEmmanuel Vadot	sda-gpios = <&gpio5 19 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
918ccc0d23SEmmanuel Vadot	scl-gpios = <&gpio5 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
928ccc0d23SEmmanuel Vadot	#address-cells = <1>;
938ccc0d23SEmmanuel Vadot	#size-cells = <0>;
948ccc0d23SEmmanuel Vadot	status = "okay";
958ccc0d23SEmmanuel Vadot
968ccc0d23SEmmanuel Vadot	codec: codec@18 {
978ccc0d23SEmmanuel Vadot		compatible = "ti,tlv320aic3007";
988ccc0d23SEmmanuel Vadot		pinctrl-names = "default";
998ccc0d23SEmmanuel Vadot		pinctrl-0 = <&pinctrl_tlv320>;
1008ccc0d23SEmmanuel Vadot		#sound-dai-cells = <0>;
1018ccc0d23SEmmanuel Vadot		reg = <0x18>;
1028ccc0d23SEmmanuel Vadot		reset-gpios = <&gpio4 28 GPIO_ACTIVE_LOW>;
1038ccc0d23SEmmanuel Vadot		ai3x-gpio-func = <0xd 0x0>;
1048ccc0d23SEmmanuel Vadot		ai3x-micbias-vg = <2>;
1058ccc0d23SEmmanuel Vadot		AVDD-supply = <&reg_sound_3v3>;
1068ccc0d23SEmmanuel Vadot		IOVDD-supply = <&reg_sound_3v3>;
1078ccc0d23SEmmanuel Vadot		DRVDD-supply = <&reg_sound_3v3>;
1088ccc0d23SEmmanuel Vadot		DVDD-supply = <&reg_sound_1v8>;
1098ccc0d23SEmmanuel Vadot	};
1108ccc0d23SEmmanuel Vadot
1118ccc0d23SEmmanuel Vadot	eeprom@57 {
1128ccc0d23SEmmanuel Vadot		compatible = "atmel,24c32";
1138ccc0d23SEmmanuel Vadot		pagesize = <32>;
1148ccc0d23SEmmanuel Vadot		reg = <0x57>;
1158ccc0d23SEmmanuel Vadot		vcc-supply = <&reg_vdd_3v3_s>;
1168ccc0d23SEmmanuel Vadot	};
1178ccc0d23SEmmanuel Vadot
1188ccc0d23SEmmanuel Vadot	eeprom@5f {
1198ccc0d23SEmmanuel Vadot		compatible = "atmel,24c32";
1208ccc0d23SEmmanuel Vadot		pagesize = <32>;
1218ccc0d23SEmmanuel Vadot		reg = <0x5f>;
1228ccc0d23SEmmanuel Vadot		size = <32>;
1238ccc0d23SEmmanuel Vadot		vcc-supply = <&reg_vdd_3v3_s>;
1248ccc0d23SEmmanuel Vadot	};
1258ccc0d23SEmmanuel Vadot};
1268ccc0d23SEmmanuel Vadot
1278ccc0d23SEmmanuel Vadot&lcdif {
1288ccc0d23SEmmanuel Vadot	status = "okay";
1298ccc0d23SEmmanuel Vadot};
1308ccc0d23SEmmanuel Vadot
1318ccc0d23SEmmanuel Vadot&mipi_dsi {
1328ccc0d23SEmmanuel Vadot	samsung,esc-clock-frequency = <10000000>;
1338ccc0d23SEmmanuel Vadot	status = "okay";
1348ccc0d23SEmmanuel Vadot
1358ccc0d23SEmmanuel Vadot	ports {
1368ccc0d23SEmmanuel Vadot		#address-cells = <1>;
1378ccc0d23SEmmanuel Vadot		#size-cells = <0>;
1388ccc0d23SEmmanuel Vadot		port@1 {
1398ccc0d23SEmmanuel Vadot			reg = <1>;
1408ccc0d23SEmmanuel Vadot			dsi_out: endpoint {
1418ccc0d23SEmmanuel Vadot				remote-endpoint = <&bridge_in>;
1428ccc0d23SEmmanuel Vadot			};
1438ccc0d23SEmmanuel Vadot		};
1448ccc0d23SEmmanuel Vadot	};
1458ccc0d23SEmmanuel Vadot};
1468ccc0d23SEmmanuel Vadot
1478ccc0d23SEmmanuel Vadot&pwm4 {
1488ccc0d23SEmmanuel Vadot	pinctrl-names = "default";
1498ccc0d23SEmmanuel Vadot	pinctrl-0 = <&pinctrl_pwm4>;
1508ccc0d23SEmmanuel Vadot	status = "okay";
1518ccc0d23SEmmanuel Vadot};
1528ccc0d23SEmmanuel Vadot
1538ccc0d23SEmmanuel Vadot&sai5 {
1548ccc0d23SEmmanuel Vadot	assigned-clocks = <&clk IMX8MM_CLK_SAI5>;
1558ccc0d23SEmmanuel Vadot	assigned-clock-parents = <&clk IMX8MM_AUDIO_PLL2_OUT>;
1568ccc0d23SEmmanuel Vadot	assigned-clock-rates = <11289600>;
1578ccc0d23SEmmanuel Vadot	clocks = <&clk IMX8MM_CLK_SAI5_IPG>, <&clk IMX8MM_CLK_DUMMY>,
1588ccc0d23SEmmanuel Vadot		<&clk IMX8MM_CLK_SAI5_ROOT>, <&clk IMX8MM_CLK_DUMMY>,
1598ccc0d23SEmmanuel Vadot		<&clk IMX8MM_CLK_DUMMY>, <&clk IMX8MM_AUDIO_PLL1_OUT>,
1608ccc0d23SEmmanuel Vadot		<&clk IMX8MM_AUDIO_PLL2_OUT>;
1618ccc0d23SEmmanuel Vadot	clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k",
1628ccc0d23SEmmanuel Vadot			"pll11k";
1638ccc0d23SEmmanuel Vadot	fsl,sai-mclk-direction-output;
1648ccc0d23SEmmanuel Vadot	pinctrl-names = "default";
1658ccc0d23SEmmanuel Vadot	pinctrl-0 = <&pinctrl_sai5>;
1668ccc0d23SEmmanuel Vadot	#sound-dai-cells = <0>;
1678ccc0d23SEmmanuel Vadot	status = "okay";
1688ccc0d23SEmmanuel Vadot};
1698ccc0d23SEmmanuel Vadot
1708ccc0d23SEmmanuel Vadot&sn65dsi83 {
1718ccc0d23SEmmanuel Vadot	status = "okay";
1728ccc0d23SEmmanuel Vadot
1738ccc0d23SEmmanuel Vadot	ports {
1748ccc0d23SEmmanuel Vadot		#address-cells = <1>;
1758ccc0d23SEmmanuel Vadot		#size-cells = <0>;
1768ccc0d23SEmmanuel Vadot
1778ccc0d23SEmmanuel Vadot		port@0 {
1788ccc0d23SEmmanuel Vadot			reg = <0>;
1798ccc0d23SEmmanuel Vadot			bridge_in: endpoint {
1808ccc0d23SEmmanuel Vadot				remote-endpoint = <&dsi_out>;
1818ccc0d23SEmmanuel Vadot				data-lanes = <1 2 3 4>;
1828ccc0d23SEmmanuel Vadot			};
1838ccc0d23SEmmanuel Vadot		};
1848ccc0d23SEmmanuel Vadot
1858ccc0d23SEmmanuel Vadot		port@2 {
1868ccc0d23SEmmanuel Vadot			reg = <2>;
1878ccc0d23SEmmanuel Vadot			bridge_out: endpoint {
1888ccc0d23SEmmanuel Vadot				remote-endpoint = <&panel_in>;
189*ae5de77eSEmmanuel Vadot				ti,lvds-vod-swing-clock-microvolt = <200000 600000>;
190*ae5de77eSEmmanuel Vadot				ti,lvds-vod-swing-data-microvolt = <200000 600000>;
1918ccc0d23SEmmanuel Vadot			};
1928ccc0d23SEmmanuel Vadot		};
1938ccc0d23SEmmanuel Vadot	};
1948ccc0d23SEmmanuel Vadot};
1958ccc0d23SEmmanuel Vadot
1968ccc0d23SEmmanuel Vadot&iomuxc {
1978ccc0d23SEmmanuel Vadot
1988ccc0d23SEmmanuel Vadot	pinctrl_i2c3: i2c3grp {
1998ccc0d23SEmmanuel Vadot		fsl,pins = <
2008ccc0d23SEmmanuel Vadot			MX8MM_IOMUXC_I2C3_SCL_I2C3_SCL          0x400001c2
2018ccc0d23SEmmanuel Vadot			MX8MM_IOMUXC_I2C3_SDA_I2C3_SDA          0x400001c2
2028ccc0d23SEmmanuel Vadot		>;
2038ccc0d23SEmmanuel Vadot	};
2048ccc0d23SEmmanuel Vadot
2058ccc0d23SEmmanuel Vadot	pinctrl_i2c3_gpio: i2c3gpiogrp {
2068ccc0d23SEmmanuel Vadot		fsl,pins = <
2078ccc0d23SEmmanuel Vadot			MX8MM_IOMUXC_I2C3_SCL_GPIO5_IO18        0x1e2
2088ccc0d23SEmmanuel Vadot			MX8MM_IOMUXC_I2C3_SDA_GPIO5_IO19        0x1e2
2098ccc0d23SEmmanuel Vadot		>;
2108ccc0d23SEmmanuel Vadot	};
2118ccc0d23SEmmanuel Vadot	pinctrl_lcd: lcd0grp {
2128ccc0d23SEmmanuel Vadot		fsl,pins = <
2138ccc0d23SEmmanuel Vadot			MX8MM_IOMUXC_SAI3_TXD_GPIO5_IO1		0x12
2148ccc0d23SEmmanuel Vadot		>;
2158ccc0d23SEmmanuel Vadot	};
2168ccc0d23SEmmanuel Vadot
2178ccc0d23SEmmanuel Vadot	pinctrl_pwm4: pwm4grp {
2188ccc0d23SEmmanuel Vadot		fsl,pins = <
2198ccc0d23SEmmanuel Vadot			MX8MM_IOMUXC_SAI3_MCLK_PWM4_OUT		0x12
2208ccc0d23SEmmanuel Vadot		>;
2218ccc0d23SEmmanuel Vadot	};
2228ccc0d23SEmmanuel Vadot
2238ccc0d23SEmmanuel Vadot	pinctrl_sai5: sai5grp {
2248ccc0d23SEmmanuel Vadot		fsl,pins = <
2258ccc0d23SEmmanuel Vadot			MX8MM_IOMUXC_SAI5_MCLK_SAI5_MCLK        0xd6
2268ccc0d23SEmmanuel Vadot			MX8MM_IOMUXC_SAI5_RXD0_SAI5_RX_DATA0    0xd6
2278ccc0d23SEmmanuel Vadot			MX8MM_IOMUXC_SAI5_RXD1_SAI5_TX_SYNC     0xd6
2288ccc0d23SEmmanuel Vadot			MX8MM_IOMUXC_SAI5_RXD2_SAI5_TX_BCLK     0xd6
2298ccc0d23SEmmanuel Vadot			MX8MM_IOMUXC_SAI5_RXD3_SAI5_TX_DATA0    0xd6
2308ccc0d23SEmmanuel Vadot		>;
2318ccc0d23SEmmanuel Vadot	};
2328ccc0d23SEmmanuel Vadot
2338ccc0d23SEmmanuel Vadot	pinctrl_tlv320: tlv320grp {
2348ccc0d23SEmmanuel Vadot		fsl,pins = <
2358ccc0d23SEmmanuel Vadot			MX8MM_IOMUXC_SAI3_RXFS_GPIO4_IO28       0x16
2368ccc0d23SEmmanuel Vadot			MX8MM_IOMUXC_SAI5_RXC_GPIO3_IO20        0x16
2378ccc0d23SEmmanuel Vadot		>;
2388ccc0d23SEmmanuel Vadot	};
2398ccc0d23SEmmanuel Vadot};
240