ARM: dts: imx28-amarula-rmm: add I2S audio

Add support for I2S audio on Amarula rmm board. Audio codec
TLV320AIC3X is connected as slave to SAIF0, which provides
bitclock, frame and MCLK.

Co-developed-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
This commit is contained in:
Dario Binacchi 2025-10-27 17:10:23 +01:00 committed by Shawn Guo
parent adf6a5a275
commit 2f185905da

View File

@ -112,6 +112,29 @@ reg_usb1_vbus: regulator-usb1-vbus {
enable-active-high;
regulator-always-on;
};
sound {
compatible = "simple-audio-card";
simple-audio-card,name = "imx28-mrmmi-tlv320aic3x-audio";
simple-audio-card,format = "i2s";
simple-audio-card,bitclock-master = <&cpu_dai>;
simple-audio-card,frame-master = <&cpu_dai>;
simple-audio-card,widgets =
"Headphone", "Headphone Jack";
simple-audio-card,routing =
"Headphone Jack", "HPROUT",
"Headphone Jack", "HPRCOM";
simple-audio-card,mclk-fs = <512>;
cpu_dai: simple-audio-card,cpu {
sound-dai = <&saif0>;
clocks = <&saif0>;
};
codec_dai: simple-audio-card,codec {
sound-dai = <&tlv320aic3x>;
};
};
};
&auart0 {
@ -154,6 +177,19 @@ &i2c0 {
pinctrl-0 = <&i2c0_pins_a>;
status = "okay";
tlv320aic3x: audio-codec@18 {
compatible = "ti,tlv320aic3x";
pinctrl-names = "default";
pinctrl-0 = <&tlv320aic3x_pins>;
reg = <0x18>;
reset-gpios = <&gpio2 4 GPIO_ACTIVE_LOW>;
#sound-dai-cells = <0>;
DVDD-supply = <&reg_1v8>;
IOVDD-supply = <&reg_3v3>;
AVDD-supply = <&reg_3v3>;
DRVDD-supply = <&reg_3v3>;
};
touchscreen: touchscreen@38 {
compatible = "edt,edt-ft5306";
reg = <0x38>;
@ -246,6 +282,14 @@ MX28_PAD_PWM1__GPIO_3_17
fsl,voltage = <MXS_VOLTAGE_HIGH>;
};
tlv320aic3x_pins: tlv320aic3x-pins@0 {
reg = <0>;
fsl,pinmux-ids = <MX28_PAD_SSP0_DATA4__GPIO_2_4>;
fsl,drive-strength = <MXS_DRIVE_4mA>;
fsl,pull-up = <MXS_PULL_ENABLE>;
fsl,voltage = <MXS_VOLTAGE_HIGH>;
};
usb0_vbus_enable_pin: usb0-vbus-enable@0 {
reg = <0>;
fsl,pinmux-ids = <MX28_PAD_SSP0_DATA5__GPIO_2_5>;
@ -269,6 +313,12 @@ &pwm {
status = "okay";
};
&saif0 {
pinctrl-names = "default";
pinctrl-0 = <&saif0_pins_a>;
status = "okay";
};
/* microSD */
&ssp0 {
compatible = "fsl,imx28-mmc";