Re: [PATCH] imx: imx8mq: handle ESDHC in mxc_get_clock

2020-01-08 Thread Stefano Babic
On 08/01/20 12:56, Baruch Siach wrote:
> Hi Stefano, Peng,
> 
> On Wed, Dec 11 2019, Baruch Siach wrote:
>> On Wed, Dec 11 2019, Peng Fan wrote:
>>> fsl_esdhc_imx driver will call "mxc_get_clock(MXC_ESDHC_CLK +
>>> dev->seq)", however mxc_get_clock wrongly handle MXC_ESDHC_CLK
>>> as root clk and cause sd card could not be detected in U-Boot proper,
>>> as below:
>>> "Loading Environment from MMC... unable to select a mode"
>>>
>>> Handle MXC_ESDHC_CLK in mxc_get_clock to fix the issue.
>>>
>>> Signed-off-by: Peng Fan 
>>
>> This fixes SD card and eMMC access on i.MX8MQ based SolidRun
>> Hummingboard Pulse.
>>
>> Tested-by: Baruch Siach 
> 
> This patch missed v2020.01 unfortunately. I see it marked as "Awaiting
> Upstream" in patchwork (patch 1207464), but I could not find it queued
> anywhere. Am I missing anything?

I cannot see it, too. I can just pick it up and push it to -master.

Stefano

> 
> baruch
> 
>>> ---
>>>  arch/arm/mach-imx/imx8m/clock_imx8mq.c | 14 +-
>>>  1 file changed, 9 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/arch/arm/mach-imx/imx8m/clock_imx8mq.c 
>>> b/arch/arm/mach-imx/imx8m/clock_imx8mq.c
>>> index 2db5bde211..878f2be166 100644
>>> --- a/arch/arm/mach-imx/imx8m/clock_imx8mq.c
>>> +++ b/arch/arm/mach-imx/imx8m/clock_imx8mq.c
>>> @@ -326,16 +326,20 @@ unsigned int mxc_get_clock(enum mxc_clock clk)
>>>  {
>>> u32 val;
>>>
>>> -   if (clk == MXC_ARM_CLK)
>>> +   switch(clk) {
>>> +   case MXC_ARM_CLK:
>>> return get_root_clk(ARM_A53_CLK_ROOT);
>>> -
>>> -   if (clk == MXC_IPG_CLK) {
>>> +   case MXC_IPG_CLK:
>>> clock_get_target_val(IPG_CLK_ROOT, &val);
>>> val = val & 0x3;
>>> return get_root_clk(AHB_CLK_ROOT) / (val + 1);
>>> +   case MXC_ESDHC_CLK:
>>> +   return get_root_clk(USDHC1_CLK_ROOT);
>>> +   case MXC_ESDHC2_CLK:
>>> +   return get_root_clk(USDHC2_CLK_ROOT);
>>> +   default:
>>> +   return get_root_clk(clk);
>>> }
>>> -
>>> -   return get_root_clk(clk);
>>>  }
>>>
>>>  u32 imx_get_uartclk(void)
> 
> 
> --
>  http://baruch.siach.name/blog/  ~. .~   Tk Open Systems
> =}ooO--U--Ooo{=
>- bar...@tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -
> 


-- 
=
DENX Software Engineering GmbH,  Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sba...@denx.de
=


Re: [PATCH] imx: imx8mq: handle ESDHC in mxc_get_clock

2020-01-08 Thread Baruch Siach
Hi Stefano, Peng,

On Wed, Dec 11 2019, Baruch Siach wrote:
> On Wed, Dec 11 2019, Peng Fan wrote:
>> fsl_esdhc_imx driver will call "mxc_get_clock(MXC_ESDHC_CLK +
>> dev->seq)", however mxc_get_clock wrongly handle MXC_ESDHC_CLK
>> as root clk and cause sd card could not be detected in U-Boot proper,
>> as below:
>> "Loading Environment from MMC... unable to select a mode"
>>
>> Handle MXC_ESDHC_CLK in mxc_get_clock to fix the issue.
>>
>> Signed-off-by: Peng Fan 
>
> This fixes SD card and eMMC access on i.MX8MQ based SolidRun
> Hummingboard Pulse.
>
> Tested-by: Baruch Siach 

