Message ID | 20240826215922.13225-5-francesco@dolcini.it (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | arm64: dts: colibri-imx8x: Various improvements and additions | expand |
On Mon, Aug 26, 2024 at 11:59:16PM +0200, Francesco Dolcini wrote: > From: João Paulo Gonçalves <joao.goncalves@toradex.com> > > Add audio support for Colibri-iMX8X sound card. > > Signed-off-by: João Paulo Gonçalves <joao.goncalves@toradex.com> > Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com> > --- > .../boot/dts/freescale/imx8x-colibri.dtsi | 47 ++++++++++++++++++- > 1 file changed, 46 insertions(+), 1 deletion(-) > > diff --git a/arch/arm64/boot/dts/freescale/imx8x-colibri.dtsi b/arch/arm64/boot/dts/freescale/imx8x-colibri.dtsi > index aa9c45c290b9..1d22002103c4 100644 > --- a/arch/arm64/boot/dts/freescale/imx8x-colibri.dtsi > +++ b/arch/arm64/boot/dts/freescale/imx8x-colibri.dtsi > @@ -38,6 +38,13 @@ reg_module_3v3: regulator-module-3v3 { > regulator-max-microvolt = <3300000>; > }; > > + reg_module_3v3_avdd: regulator-module-3v3-avdd { > + compatible = "regulator-fixed"; > + regulator-max-microvolt = <3300000>; > + regulator-min-microvolt = <3300000>; > + regulator-name = "+V3.3_AVDD_AUDIO"; > + }; > + > reg_module_vref_1v8: regulator-module-vref-1v8 { > compatible = "regulator-fixed"; > regulator-max-microvolt = <1800000>; > @@ -55,6 +62,23 @@ reg_usbh_vbus: regulator-usbh-vbus { > regulator-min-microvolt = <5000000>; > regulator-name = "usbh_vbus"; > }; > + > + sound-card { > + compatible = "simple-audio-card"; > + simple-audio-card,bitclock-master = <&dailink_master>; > + simple-audio-card,format = "i2s"; > + simple-audio-card,frame-master = <&dailink_master>; > + simple-audio-card,name = "colibri-imx8x"; > + > + dailink_master: simple-audio-card,codec { > + clocks = <&mclkout0_lpcg IMX_LPCG_CLK_0>; > + sound-dai = <&sgtl5000_a>; > + }; > + > + simple-audio-card,cpu { > + sound-dai = <&sai0>; > + }; > + }; > }; > > /* Colibri Analogue Inputs */ > @@ -109,6 +133,21 @@ touchscreen@2c { > status = "disabled"; > }; > > + sgtl5000_a: audio-codec@a { Please sort I2C device nodes in slave address. Shawn > + compatible = "fsl,sgtl5000"; > + reg = <0xa>; > + #sound-dai-cells = <0>; > + assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>, > + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>, > + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>, > + <&mclkout0_lpcg IMX_LPCG_CLK_0>; > + assigned-clock-rates = <786432000>, <49152000>, <12000000>, <12000000>; > + clocks = <&mclkout0_lpcg IMX_LPCG_CLK_0>; > + VDDA-supply = <®_module_3v3_avdd>; > + VDDD-supply = <®_module_vref_1v8>; > + VDDIO-supply = <®_module_3v3>; > + }; > + > gpio_expander_43: gpio@43 { > compatible = "fcs,fxl6408"; > reg = <0x43>; > @@ -373,7 +412,13 @@ &lsio_pwm2 { > > /* TODO on-module PCIe for Wi-Fi */ > > -/* TODO On-module i2s / Audio */ > +/* On-module I2S */ > +&sai0 { > + #sound-dai-cells = <0>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_sai0>; > + status = "okay"; > +}; > > &usbotg1 { > adp-disable; > -- > 2.39.2 >
diff --git a/arch/arm64/boot/dts/freescale/imx8x-colibri.dtsi b/arch/arm64/boot/dts/freescale/imx8x-colibri.dtsi index aa9c45c290b9..1d22002103c4 100644 --- a/arch/arm64/boot/dts/freescale/imx8x-colibri.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8x-colibri.dtsi @@ -38,6 +38,13 @@ reg_module_3v3: regulator-module-3v3 { regulator-max-microvolt = <3300000>; }; + reg_module_3v3_avdd: regulator-module-3v3-avdd { + compatible = "regulator-fixed"; + regulator-max-microvolt = <3300000>; + regulator-min-microvolt = <3300000>; + regulator-name = "+V3.3_AVDD_AUDIO"; + }; + reg_module_vref_1v8: regulator-module-vref-1v8 { compatible = "regulator-fixed"; regulator-max-microvolt = <1800000>; @@ -55,6 +62,23 @@ reg_usbh_vbus: regulator-usbh-vbus { regulator-min-microvolt = <5000000>; regulator-name = "usbh_vbus"; }; + + sound-card { + compatible = "simple-audio-card"; + simple-audio-card,bitclock-master = <&dailink_master>; + simple-audio-card,format = "i2s"; + simple-audio-card,frame-master = <&dailink_master>; + simple-audio-card,name = "colibri-imx8x"; + + dailink_master: simple-audio-card,codec { + clocks = <&mclkout0_lpcg IMX_LPCG_CLK_0>; + sound-dai = <&sgtl5000_a>; + }; + + simple-audio-card,cpu { + sound-dai = <&sai0>; + }; + }; }; /* Colibri Analogue Inputs */ @@ -109,6 +133,21 @@ touchscreen@2c { status = "disabled"; }; + sgtl5000_a: audio-codec@a { + compatible = "fsl,sgtl5000"; + reg = <0xa>; + #sound-dai-cells = <0>; + assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>, + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>, + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>, + <&mclkout0_lpcg IMX_LPCG_CLK_0>; + assigned-clock-rates = <786432000>, <49152000>, <12000000>, <12000000>; + clocks = <&mclkout0_lpcg IMX_LPCG_CLK_0>; + VDDA-supply = <®_module_3v3_avdd>; + VDDD-supply = <®_module_vref_1v8>; + VDDIO-supply = <®_module_3v3>; + }; + gpio_expander_43: gpio@43 { compatible = "fcs,fxl6408"; reg = <0x43>; @@ -373,7 +412,13 @@ &lsio_pwm2 { /* TODO on-module PCIe for Wi-Fi */ -/* TODO On-module i2s / Audio */ +/* On-module I2S */ +&sai0 { + #sound-dai-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_sai0>; + status = "okay"; +}; &usbotg1 { adp-disable;