| Message ID | 20250924130749.3012071-2-dario.binacchi@amarulasolutions.com |
|---|---|
| State | New |
| Headers | show |
| Series |
|
| Related | show |
On Wed, Sep 24, 2025 at 03:07:45PM +0200, Dario Binacchi wrote: > 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> > --- > > .../boot/dts/nxp/mxs/imx28-amarula-rmm.dts | 51 +++++++++++++++++++ > 1 file changed, 51 insertions(+) > > diff --git a/arch/arm/boot/dts/nxp/mxs/imx28-amarula-rmm.dts b/arch/arm/boot/dts/nxp/mxs/imx28-amarula-rmm.dts > index af59211842fb..0c5b52f67178 100644 > --- a/arch/arm/boot/dts/nxp/mxs/imx28-amarula-rmm.dts > +++ b/arch/arm/boot/dts/nxp/mxs/imx28-amarula-rmm.dts > @@ -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,20 @@ &i2c0 { > pinctrl-0 = <&i2c0_pins_a>; > status = "okay"; > > + tlv320aic3x: tlv320aic3x@18 { Can we use a generic node name? > + compatible = "ti,tlv320aic3x"; > + pinctrl-names = "default"; > + pinctrl-0 = <&tlv320aic3x_pins>; > + reg = <0x18>; > + reset-gpios = <&gpio2 4 GPIO_ACTIVE_LOW>; > + #sound-dai-cells = <0>; > + Nitpick: unnecessary newline Shawn > + DVDD-supply = <®_1v8>; > + IOVDD-supply = <®_3v3>; > + AVDD-supply = <®_3v3>; > + DRVDD-supply = <®_3v3>; > + }; > + > touchscreen: touchscreen@38 { > compatible = "edt,edt-ft5306"; > reg = <0x38>; > @@ -246,6 +283,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 +314,12 @@ &pwm { > status = "okay"; > }; > > +&saif0 { > + pinctrl-names = "default"; > + pinctrl-0 = <&saif0_pins_a>; > + status = "okay"; > +}; > + > /* microSD */ > &ssp0 { > compatible = "fsl,imx28-mmc"; > -- > 2.43.0 > > base-commit: cec1e6e5d1ab33403b809f79cd20d6aff124ccfe > branch: microgea-rmm-audio To unsubscribe from this group and stop receiving emails from it, send an email to linux-amarula+unsubscribe@amarulasolutions.com.
diff --git a/arch/arm/boot/dts/nxp/mxs/imx28-amarula-rmm.dts b/arch/arm/boot/dts/nxp/mxs/imx28-amarula-rmm.dts index af59211842fb..0c5b52f67178 100644 --- a/arch/arm/boot/dts/nxp/mxs/imx28-amarula-rmm.dts +++ b/arch/arm/boot/dts/nxp/mxs/imx28-amarula-rmm.dts @@ -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,20 @@ &i2c0 { pinctrl-0 = <&i2c0_pins_a>; status = "okay"; + tlv320aic3x: tlv320aic3x@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 = <®_1v8>; + IOVDD-supply = <®_3v3>; + AVDD-supply = <®_3v3>; + DRVDD-supply = <®_3v3>; + }; + touchscreen: touchscreen@38 { compatible = "edt,edt-ft5306"; reg = <0x38>; @@ -246,6 +283,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 +314,12 @@ &pwm { status = "okay"; }; +&saif0 { + pinctrl-names = "default"; + pinctrl-0 = <&saif0_pins_a>; + status = "okay"; +}; + /* microSD */ &ssp0 { compatible = "fsl,imx28-mmc";