Message ID | 20230731-mcasp_am62a-v1-4-8bd137ffa8f1@ti.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | arm64: ti: Enable audio on AM62A | expand |
Hi Jai, Thanks for the patch. On 31/07/23 18:14, Jai Luthra wrote: > Add nodes for audio codec and sound card, enable the audio serializer > (McASP1) under use and update pinmux. > > Link: https://www.ti.com/lit/zip/sprr459 > Signed-off-by: Jai Luthra <j-luthra@ti.com> > Reviewed-by: Jayesh Choudhary <j-choudhary@ti.com> > --- > arch/arm64/boot/dts/ti/k3-am62a7-sk.dts | 77 +++++++++++++++++++++++++++++++++ > 1 file changed, 77 insertions(+) > > diff --git a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts > index 752c2f640f63..5f68d2eefe0f 100644 > --- a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts > +++ b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts > @@ -125,6 +125,41 @@ led-0 { > default-state = "off"; > }; > }; > + > + tlv320_mclk: clk-0 { > + #clock-cells = <0>; > + compatible = "fixed-clock"; > + clock-frequency = <12288000>; > + }; > + > + codec_audio: sound { > + compatible = "simple-audio-card"; > + simple-audio-card,name = "AM62Ax-SKEVM"; In my opinion better to give the codec name instead of board name here. Regards Devarsh
Hi Devarsh, On Aug 02, 2023 at 16:15:12 +0530, Devarsh Thakkar wrote: > Hi Jai, > > Thanks for the patch. > > On 31/07/23 18:14, Jai Luthra wrote: > > Add nodes for audio codec and sound card, enable the audio serializer > > (McASP1) under use and update pinmux. > > > > Link: https://www.ti.com/lit/zip/sprr459 > > Signed-off-by: Jai Luthra <j-luthra@ti.com> > > Reviewed-by: Jayesh Choudhary <j-choudhary@ti.com> > > --- > > arch/arm64/boot/dts/ti/k3-am62a7-sk.dts | 77 +++++++++++++++++++++++++++++++++ > > 1 file changed, 77 insertions(+) > > > > diff --git a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts > > index 752c2f640f63..5f68d2eefe0f 100644 > > --- a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts > > +++ b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts > > @@ -125,6 +125,41 @@ led-0 { > > default-state = "off"; > > }; > > }; > > + > > + tlv320_mclk: clk-0 { > > + #clock-cells = <0>; > > + compatible = "fixed-clock"; > > + clock-frequency = <12288000>; > > + }; > > + > > + codec_audio: sound { > > + compatible = "simple-audio-card"; > > + simple-audio-card,name = "AM62Ax-SKEVM"; > > In my opinion better to give the codec name instead of board name here. I agree, maybe calling it "sk-am62a-tlv320aic3106" would be the most clear option. Running a quick ripgrep on next tree: $ rg "simple-audio-card,name" arch/*/boot/dts/ I see a healthy mix of using both board and/or codec name here - with TI almost always using the board name. Maybe we can change the convention, but it would be a good idea to at least update SK-AM62 as well to use the new convention. Is it okay with you if it is handled as a separate series? > > Regards > Devarsh
On 17:10-20230802, Jai Luthra wrote: > Hi Devarsh, > > On Aug 02, 2023 at 16:15:12 +0530, Devarsh Thakkar wrote: > > Hi Jai, > > > > Thanks for the patch. > > > > On 31/07/23 18:14, Jai Luthra wrote: > > > Add nodes for audio codec and sound card, enable the audio serializer > > > (McASP1) under use and update pinmux. > > > > > > Link: https://www.ti.com/lit/zip/sprr459 > > > Signed-off-by: Jai Luthra <j-luthra@ti.com> > > > Reviewed-by: Jayesh Choudhary <j-choudhary@ti.com> > > > --- > > > arch/arm64/boot/dts/ti/k3-am62a7-sk.dts | 77 +++++++++++++++++++++++++++++++++ > > > 1 file changed, 77 insertions(+) > > > > > > diff --git a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts > > > index 752c2f640f63..5f68d2eefe0f 100644 > > > --- a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts > > > +++ b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts > > > @@ -125,6 +125,41 @@ led-0 { > > > default-state = "off"; > > > }; > > > }; > > > + > > > + tlv320_mclk: clk-0 { > > > + #clock-cells = <0>; > > > + compatible = "fixed-clock"; > > > + clock-frequency = <12288000>; > > > + }; > > > + > > > + codec_audio: sound { > > > + compatible = "simple-audio-card"; > > > + simple-audio-card,name = "AM62Ax-SKEVM"; > > > > In my opinion better to give the codec name instead of board name here. > > I agree, maybe calling it "sk-am62a-tlv320aic3106" would be the most > clear option. > > Running a quick ripgrep on next tree: > > $ rg "simple-audio-card,name" arch/*/boot/dts/ > > I see a healthy mix of using both board and/or codec name here - with TI > almost always using the board name. Maybe we can change the convention, > but it would be a good idea to at least update SK-AM62 as well to use > the new convention. > > Is it okay with you if it is handled as a separate series? Will this cleanup of existing board break any userspace? If so, NO and follow existing "board" convention - I'd like to maintain consistency, even if that is not exactly clean! If not, cleanup in a later series is fine, but please make sure to follow through this week - with this patch following the convention of choice.
Hi Jai, Nishant, On 02/08/23 19:05, Nishanth Menon wrote: > On 17:10-20230802, Jai Luthra wrote: >> Hi Devarsh, >> >> On Aug 02, 2023 at 16:15:12 +0530, Devarsh Thakkar wrote: >>> Hi Jai, >>> >>> Thanks for the patch. >>> >>> On 31/07/23 18:14, Jai Luthra wrote: >>>> Add nodes for audio codec and sound card, enable the audio serializer >>>> (McASP1) under use and update pinmux. >>>> >>>> Link: https://www.ti.com/lit/zip/sprr459 >>>> Signed-off-by: Jai Luthra <j-luthra@ti.com> >>>> Reviewed-by: Jayesh Choudhary <j-choudhary@ti.com> >>>> --- >>>> arch/arm64/boot/dts/ti/k3-am62a7-sk.dts | 77 +++++++++++++++++++++++++++++++++ >>>> 1 file changed, 77 insertions(+) >>>> >>>> diff --git a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts >>>> index 752c2f640f63..5f68d2eefe0f 100644 >>>> --- a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts >>>> +++ b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts >>>> @@ -125,6 +125,41 @@ led-0 { >>>> default-state = "off"; >>>> }; >>>> }; >>>> + >>>> + tlv320_mclk: clk-0 { >>>> + #clock-cells = <0>; >>>> + compatible = "fixed-clock"; >>>> + clock-frequency = <12288000>; >>>> + }; >>>> + >>>> + codec_audio: sound { >>>> + compatible = "simple-audio-card"; >>>> + simple-audio-card,name = "AM62Ax-SKEVM"; >>> >>> In my opinion better to give the codec name instead of board name here. >> >> I agree, maybe calling it "sk-am62a-tlv320aic3106" would be the most >> clear option. >> >> Running a quick ripgrep on next tree: >> >> $ rg "simple-audio-card,name" arch/*/boot/dts/ >> >> I see a healthy mix of using both board and/or codec name here - with TI >> almost always using the board name. Maybe we can change the convention, >> but it would be a good idea to at least update SK-AM62 as well to use >> the new convention. >> >> Is it okay with you if it is handled as a separate series? > Yes agreed, the naming can be taken care of as separate series as it also applies to other TI board (AM62x), we can brainstorm on the naming separately and not block this patch. Reviewed-by: Devarsh Thakkar <devarsht@ti.com> Regards Devarsh > Will this cleanup of existing board break any userspace? If so, NO and > follow existing "board" convention - I'd like to maintain consistency, > even if that is not exactly clean! If not, cleanup in a later series > is fine, but please make sure to follow through this week - with this > patch following the convention of choice. >
Hi Nishanth, Devarsh, On Aug 02, 2023 at 08:35:02 -0500, Nishanth Menon wrote: > On 17:10-20230802, Jai Luthra wrote: > > Hi Devarsh, > > > > On Aug 02, 2023 at 16:15:12 +0530, Devarsh Thakkar wrote: > > > Hi Jai, > > > > > > Thanks for the patch. > > > > > > On 31/07/23 18:14, Jai Luthra wrote: > > > > Add nodes for audio codec and sound card, enable the audio serializer > > > > (McASP1) under use and update pinmux. > > > > > > > > Link: https://www.ti.com/lit/zip/sprr459 > > > > Signed-off-by: Jai Luthra <j-luthra@ti.com> > > > > Reviewed-by: Jayesh Choudhary <j-choudhary@ti.com> > > > > --- > > > > arch/arm64/boot/dts/ti/k3-am62a7-sk.dts | 77 +++++++++++++++++++++++++++++++++ > > > > 1 file changed, 77 insertions(+) > > > > > > > > diff --git a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts > > > > index 752c2f640f63..5f68d2eefe0f 100644 > > > > --- a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts > > > > +++ b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts > > > > @@ -125,6 +125,41 @@ led-0 { > > > > default-state = "off"; > > > > }; > > > > }; > > > > + > > > > + tlv320_mclk: clk-0 { > > > > + #clock-cells = <0>; > > > > + compatible = "fixed-clock"; > > > > + clock-frequency = <12288000>; > > > > + }; > > > > + > > > > + codec_audio: sound { > > > > + compatible = "simple-audio-card"; > > > > + simple-audio-card,name = "AM62Ax-SKEVM"; > > > > > > In my opinion better to give the codec name instead of board name here. > > > > I agree, maybe calling it "sk-am62a-tlv320aic3106" would be the most > > clear option. > > > > Running a quick ripgrep on next tree: > > > > $ rg "simple-audio-card,name" arch/*/boot/dts/ > > > > I see a healthy mix of using both board and/or codec name here - with TI > > almost always using the board name. Maybe we can change the convention, > > but it would be a good idea to at least update SK-AM62 as well to use > > the new convention. > > > > Is it okay with you if it is handled as a separate series? > > Will this cleanup of existing board break any userspace? If so, NO and > follow existing "board" convention - I'd like to maintain consistency, > even if that is not exactly clean! Upon further inspection, yes changing existing boards can break userspace applications as some procfs entries are enumerated with the name of the soundcard. So updating AM62x is out of the question. I am in favor of maintaining naming consistency with this board. Devarsh, I notice the current scheme is not entirely opaque, as the pcm device enumerates both the cpu & codec driver names: root@am62xx-evm:~# aplay -L null Discard all samples (playback) or generate zero samples (capture) default:CARD=AM62xSKEVM AM62x-SKEVM, davinci-mcasp.0-tlv320aic3x-hifi tlv320aic3x-hifi-0 Default Audio Device sysdefault:CARD=AM62xSKEVM AM62x-SKEVM, davinci-mcasp.0-tlv320aic3x-hifi tlv320aic3x-hifi-0 Default Audio Device > If not, cleanup in a later series is fine, but please make sure to > follow through this week - with this patch following the convention of > choice. > Please feel free to pull the current series, if no further comments. > -- > Regards, > Nishanth Menon > Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3 1A34 DDB5 849D 1736 249D
diff --git a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts index 752c2f640f63..5f68d2eefe0f 100644 --- a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts +++ b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts @@ -125,6 +125,41 @@ led-0 { default-state = "off"; }; }; + + tlv320_mclk: clk-0 { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <12288000>; + }; + + codec_audio: sound { + compatible = "simple-audio-card"; + simple-audio-card,name = "AM62Ax-SKEVM"; + simple-audio-card,widgets = + "Headphone", "Headphone Jack", + "Line", "Line In", + "Microphone", "Microphone Jack"; + simple-audio-card,routing = + "Headphone Jack", "HPLOUT", + "Headphone Jack", "HPROUT", + "LINE1L", "Line In", + "LINE1R", "Line In", + "MIC3R", "Microphone Jack", + "Microphone Jack", "Mic Bias"; + simple-audio-card,format = "dsp_b"; + simple-audio-card,bitclock-master = <&sound_master>; + simple-audio-card,frame-master = <&sound_master>; + simple-audio-card,bitclock-inversion; + + simple-audio-card,cpu { + sound-dai = <&mcasp1>; + }; + + sound_master: simple-audio-card,codec { + sound-dai = <&tlv320aic3106>; + clocks = <&tlv320_mclk>; + }; + }; }; &mcu_pmx0 { @@ -230,6 +265,15 @@ AM62AX_IOPAD(0x130, PIN_INPUT, 0) /* (AB17) RGMII1_TXC */ AM62AX_IOPAD(0x12c, PIN_INPUT, 0) /* (W16) RGMII1_TX_CTL */ >; }; + + main_mcasp1_pins_default: main-mcasp1-pins-default { + pinctrl-single,pins = < + AM62AX_IOPAD(0x090, PIN_INPUT, 2) /* (L19) GPMC0_BE0n_CLE.MCASP1_ACLKX */ + AM62AX_IOPAD(0x098, PIN_INPUT, 2) /* (R18) GPMC0_WAIT0.MCASP1_AFSX */ + AM62AX_IOPAD(0x08c, PIN_OUTPUT, 2) /* (K19) GPMC0_WEn.MCASP1_AXR0 */ + AM62AX_IOPAD(0x084, PIN_INPUT, 2) /* (L18) GPMC0_ADVn_ALE.MCASP1_AXR2 */ + >; + }; }; &mcu_pmx0 { @@ -359,6 +403,19 @@ exp1: gpio@22 { "MCASP1_FET_SEL", "UART1_FET_SEL", "PD_I2C_IRQ", "IO_EXP_TEST_LED"; }; + + tlv320aic3106: audio-codec@1b { + #sound-dai-cells = <0>; + compatible = "ti,tlv320aic3106"; + reg = <0x1b>; + ai3x-micbias-vg = <1>; /* 2.0V */ + + /* Regulators */ + AVDD-supply = <&vcc_3v3_sys>; + IOVDD-supply = <&vcc_3v3_sys>; + DRVDD-supply = <&vcc_3v3_sys>; + DVDD-supply = <&buck5>; + }; }; &sdhci1 { @@ -434,3 +491,23 @@ cpsw3g_phy0: ethernet-phy@0 { ti,min-output-impedance; }; }; + +&mcasp1 { + status = "okay"; + #sound-dai-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&main_mcasp1_pins_default>; + + op-mode = <0>; /* MCASP_IIS_MODE */ + tdm-slots = <2>; + + serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */ + 1 0 2 0 + 0 0 0 0 + 0 0 0 0 + 0 0 0 0 + >; + tx-num-evt = <32>; + rx-num-evt = <32>; +};