This patch missed v2020.01 unfortunately. I see it marked as "Awaiting
Upstream" in patchwork (patch 1207464), but I could not find it queued
anywhere. Am I missing anything?

baruch

>> ---
>>  arch/arm/mach-imx/imx8m/clock_imx8mq.c | 14 +-
>>  1 file changed, 9 insertions(+), 5 deletions(-)
>>
>> diff --git a/arch/arm/mach-imx/imx8m/clock_imx8mq.c 
>> b/arch/arm/mach-imx/imx8m/clock_imx8mq.c
>> index 2db5bde211..878f2be166 100644
>> --- a/arch/arm/mach-imx/imx8m/clock_imx8mq.c
>> +++ b/arch/arm/mach-imx/imx8m/clock_imx8mq.c
>> @@ -326,16 +326,20 @@ unsigned int mxc_get_clock(enum mxc_clock clk)
>>  {
>>  u32 val;
>>
>> -if (clk == MXC_ARM_CLK)
>> +switch(clk) {
>> +case MXC_ARM_CLK:
>>  return get_root_clk(ARM_A53_CLK_ROOT);
>> -
>> -if (clk == MXC_IPG_CLK) {
>> +case MXC_IPG_CLK:
>>  clock_get_target_val(IPG_CLK_ROOT, &val);
>>  val = val & 0x3;
>>  return get_root_clk(AHB_CLK_ROOT) / (val + 1);
>> +case MXC_ESDHC_CLK:
>> +return get_root_clk(USDHC1_CLK_ROOT);
>> +case MXC_ESDHC2_CLK:
>> +return get_root_clk(USDHC2_CLK_ROOT);
>> +default:
>> +return get_root_clk(clk);
>>  }
>> -
>> -return get_root_clk(clk);
>>  }
>>
>>  u32 imx_get_uartclk(void)


--
 http://baruch.siach.name/blog/  ~. .~   Tk Open Systems
=}ooO--U--Ooo{=
   - bar...@tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -


[PATCH] imx: imx8mq: handle ESDHC in mxc_get_clock

2019-12-28 Thread sbabic
> fsl_esdhc_imx driver will call "mxc_get_clock(MXC_ESDHC_CLK +
> dev->seq)", however mxc_get_clock wrongly handle MXC_ESDHC_CLK
> as root clk and cause sd card could not be detected in U-Boot proper,
> as below:
> "Loading Environment from MMC... unable to select a mode"
> Handle MXC_ESDHC_CLK in mxc_get_clock to fix the issue.
> Signed-off-by: Peng Fan 
> Tested-by: Baruch Siach 
> Tested-by: Fabio Estevam 
Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=
DENX Software Engineering GmbH,  Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sba...@denx.de
=


Re: [PATCH] imx: imx8mq: handle ESDHC in mxc_get_clock

2019-12-11 Thread Fabio Estevam
Hi Peng,

On Wed, Dec 11, 2019 at 3:17 AM Peng Fan  wrote:
>
> fsl_esdhc_imx driver will call "mxc_get_clock(MXC_ESDHC_CLK +
> dev->seq)", however mxc_get_clock wrongly handle MXC_ESDHC_CLK
> as root clk and cause sd card could not be detected in U-Boot proper,
> as below:
> "Loading Environment from MMC... unable to select a mode"
>
> Handle MXC_ESDHC_CLK in mxc_get_clock to fix the issue.
>
> Signed-off-by: Peng Fan 

Thanks for the fix:

Tested-by: Fabio Estevam 

Stefano,

This one is a bug fix for 2020.01

Thanks


Re: [PATCH] imx: imx8mq: handle ESDHC in mxc_get_clock

2019-12-11 Thread Baruch Siach
Hi Peng,

On Wed, Dec 11 2019, Peng Fan wrote:
> fsl_esdhc_imx driver will call "mxc_get_clock(MXC_ESDHC_CLK +
> dev->seq)", however mxc_get_clock wrongly handle MXC_ESDHC_CLK
> as root clk and cause sd card could not be detected in U-Boot proper,
> as below:
> "Loading Environment from MMC... unable to select a mode"
>
> Handle MXC_ESDHC_CLK in mxc_get_clock to fix the issue.
>
> Signed-off-by: Peng Fan 

