[2/3] arm64: dts: qcom: acer-aspire1: Correct audio codec definition

Message ID 20231027-aspire1-sound-v1-2-5ff3cf8b5701@trvn.ru
State New
Headers
Series sc7180-acer-aspire1: Add sound |

Commit Message

Nikita Travkin Oct. 27, 2023, 2:42 p.m. UTC
  When initially added, a mistake was made in the definition of the codec.

Despite the fact that the DMIC line is connected on the side of the
codec chip, and relevant passive components, including 0-ohm resistors
connecting the dmics, are present, the dmic line is still cut in
another place on the board, which was overlooked.

Correct this by replacing the dmic configuration with a comment
describing this hardware detail.

While at it, also add missing regulators definitions. This is not a
functional change as all the relevant regulators were already added via
the other rail supplies.

Fixes: 4a9f8f8f2ada ("arm64: dts: qcom: Add Acer Aspire 1")
Signed-off-by: Nikita Travkin <nikita@trvn.ru>
---
 arch/arm64/boot/dts/qcom/sc7180-acer-aspire1.dts | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)
  

Comments

Konrad Dybcio Oct. 30, 2023, 9:48 p.m. UTC | #1
On 27.10.2023 16:42, Nikita Travkin wrote:
> When initially added, a mistake was made in the definition of the codec.
> 
> Despite the fact that the DMIC line is connected on the side of the
> codec chip, and relevant passive components, including 0-ohm resistors
> connecting the dmics, are present, the dmic line is still cut in
> another place on the board, which was overlooked.
> 
> Correct this by replacing the dmic configuration with a comment
> describing this hardware detail.
> 
> While at it, also add missing regulators definitions. This is not a
> functional change as all the relevant regulators were already added via
> the other rail supplies.
> 
> Fixes: 4a9f8f8f2ada ("arm64: dts: qcom: Add Acer Aspire 1")
> Signed-off-by: Nikita Travkin <nikita@trvn.ru>
> ---
>  arch/arm64/boot/dts/qcom/sc7180-acer-aspire1.dts | 17 +++++++++++++++--
>  1 file changed, 15 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/qcom/sc7180-acer-aspire1.dts b/arch/arm64/boot/dts/qcom/sc7180-acer-aspire1.dts
> index cfde8cd47107..00b442696618 100644
> --- a/arch/arm64/boot/dts/qcom/sc7180-acer-aspire1.dts
> +++ b/arch/arm64/boot/dts/qcom/sc7180-acer-aspire1.dts
> @@ -209,9 +209,22 @@ alc5682: codec@1a {
>  		AVDD-supply = <&vreg_l15a_1p8>;
>  		MICVDD-supply = <&reg_codec_3p3>;
>  		VBAT-supply = <&reg_codec_3p3>;
> +		DBVDD-supply = <&vreg_l15a_1p8>;
> +		LDO1-IN-supply = <&vreg_l15a_1p8>;
> +
> +		/*
> +		 * NOTE: The board has a path from this codec to the
> +		 * DMIC microphones in the lid, however some of the option
> +		 * resistors are absent and the microphones are connected
> +		 * to the SoC instead.
Would that not also require more DT changes and maybe UCM?

Konrad
  
Nikita Travkin Oct. 31, 2023, 7:20 a.m. UTC | #2
Konrad Dybcio писал(а) 31.10.2023 02:48:
> On 27.10.2023 16:42, Nikita Travkin wrote:
>> When initially added, a mistake was made in the definition of the codec.
>>
>> Despite the fact that the DMIC line is connected on the side of the
>> codec chip, and relevant passive components, including 0-ohm resistors
>> connecting the dmics, are present, the dmic line is still cut in
>> another place on the board, which was overlooked.
>>
>> Correct this by replacing the dmic configuration with a comment
>> describing this hardware detail.
>>
>> While at it, also add missing regulators definitions. This is not a
>> functional change as all the relevant regulators were already added via
>> the other rail supplies.
>>
>> Fixes: 4a9f8f8f2ada ("arm64: dts: qcom: Add Acer Aspire 1")
>> Signed-off-by: Nikita Travkin <nikita@trvn.ru>
>> ---
>>  arch/arm64/boot/dts/qcom/sc7180-acer-aspire1.dts | 17 +++++++++++++++--
>>  1 file changed, 15 insertions(+), 2 deletions(-)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/sc7180-acer-aspire1.dts b/arch/arm64/boot/dts/qcom/sc7180-acer-aspire1.dts
>> index cfde8cd47107..00b442696618 100644
>> --- a/arch/arm64/boot/dts/qcom/sc7180-acer-aspire1.dts
>> +++ b/arch/arm64/boot/dts/qcom/sc7180-acer-aspire1.dts
>> @@ -209,9 +209,22 @@ alc5682: codec@1a {
>>  		AVDD-supply = <&vreg_l15a_1p8>;
>>  		MICVDD-supply = <&reg_codec_3p3>;
>>  		VBAT-supply = <&reg_codec_3p3>;
>> +		DBVDD-supply = <&vreg_l15a_1p8>;
>> +		LDO1-IN-supply = <&vreg_l15a_1p8>;
>> +
>> +		/*
>> +		 * NOTE: The board has a path from this codec to the
>> +		 * DMIC microphones in the lid, however some of the option
>> +		 * resistors are absent and the microphones are connected
>> +		 * to the SoC instead.
> Would that not also require more DT changes and maybe UCM?

I don't think I had any other descriptions to support the dmic in
the initial set (first audio support for this board is 3/3 here)
and there is no upstream UCM yet - I will probably hold it off until
I get vamacro and dmic on it working.

Nikita

> 
> Konrad
  
Konrad Dybcio Oct. 31, 2023, 10:06 a.m. UTC | #3
On 31.10.2023 08:20, Nikita Travkin wrote:
> Konrad Dybcio писал(а) 31.10.2023 02:48:
>> On 27.10.2023 16:42, Nikita Travkin wrote:
>>> When initially added, a mistake was made in the definition of the codec.
>>>
>>> Despite the fact that the DMIC line is connected on the side of the
>>> codec chip, and relevant passive components, including 0-ohm resistors
>>> connecting the dmics, are present, the dmic line is still cut in
>>> another place on the board, which was overlooked.
>>>
>>> Correct this by replacing the dmic configuration with a comment
>>> describing this hardware detail.
>>>
>>> While at it, also add missing regulators definitions. This is not a
>>> functional change as all the relevant regulators were already added via
>>> the other rail supplies.
>>>
>>> Fixes: 4a9f8f8f2ada ("arm64: dts: qcom: Add Acer Aspire 1")
>>> Signed-off-by: Nikita Travkin <nikita@trvn.ru>
>>> ---
>>>  arch/arm64/boot/dts/qcom/sc7180-acer-aspire1.dts | 17 +++++++++++++++--
>>>  1 file changed, 15 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/arch/arm64/boot/dts/qcom/sc7180-acer-aspire1.dts b/arch/arm64/boot/dts/qcom/sc7180-acer-aspire1.dts
>>> index cfde8cd47107..00b442696618 100644
>>> --- a/arch/arm64/boot/dts/qcom/sc7180-acer-aspire1.dts
>>> +++ b/arch/arm64/boot/dts/qcom/sc7180-acer-aspire1.dts
>>> @@ -209,9 +209,22 @@ alc5682: codec@1a {
>>>  		AVDD-supply = <&vreg_l15a_1p8>;
>>>  		MICVDD-supply = <&reg_codec_3p3>;
>>>  		VBAT-supply = <&reg_codec_3p3>;
>>> +		DBVDD-supply = <&vreg_l15a_1p8>;
>>> +		LDO1-IN-supply = <&vreg_l15a_1p8>;
>>> +
>>> +		/*
>>> +		 * NOTE: The board has a path from this codec to the
>>> +		 * DMIC microphones in the lid, however some of the option
>>> +		 * resistors are absent and the microphones are connected
>>> +		 * to the SoC instead.
>> Would that not also require more DT changes and maybe UCM?
> 
> I don't think I had any other descriptions to support the dmic in
> the initial set (first audio support for this board is 3/3 here)
> and there is no upstream UCM yet - I will probably hold it off until
> I get vamacro and dmic on it working.
I was told that VAMACRO is "the easiest thing possible to get going"
(paraphrasing), did you go through something like this sequence [1]?

https://git.linaro.org/people/srinivas.kandagatla/alsa-ucm-conf.git/tree/ucm2/codecs/qcom-lpass/va-macro/DMIC0EnableSeq.conf?h=x13s&id=244979b03f5b9284e6a68eae6f9995f6ac735be8

Konrad
  
Nikita Travkin Oct. 31, 2023, 10:48 a.m. UTC | #4
Konrad Dybcio писал(а) 31.10.2023 15:06:
> On 31.10.2023 08:20, Nikita Travkin wrote:
>> Konrad Dybcio писал(а) 31.10.2023 02:48:
>>> On 27.10.2023 16:42, Nikita Travkin wrote:
>>>> When initially added, a mistake was made in the definition of the codec.
>>>>
>>>> Despite the fact that the DMIC line is connected on the side of the
>>>> codec chip, and relevant passive components, including 0-ohm resistors
>>>> connecting the dmics, are present, the dmic line is still cut in
>>>> another place on the board, which was overlooked.
>>>>
>>>> Correct this by replacing the dmic configuration with a comment
>>>> describing this hardware detail.
>>>>
>>>> While at it, also add missing regulators definitions. This is not a
>>>> functional change as all the relevant regulators were already added via
>>>> the other rail supplies.
>>>>
>>>> Fixes: 4a9f8f8f2ada ("arm64: dts: qcom: Add Acer Aspire 1")
>>>> Signed-off-by: Nikita Travkin <nikita@trvn.ru>
>>>> ---
>>>>  arch/arm64/boot/dts/qcom/sc7180-acer-aspire1.dts | 17 +++++++++++++++--
>>>>  1 file changed, 15 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/arch/arm64/boot/dts/qcom/sc7180-acer-aspire1.dts b/arch/arm64/boot/dts/qcom/sc7180-acer-aspire1.dts
>>>> index cfde8cd47107..00b442696618 100644
>>>> --- a/arch/arm64/boot/dts/qcom/sc7180-acer-aspire1.dts
>>>> +++ b/arch/arm64/boot/dts/qcom/sc7180-acer-aspire1.dts
>>>> @@ -209,9 +209,22 @@ alc5682: codec@1a {
>>>>  		AVDD-supply = <&vreg_l15a_1p8>;
>>>>  		MICVDD-supply = <&reg_codec_3p3>;
>>>>  		VBAT-supply = <&reg_codec_3p3>;
>>>> +		DBVDD-supply = <&vreg_l15a_1p8>;
>>>> +		LDO1-IN-supply = <&vreg_l15a_1p8>;
>>>> +
>>>> +		/*
>>>> +		 * NOTE: The board has a path from this codec to the
>>>> +		 * DMIC microphones in the lid, however some of the option
>>>> +		 * resistors are absent and the microphones are connected
>>>> +		 * to the SoC instead.
>>> Would that not also require more DT changes and maybe UCM?
>>
>> I don't think I had any other descriptions to support the dmic in
>> the initial set (first audio support for this board is 3/3 here)
>> and there is no upstream UCM yet - I will probably hold it off until
>> I get vamacro and dmic on it working.
> I was told that VAMACRO is "the easiest thing possible to get going"
> (paraphrasing), did you go through something like this sequence [1]?
> 

The problem is that no one introduced it for sc7180 - it's not
in the dtsi. And so isn't the lpass-tlmm I'd need...

So the set of due changes per my understanding is like:

 - Add va-macro to sc7180 (need new compatible/fallback)
 - Add relevant clocks for it (seems to be firmware backed, so easy?)
 - Add lpass-tlmm (it seems like we add a new driver for each soc
   even if they are same? Are they same?)
 - Add va macro dma dais to the asoc boardfile (trivial)
 - Finally, add the dmic to the board dts and enable in the UCM
   (also trivial)

So I decided to follow the "release early, release often" and
only introduce partial sound for now, following it up with
all above later.

> https://git.linaro.org/people/srinivas.kandagatla/alsa-ucm-conf.git/tree/ucm2/codecs/qcom-lpass/va-macro/DMIC0EnableSeq.conf?h=x13s&id=244979b03f5b9284e6a68eae6f9995f6ac735be8

Thanks, this is useful to have, I was indeed looking at
x13s for dmic/vamacro example after I realized my board
tricked me and it's not how trogdor does it...

Nikita
  
Konrad Dybcio Oct. 31, 2023, 10:58 a.m. UTC | #5
On 31.10.2023 11:48, Nikita Travkin wrote:
> Konrad Dybcio писал(а) 31.10.2023 15:06:
>> On 31.10.2023 08:20, Nikita Travkin wrote:
>>> Konrad Dybcio писал(а) 31.10.2023 02:48:
>>>> On 27.10.2023 16:42, Nikita Travkin wrote:
>>>>> When initially added, a mistake was made in the definition of the codec.
>>>>>
>>>>> Despite the fact that the DMIC line is connected on the side of the
>>>>> codec chip, and relevant passive components, including 0-ohm resistors
>>>>> connecting the dmics, are present, the dmic line is still cut in
>>>>> another place on the board, which was overlooked.
>>>>>
>>>>> Correct this by replacing the dmic configuration with a comment
>>>>> describing this hardware detail.
>>>>>
>>>>> While at it, also add missing regulators definitions. This is not a
>>>>> functional change as all the relevant regulators were already added via
>>>>> the other rail supplies.
>>>>>
>>>>> Fixes: 4a9f8f8f2ada ("arm64: dts: qcom: Add Acer Aspire 1")
>>>>> Signed-off-by: Nikita Travkin <nikita@trvn.ru>
>>>>> ---
>>>>>  arch/arm64/boot/dts/qcom/sc7180-acer-aspire1.dts | 17 +++++++++++++++--
>>>>>  1 file changed, 15 insertions(+), 2 deletions(-)
>>>>>
>>>>> diff --git a/arch/arm64/boot/dts/qcom/sc7180-acer-aspire1.dts b/arch/arm64/boot/dts/qcom/sc7180-acer-aspire1.dts
>>>>> index cfde8cd47107..00b442696618 100644
>>>>> --- a/arch/arm64/boot/dts/qcom/sc7180-acer-aspire1.dts
>>>>> +++ b/arch/arm64/boot/dts/qcom/sc7180-acer-aspire1.dts
>>>>> @@ -209,9 +209,22 @@ alc5682: codec@1a {
>>>>>  		AVDD-supply = <&vreg_l15a_1p8>;
>>>>>  		MICVDD-supply = <&reg_codec_3p3>;
>>>>>  		VBAT-supply = <&reg_codec_3p3>;
>>>>> +		DBVDD-supply = <&vreg_l15a_1p8>;
>>>>> +		LDO1-IN-supply = <&vreg_l15a_1p8>;
>>>>> +
>>>>> +		/*
>>>>> +		 * NOTE: The board has a path from this codec to the
>>>>> +		 * DMIC microphones in the lid, however some of the option
>>>>> +		 * resistors are absent and the microphones are connected
>>>>> +		 * to the SoC instead.
>>>> Would that not also require more DT changes and maybe UCM?
>>>
>>> I don't think I had any other descriptions to support the dmic in
>>> the initial set (first audio support for this board is 3/3 here)
>>> and there is no upstream UCM yet - I will probably hold it off until
>>> I get vamacro and dmic on it working.
>> I was told that VAMACRO is "the easiest thing possible to get going"
>> (paraphrasing), did you go through something like this sequence [1]?
>>
> 
> The problem is that no one introduced it for sc7180 - it's not
> in the dtsi. And so isn't the lpass-tlmm I'd need...
> 
> So the set of due changes per my understanding is like:
> 
>  - Add va-macro to sc7180 (need new compatible/fallback)
>  - Add relevant clocks for it (seems to be firmware backed, so easy?)
yes

>  - Add lpass-tlmm (it seems like we add a new driver for each soc
>    even if they are same? Are they same?)
there are rare cases when it's identical

>  - Add va macro dma dais to the asoc boardfile (trivial)
y

>  - Finally, add the dmic to the board dts and enable in the UCM
>    (also trivial)
y

> So I decided to follow the "release early, release often" and
> only introduce partial sound for now, following it up with
> all above later.
Sure that makes sense, just wanted to make sure you know about this

Konrad

> 
>> https://git.linaro.org/people/srinivas.kandagatla/alsa-ucm-conf.git/tree/ucm2/codecs/qcom-lpass/va-macro/DMIC0EnableSeq.conf?h=x13s&id=244979b03f5b9284e6a68eae6f9995f6ac735be8
> 
> Thanks, this is useful to have, I was indeed looking at
> x13s for dmic/vamacro example after I realized my board
> tricked me and it's not how trogdor does it...
> 
> Nikita
  

Patch

diff --git a/arch/arm64/boot/dts/qcom/sc7180-acer-aspire1.dts b/arch/arm64/boot/dts/qcom/sc7180-acer-aspire1.dts
index cfde8cd47107..00b442696618 100644
--- a/arch/arm64/boot/dts/qcom/sc7180-acer-aspire1.dts
+++ b/arch/arm64/boot/dts/qcom/sc7180-acer-aspire1.dts
@@ -209,9 +209,22 @@  alc5682: codec@1a {
 		AVDD-supply = <&vreg_l15a_1p8>;
 		MICVDD-supply = <&reg_codec_3p3>;
 		VBAT-supply = <&reg_codec_3p3>;
+		DBVDD-supply = <&vreg_l15a_1p8>;
+		LDO1-IN-supply = <&vreg_l15a_1p8>;
+
+		/*
+		 * NOTE: The board has a path from this codec to the
+		 * DMIC microphones in the lid, however some of the option
+		 * resistors are absent and the microphones are connected
+		 * to the SoC instead.
+		 *
+		 * If the resistors were to be changed by the user to
+		 * connect the codec, the following could be used:
+		 *
+		 * realtek,dmic1-data-pin = <1>;
+		 * realtek,dmic1-clk-pin = <1>;
+		 */
 
-		realtek,dmic1-data-pin = <1>;
-		realtek,dmic1-clk-pin = <1>;
 		realtek,jd-src = <1>;
 	};
 };