diff mbox

arm: dts: Fix audio card detection on peach boards

Message ID 1444631169-19468-1-git-send-email-alim.akhtar@samsung.com (mailing list archive)
State New, archived
Headers show

Commit Message

Alim Akhtar Oct. 12, 2015, 6:26 a.m. UTC
Since the merge of 2fad972 ("ARM: dts: Add mclk entry for Peach boards"),
sound card detection is broken on peach boards and gives below errors:

[    3.630457] max98090 7-0010: MAX98091 REVID=0x51
[    3.634233] max98090 7-0010: use default 2.8v micbias
[    3.640985] snow-audio sound: HiFi <-> 3830000.i2s mapping ok
[    3.645307] max98090 7-0010: Invalid master clock frequency
[    3.650824] snow-audio sound: ASoC: Peach-Pi-I2S-MAX98091 late_probe() failed: -22
[    3.658914] snow-audio sound: snd_soc_register_card failed (-22)
[    3.664366] snow-audio: probe of sound failed with error -22

This patch adds missing assigned-clocks and assigned-clock-parents for
pmu_system_controller node which is used as "mclk" for audio codec.

Signed-off-by: Alim Akhtar <alim.akhtar@samsung.com>
Fixes: 2fad972 ("ARM: dts: Add mclk entry for Peach boards")
Cc: <stable@vger.kernel.org>
---
 arch/arm/boot/dts/exynos5420-peach-pit.dts |    5 +++++
 arch/arm/boot/dts/exynos5800-peach-pi.dts  |    5 +++++
 2 files changed, 10 insertions(+)

Comments

Krzysztof Kozlowski Oct. 12, 2015, 6:47 a.m. UTC | #1
On 12.10.2015 15:26, Alim Akhtar wrote:
> Since the merge of 2fad972 ("ARM: dts: Add mclk entry for Peach boards"),

Please switch to longer SHA abbreviation:
$ git config core.abbrev 12