This fixes SD card and eMMC access on i.MX8MQ based SolidRun
Hummingboard Pulse.

Tested-by: Baruch Siach 

Thanks,
baruch

> ---
>  arch/arm/mach-imx/imx8m/clock_imx8mq.c | 14 +-
>  1 file changed, 9 insertions(+), 5 deletions(-)
>
> diff --git a/arch/arm/mach-imx/imx8m/clock_imx8mq.c 
> b/arch/arm/mach-imx/imx8m/clock_imx8mq.c
> index 2db5bde211..878f2be166 100644
> --- a/arch/arm/mach-imx/imx8m/clock_imx8mq.c
> +++ b/arch/arm/mach-imx/imx8m/clock_imx8mq.c
> @@ -326,16 +326,20 @@ unsigned int mxc_get_clock(enum mxc_clock clk)
>  {
>   u32 val;
>
> - if (clk == MXC_ARM_CLK)
> + switch(clk) {
> + case MXC_ARM_CLK:
>   return get_root_clk(ARM_A53_CLK_ROOT);
> -
> - if (clk == MXC_IPG_CLK) {
> + case MXC_IPG_CLK:
>   clock_get_target_val(IPG_CLK_ROOT, &val);
>   val = val & 0x3;
>   return get_root_clk(AHB_CLK_ROOT) / (val + 1);
> + case MXC_ESDHC_CLK:
> + return get_root_clk(USDHC1_CLK_ROOT);
> + case MXC_ESDHC2_CLK:
> + return get_root_clk(USDHC2_CLK_ROOT);
> + default:
> + return get_root_clk(clk);
>   }
> -
> - return get_root_clk(clk);
>  }
>
>  u32 imx_get_uartclk(void)

--
 http://baruch.siach.name/blog/  ~. .~   Tk Open Systems
=}ooO--U--Ooo{=
   - bar...@tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -


[PATCH] imx: imx8mq: handle ESDHC in mxc_get_clock

2019-12-10 Thread Peng Fan
fsl_esdhc_imx driver will call "mxc_get_clock(MXC_ESDHC_CLK +
dev->seq)", however mxc_get_clock wrongly handle MXC_ESDHC_CLK
as root clk and cause sd card could not be detected in U-Boot proper,
as below:
"Loading Environment from MMC... unable to select a mode"

Handle MXC_ESDHC_CLK in mxc_get_clock to fix the issue.

Signed-off-by: Peng Fan 
---
 arch/arm/mach-imx/imx8m/clock_imx8mq.c | 14 +-
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/arch/arm/mach-imx/imx8m/clock_imx8mq.c 
b/arch/arm/mach-imx/imx8m/clock_imx8mq.c
index 2db5bde211..878f2be166 100644
--- a/arch/arm/mach-imx/imx8m/clock_imx8mq.c
+++ b/arch/arm/mach-imx/imx8m/clock_imx8mq.c
@@ -326,16 +326,20 @@ unsigned int mxc_get_clock(enum mxc_clock clk)
 {
u32 val;
 
-   if (clk == MXC_ARM_CLK)
+   switch(clk) {
+   case MXC_ARM_CLK:
return get_root_clk(ARM_A53_CLK_ROOT);
-
-   if (clk == MXC_IPG_CLK) {
+   case MXC_IPG_CLK:
clock_get_target_val(IPG_CLK_ROOT, &val);
val = val & 0x3;
return get_root_clk(AHB_CLK_ROOT) / (val + 1);
+   case MXC_ESDHC_CLK:
+   return get_root_clk(USDHC1_CLK_ROOT);
+   case MXC_ESDHC2_CLK:
+   return get_root_clk(USDHC2_CLK_ROOT);
+   default:
+   return get_root_clk(clk);
}
-
-   return get_root_clk(clk);
 }
 
 u32 imx_get_uartclk(void)
-- 
2.16.4