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 = <®_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 = <®_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 = <®_vcc_3v3_analog>; 112*7012f551SYannic Moog DRVDD-supply = <®_vcc_3v3_analog>; 113*7012f551SYannic Moog DVDD-supply = <®_vcc_1v8_audio>; 114*7012f551SYannic Moog IOVDD-supply = <®_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 = <®_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