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 <[email protected]>
Reviewed-by: Jayesh Choudhary <[email protected]>
---
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";
+ 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>;
+};
--
2.41.0
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 <[email protected]>
> Reviewed-by: Jayesh Choudhary <[email protected]>
> ---
> 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
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 <[email protected]>
> > > Reviewed-by: Jayesh Choudhary <[email protected]>
> > > ---
> > > 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.
--
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3 1A34 DDB5 849D 1736 249D
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 <[email protected]>
> > Reviewed-by: Jayesh Choudhary <[email protected]>
> > ---
> > 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
--
Thanks,
Jai
GPG Fingerprint: 4DE0 D818 E5D5 75E8 D45A AFC5 43DE 91F9 249A 7145
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 <[email protected]>
>>>> Reviewed-by: Jayesh Choudhary <[email protected]>
>>>> ---
>>>> 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 <[email protected]>
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 <[email protected]>
> > > > Reviewed-by: Jayesh Choudhary <[email protected]>
> > > > ---
> > > > 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
--
Thanks,
Jai
GPG Fingerprint: 4DE0 D818 E5D5 75E8 D45A AFC5 43DE 91F9 249A 7145