On 23-07-19, Francesco Dolcini wrote: > From: Francesco Dolcini <francesco.dolcini@xxxxxxxxxxx> > > Add WM8904 based analog sound card to Dahlia carrier board. > > Signed-off-by: Francesco Dolcini <francesco.dolcini@xxxxxxxxxxx> > --- > .../dts/freescale/imx8mp-verdin-dahlia.dtsi | 56 ++++++++++++++++++- > 1 file changed, 53 insertions(+), 3 deletions(-) > > diff --git a/arch/arm64/boot/dts/freescale/imx8mp-verdin-dahlia.dtsi b/arch/arm64/boot/dts/freescale/imx8mp-verdin-dahlia.dtsi > index 56b0e4b865c9..7e9e4b13b5c5 100644 > --- a/arch/arm64/boot/dts/freescale/imx8mp-verdin-dahlia.dtsi > +++ b/arch/arm64/boot/dts/freescale/imx8mp-verdin-dahlia.dtsi > @@ -3,7 +3,36 @@ > * Copyright 2022 Toradex > */ > > -/* TODO: Audio Codec */ > +/ { > + sound { > + compatible = "simple-audio-card"; > + simple-audio-card,bitclock-master = <&codec_dai>; > + simple-audio-card,format = "i2s"; > + simple-audio-card,frame-master = <&codec_dai>; > + simple-audio-card,mclk-fs = <256>; > + simple-audio-card,name = "imx8mp-wm8904"; > + simple-audio-card,routing = > + "Headphone Jack", "HPOUTL", > + "Headphone Jack", "HPOUTR", > + "IN2L", "Line In Jack", > + "IN2R", "Line In Jack", > + "Headphone Jack", "MICBIAS", > + "IN1L", "Headphone Jack"; > + simple-audio-card,widgets = > + "Microphone", "Headphone Jack", > + "Headphone", "Headphone Jack", > + "Line", "Line In Jack"; > + > + codec_dai: simple-audio-card,codec { > + clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>; Nit: since the audio-codec node is using the same clock you can drop it here. Regards, Marco > + sound-dai = <&wm8904_1a>; > + }; > + > + simple-audio-card,cpu { > + sound-dai = <&sai1>; > + }; > + }; > +}; > > &backlight { > power-supply = <®_3p3v>; > @@ -64,7 +93,21 @@ &i2c3 { > &i2c4 { > status = "okay"; > > - /* TODO: Audio Codec */ > + /* Audio Codec */ > + wm8904_1a: audio-codec@1a { > + compatible = "wlf,wm8904"; > + reg = <0x1a>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_sai1>; > + #sound-dai-cells = <0>; > + clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>; > + clock-names = "mclk"; > + AVDD-supply = <®_1p8v>; > + CPVDD-supply = <®_1p8v>; > + DBVDD-supply = <®_1p8v>; > + DCVDD-supply = <®_1p8v>; > + MICVDD-supply = <®_1p8v>; > + }; > }; > > /* Verdin PCIE_1 */ > @@ -95,7 +138,14 @@ ®_usdhc2_vmmc { > vin-supply = <®_3p3v>; > }; > > -/* TODO: Verdin I2S_1 */ > +/* Verdin I2S_1 */ > +&sai1 { > + assigned-clocks = <&clk IMX8MP_CLK_SAI1>; > + assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>; > + assigned-clock-rates = <24576000>; > + fsl,sai-mclk-direction-output; > + status = "okay"; > +}; > > /* Verdin UART_1 */ > &uart1 { > -- > 2.25.1 > > >