> sound card detection is broken on peach boards and gives below errors:
> 
> [    3.630457] max98090 7-0010: MAX98091 REVID=0x51
> [    3.634233] max98090 7-0010: use default 2.8v micbias
> [    3.640985] snow-audio sound: HiFi <-> 3830000.i2s mapping ok
> [    3.645307] max98090 7-0010: Invalid master clock frequency
> [    3.650824] snow-audio sound: ASoC: Peach-Pi-I2S-MAX98091 late_probe() failed: -22
> [    3.658914] snow-audio sound: snd_soc_register_card failed (-22)
> [    3.664366] snow-audio: probe of sound failed with error -22
> 
> This patch adds missing assigned-clocks and assigned-clock-parents for
> pmu_system_controller node which is used as "mclk" for audio codec.
> 
> Signed-off-by: Alim Akhtar <alim.akhtar@samsung.com>
> Fixes: 2fad972 ("ARM: dts: Add mclk entry for Peach boards")
> Cc: <stable@vger.kernel.org>
> ---
>  arch/arm/boot/dts/exynos5420-peach-pit.dts |    5 +++++
>  arch/arm/boot/dts/exynos5800-peach-pi.dts  |    5 +++++
>  2 files changed, 10 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/exynos5420-peach-pit.dts b/arch/arm/boot/dts/exynos5420-peach-pit.dts
> index 8f4d76c..525a93a 100644
> --- a/arch/arm/boot/dts/exynos5420-peach-pit.dts
> +++ b/arch/arm/boot/dts/exynos5420-peach-pit.dts
> @@ -1056,5 +1056,10 @@
>  	timeout-sec = <32>;
>  };
>  
> +&pmu_system_controller {

Please put the node in alphabetical order.

> +	assigned-clocks = <&pmu_system_controller 0>;
> +	assigned-clock-parents =  <&clock CLK_FIN_PLL>;

I might be missing something here but isn't the first clock of
pmu_system_controller already a CLK_FIN_PLL? So you are reparenting the
FIN_PLL to FIN_PLL?

In the same time there is doubled space character after '='.

> +};
> +
>  #include "cros-ec-keyboard.dtsi"
>  #include "cros-adc-thermistors.dtsi"
> diff --git a/arch/arm/boot/dts/exynos5800-peach-pi.dts b/arch/arm/boot/dts/exynos5800-peach-pi.dts
> index 7d5b386..411de8f 100644
> --- a/arch/arm/boot/dts/exynos5800-peach-pi.dts
> +++ b/arch/arm/boot/dts/exynos5800-peach-pi.dts
> @@ -1019,5 +1019,10 @@
>  	timeout-sec = <32>;
>  };
>  
> +&pmu_system_controller {
> +	assigned-clocks = <&pmu_system_controller 0>;
> +	assigned-clock-parents =  <&clock CLK_FIN_PLL>;

Ditto.

Best regards,
Krzysztof


> +};
> +
>  #include "cros-ec-keyboard.dtsi"
>  #include "cros-adc-thermistors.dtsi"
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
On 12/10/15 08:47, Krzysztof Kozlowski wrote:
>> diff --git a/arch/arm/boot/dts/exynos5420-peach-pit.dts b/arch/arm/boot/dts/exynos5420-peach-pit.dts
>> > index 8f4d76c..525a93a 100644
>> > --- a/arch/arm/boot/dts/exynos5420-peach-pit.dts
>> > +++ b/arch/arm/boot/dts/exynos5420-peach-pit.dts
>> > @@ -1056,5 +1056,10 @@
>> >  	timeout-sec = <32>;
>> >  };
>> >  
>> > +&pmu_system_controller {
>
> Please put the node in alphabetical order.
> 
>> > +	assigned-clocks = <&pmu_system_controller 0>;
>> > +	assigned-clock-parents =  <&clock CLK_FIN_PLL>;
>
> I might be missing something here but isn't the first clock of
> pmu_system_controller already a CLK_FIN_PLL? So you are reparenting the
> FIN_PLL to FIN_PLL?

No, it's not, the first PMU consumer clock is indeed CLK_FIN_PLL,
but pmu_system_controller is also a clock provider.  The first output
clock of pmu_system_controller is CLKOUT, it's a composite mux and
gate clock (registered in drivers/clk/samsung /clk-exynos-clkout.c).
So  the above dts change is selecting an external oscillator input of
the CLKOUT mux, i.e. it will route 24 MHz clock signal from the external
oscillator to the CLKOUT output pin, to which audio CODEC is connected
on peach-pit AFAICS.
Alim Akhtar Oct. 12, 2015, 12:14 p.m. UTC | #3
Hi Sylwester,

On 10/12/2015 02:48 PM, Sylwester Nawrocki wrote:
> On 12/10/15 08:47, Krzysztof Kozlowski wrote:
>>> diff --git a/arch/arm/boot/dts/exynos5420-peach-pit.dts b/arch/arm/boot/dts/exynos5420-peach-pit.dts
>>>> index 8f4d76c..525a93a 100644
>>>> --- a/arch/arm/boot/dts/exynos5420-peach-pit.dts
>>>> +++ b/arch/arm/boot/dts/exynos5420-peach-pit.dts
>>>> @@ -1056,5 +1056,10 @@
>>>>   	timeout-sec = <32>;
>>>>   };
>>>>
>>>> +&pmu_system_controller {
>>
>> Please put the node in alphabetical order.
>>
>>>> +	assigned-clocks = <&pmu_system_controller 0>;
>>>> +	assigned-clock-parents =  <&clock CLK_FIN_PLL>;
>>
>> I might be missing something here but isn't the first clock of
>> pmu_system_controller already a CLK_FIN_PLL? So you are reparenting the
>> FIN_PLL to FIN_PLL?
>
> No, it's not, the first PMU consumer clock is indeed CLK_FIN_PLL,
> but pmu_system_controller is also a clock provider.  The first output
> clock of pmu_system_controller is CLKOUT, it's a composite mux and
> gate clock (registered in drivers/clk/samsung /clk-exynos-clkout.c).
> So  the above dts change is selecting an external oscillator input of
> the CLKOUT mux, i.e. it will route 24 MHz clock signal from the external
> oscillator to the CLKOUT output pin, to which audio CODEC is connected
> on peach-pit AFAICS.
>
Thanks for your explanation, indeed master clock of codec is
connected to XCLKOUT on peach boards.
Will send v2 addressing Kezysztof's other comments.

Regards,
Alim
--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Alim Akhtar Oct. 12, 2015, 12:18 p.m. UTC | #4
Hello Kezysztof
Thanks for your review.

On 10/12/2015 12:17 PM, Krzysztof Kozlowski wrote:
> On 12.10.2015 15:26, Alim Akhtar wrote:
>> Since the merge of 2fad972 ("ARM: dts: Add mclk entry for Peach boards"),
>
> Please switch to longer SHA abbreviation:
> $ git config core.abbrev 12
>
ok, will do thanks
>> sound card detection is broken on peach boards and gives below errors:
>>
>> [    3.630457] max98090 7-0010: MAX98091 REVID=0x51
>> [    3.634233] max98090 7-0010: use default 2.8v micbias
>> [    3.640985] snow-audio sound: HiFi <-> 3830000.i2s mapping ok
>> [    3.645307] max98090 7-0010: Invalid master clock frequency
>> [    3.650824] snow-audio sound: ASoC: Peach-Pi-I2S-MAX98091 late_probe() failed: -22
>> [    3.658914] snow-audio sound: snd_soc_register_card failed (-22)
>> [    3.664366] snow-audio: probe of sound failed with error -22
>>
>> This patch adds missing assigned-clocks and assigned-clock-parents for
>> pmu_system_controller node which is used as "mclk" for audio codec.
>>
>> Signed-off-by: Alim Akhtar <alim.akhtar@samsung.com>
>> Fixes: 2fad972 ("ARM: dts: Add mclk entry for Peach boards")
>> Cc: <stable@vger.kernel.org>
>> ---
>>   arch/arm/boot/dts/exynos5420-peach-pit.dts |    5 +++++
>>   arch/arm/boot/dts/exynos5800-peach-pi.dts  |    5 +++++
>>   2 files changed, 10 insertions(+)
>>
>> diff --git a/arch/arm/boot/dts/exynos5420-peach-pit.dts b/arch/arm/boot/dts/exynos5420-peach-pit.dts
>> index 8f4d76c..525a93a 100644
>> --- a/arch/arm/boot/dts/exynos5420-peach-pit.dts
>> +++ b/arch/arm/boot/dts/exynos5420-peach-pit.dts
>> @@ -1056,5 +1056,10 @@
>>   	timeout-sec = <32>;
>>   };
>>
>> +&pmu_system_controller {
>
> Please put the node in alphabetical order.
>
ok
>> +	assigned-clocks = <&pmu_system_controller 0>;
>> +	assigned-clock-parents =  <&clock CLK_FIN_PLL>;
>
> I might be missing something here but isn't the first clock of
> pmu_system_controller already a CLK_FIN_PLL? So you are reparenting the
> FIN_PLL to FIN_PLL?
>
> In the same time there is doubled space character after '='.
>
will remove

>> +};
>> +
>>   #include "cros-ec-keyboard.dtsi"
>>   #include "cros-adc-thermistors.dtsi"
>> diff --git a/arch/arm/boot/dts/exynos5800-peach-pi.dts b/arch/arm/boot/dts/exynos5800-peach-pi.dts
>> index 7d5b386..411de8f 100644
>> --- a/arch/arm/boot/dts/exynos5800-peach-pi.dts
>> +++ b/arch/arm/boot/dts/exynos5800-peach-pi.dts
>> @@ -1019,5 +1019,10 @@
>>   	timeout-sec = <32>;
>>   };
>>
>> +&pmu_system_controller {
>> +	assigned-clocks = <&pmu_system_controller 0>;
>> +	assigned-clock-parents =  <&clock CLK_FIN_PLL>;
>
> Ditto.
>
> Best regards,
> Krzysztof
>
>
>> +};
>> +
>>   #include "cros-ec-keyboard.dtsi"
>>   #include "cros-adc-thermistors.dtsi"
>>
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Krzysztof Kozlowski Oct. 12, 2015, 12:56 p.m. UTC | #5
W dniu 12.10.2015 o 18:18, Sylwester Nawrocki pisze:
> On 12/10/15 08:47, Krzysztof Kozlowski wrote:
>>> diff --git a/arch/arm/boot/dts/exynos5420-peach-pit.dts b/arch/arm/boot/dts/exynos5420-peach-pit.dts
>>>> index 8f4d76c..525a93a 100644
>>>> --- a/arch/arm/boot/dts/exynos5420-peach-pit.dts
>>>> +++ b/arch/arm/boot/dts/exynos5420-peach-pit.dts
>>>> @@ -1056,5 +1056,10 @@
>>>>  	timeout-sec = <32>;
>>>>  };
>>>>  
>>>> +&pmu_system_controller {
>>
>> Please put the node in alphabetical order.
>>
>>>> +	assigned-clocks = <&pmu_system_controller 0>;
>>>> +	assigned-clock-parents =  <&clock CLK_FIN_PLL>;
>>
>> I might be missing something here but isn't the first clock of
>> pmu_system_controller already a CLK_FIN_PLL? So you are reparenting the
>> FIN_PLL to FIN_PLL?
> 
> No, it's not, the first PMU consumer clock is indeed CLK_FIN_PLL,
> but pmu_system_controller is also a clock provider. 

Oh yes, indeed it is. Thanks for pointing me in right direction.

Best regards,
Krzysztof

> The first output
> clock of pmu_system_controller is CLKOUT, it's a composite mux and
> gate clock (registered in drivers/clk/samsung /clk-exynos-clkout.c).
> So  the above dts change is selecting an external oscillator input of
> the CLKOUT mux, i.e. it will route 24 MHz clock signal from the external
> oscillator to the CLKOUT output pin, to which audio CODEC is connected
> on peach-pit AFAICS.


--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/arm/boot/dts/exynos5420-peach-pit.dts b/arch/arm/boot/dts/exynos5420-peach-pit.dts
index 8f4d76c..525a93a 100644
--- a/arch/arm/boot/dts/exynos5420-peach-pit.dts
+++ b/arch/arm/boot/dts/exynos5420-peach-pit.dts
@@ -1056,5 +1056,10 @@ 
 	timeout-sec = <32>;
 };
 
+&pmu_system_controller {
+	assigned-clocks = <&pmu_system_controller 0>;
+	assigned-clock-parents =  <&clock CLK_FIN_PLL>;
+};
+
 #include "cros-ec-keyboard.dtsi"
 #include "cros-adc-thermistors.dtsi"
diff --git a/arch/arm/boot/dts/exynos5800-peach-pi.dts b/arch/arm/boot/dts/exynos5800-peach-pi.dts
index 7d5b386..411de8f 100644
--- a/arch/arm/boot/dts/exynos5800-peach-pi.dts
+++ b/arch/arm/boot/dts/exynos5800-peach-pi.dts
@@ -1019,5 +1019,10 @@ 
 	timeout-sec = <32>;
 };
 
+&pmu_system_controller {
+	assigned-clocks = <&pmu_system_controller 0>;
+	assigned-clock-parents =  <&clock CLK_FIN_PLL>;
+};
+
 #include "cros-ec-keyboard.dtsi"
 #include "cros-adc-thermistors.dtsi"