Hi, On 17/11/2020 12.17, Peter Ujfalusi wrote: > The board is using McASP2 for both analog (tlv320aic3106) and > HDMI (SiI9022) audio. > > Signed-off-by: Peter Ujfalusi <peter.ujfalusi@xxxxxx> > --- > arch/arm/boot/dts/keystone-k2g-evm.dts | 112 +++++++++++++++++++++++++ > 1 file changed, 112 insertions(+) > > diff --git a/arch/arm/boot/dts/keystone-k2g-evm.dts b/arch/arm/boot/dts/keystone-k2g-evm.dts > index 8b3d64c913d8..4d7e3514a3a7 100644 > --- a/arch/arm/boot/dts/keystone-k2g-evm.dts > +++ b/arch/arm/boot/dts/keystone-k2g-evm.dts > @@ -46,6 +46,14 @@ vcc1v8_ldo1_reg: fixedregulator-vcc1v8-ldo1 { > regulator-always-on; > }; > > + vcc1v8_ldo2_reg: fixedregulator-vcc1v8-ldo2 { > + compatible = "regulator-fixed"; > + regulator-name = "ldo2"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-always-on; > + }; > + > hdmi: connector { > compatible = "hdmi-connector"; > label = "hdmi"; > @@ -58,6 +66,57 @@ hdmi_connector_in: endpoint { > }; > }; > }; > + > + sound0: sound@0 { > + compatible = "simple-audio-card"; > + simple-audio-card,name = "K2G-EVM"; > + simple-audio-card,widgets = > + "Headphone", "Headphone Jack", > + "Line", "Line In"; > + simple-audio-card,routing = > + "Headphone Jack", "HPLOUT", > + "Headphone Jack", "HPROUT", > + "LINE1L", "Line In", > + "LINE1R", "Line In"; > + > + simple-audio-card,dai-link@0 { > + format = "i2s"; > + bitclock-master = <&sound0_0_master>; > + frame-master = <&sound0_0_master>; > + sound0_0_master: cpu { > + sound-dai = <&mcasp2>; > + clocks = <&k2g_clks 0x6 1>; > + system-clock-direction-out; > + }; > + > + codec { > + sound-dai = <&tlv320aic3106>; > + system-clock-frequency = <12288000>; I think it would be better to use: clocks = <&aud_mclk>; > + }; > + }; > + > + simple-audio-card,dai-link@1 { > + format = "i2s"; > + bitclock-master = <&sound0_1_master>; > + frame-master = <&sound0_1_master>; > + sound0_1_master: cpu { > + sound-dai = <&mcasp2>; > + clocks = <&k2g_clks 0x6 1>; > + system-clock-direction-out; > + }; > + > + codec { > + sound-dai = <&sii9022>; > + system-clock-frequency = <12288000>; and here as well: clocks = <&aud_mclk>; > + }; > + }; > + }; > + > + sii9022_mclk: sii9022_mclk { and rename the fixed clock to aud_mclk as the same clock is connected to both aic3106 and SiI9022 > + compatible = "fixed-clock"; > + #clock-cells = <0>; > + clock-frequency = <12288000>; > + }; > }; > > &k2g_pinctrl { > @@ -214,6 +273,15 @@ K2G_CORE_IOPAD(0x10e4) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* dssde.dssd > K2G_CORE_IOPAD(0x10e8) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* dssfid.dssfid */ > >; > }; > + > + mcasp2_pins: pinmux_mcasp2_pins { > + pinctrl-single,pins = < > + K2G_CORE_IOPAD(0x1234) (BUFFER_CLASS_B | PIN_PULLDOWN | MUX_MODE4) /* pr0_pru_gpo2.mcasp2_axr2 */ > + K2G_CORE_IOPAD(0x1238) (BUFFER_CLASS_B | PIN_PULLDOWN | MUX_MODE4) /* pr0_pru_gpo3.mcasp2_axr3 */ > + K2G_CORE_IOPAD(0x1254) (BUFFER_CLASS_B | PIN_PULLDOWN | MUX_MODE4) /* pr0_pru_gpo10.mcasp2_afsx */ > + K2G_CORE_IOPAD(0x125c) (BUFFER_CLASS_B | PIN_PULLDOWN | MUX_MODE4) /* pr0_pru_gpo12.mcasp2_aclkx */ > + >; > + }; > }; > > &uart0 { > @@ -423,6 +491,10 @@ sii9022: sii9022@3b { > compatible = "sil,sii9022"; > reg = <0x3b>; > > + sil,i2s-data-lanes = < 0 >; > + clocks = <&sii9022_mclk>; > + clock-names = "mclk"; > + > ports { > #address-cells = <1>; > #size-cells = <0>; > @@ -444,6 +516,19 @@ sii9022_out: endpoint { > }; > }; > }; > + > + tlv320aic3106: tlv320aic3106@1b { > + #sound-dai-cells = <0>; > + compatible = "ti,tlv320aic3106"; > + reg = <0x1b>; > + status = "okay"; > + > + /* Regulators */ > + AVDD-supply = <&vcc3v3_dcin_reg>; > + IOVDD-supply = <&vcc3v3_dcin_reg>; > + DRVDD-supply = <&vcc3v3_dcin_reg>; > + DVDD-supply = <&vcc1v8_ldo2_reg>; > + }; > }; > > &dss { > @@ -458,3 +543,30 @@ dpi_out: endpoint { > }; > }; > }; > + > +&k2g_clks { > + /* on the board 22.5792MHz is connected to AUDOSC_IN */ > + assigned-clocks = <&k2g_clks 0x4c 2>; > + assigned-clock-rates = <22579200>; > +}; > + > +&mcasp2 { > + #sound-dai-cells = <0>; > + > + pinctrl-names = "default"; > + pinctrl-0 = <&mcasp2_pins>; > + > + assigned-clocks = <&k2g_clks 0x6 1>; > + assigned-clock-parents = <&k2g_clks 0x6 2>; > + > + status = "okay"; > + > + op-mode = <0>; /* MCASP_IIS_MODE */ > + tdm-slots = <2>; > + /* 6 serializer */ > + serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */ > + 0 0 1 2 0 0 // AXR2: TX, AXR3: rx > + >; > + tx-num-evt = <32>; > + rx-num-evt = <32>; > +}; > - Péter Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki