Hi Michael.

On Fri, Aug 24, 2018 at 05:17:39PM +0200, Michael Grzeschik wrote:
> The ROM loader leaves the otg port in peripheral mode which confuses the
> host controller. After the handover to barebox we ensure to bring in the
> port into the otg state by resetting it.
> 
> Signed-off-by: Michael Grzeschik <[email protected]>
> ---
> This was tested with mx53 and mx6 for now. I suppose we should
> adopt this to the mx2 and mx3 models.
> 
>  arch/arm/mach-imx/imx50.c | 3 +++
>  arch/arm/mach-imx/imx51.c | 3 +++
>  arch/arm/mach-imx/imx53.c | 3 +++
>  arch/arm/mach-imx/imx6.c  | 3 +++
>  4 files changed, 12 insertions(+)
> 
> diff --git a/arch/arm/mach-imx/imx50.c b/arch/arm/mach-imx/imx50.c
> index f7cbc9d4ba..ac326cf3c0 100644
> --- a/arch/arm/mach-imx/imx50.c
> +++ b/arch/arm/mach-imx/imx50.c
> @@ -92,6 +92,9 @@ void imx50_init_lowlevel_early(unsigned int cpufreq_mhz)
>  
>       imx5_init_lowlevel();
>  
> +     /* reset otg: in case we started via usb-serial */
> +     writel((readl(0x53F80140) | 2), 0x53F80140);
> +

This looks like constants you just pulled out of the air.
Can you hide it behind a descriptive name?


>       /*
>        * AIPS setup - Only setup MPROTx registers.
>        * The PACR default values are good.
> diff --git a/arch/arm/mach-imx/imx51.c b/arch/arm/mach-imx/imx51.c
> index ec8cdd868b..91f6df1cfa 100644
> --- a/arch/arm/mach-imx/imx51.c
> +++ b/arch/arm/mach-imx/imx51.c
> @@ -142,6 +142,9 @@ void imx51_init_lowlevel(unsigned int cpufreq_mhz)
>  
>       imx5_init_lowlevel();
>  
> +     /* reset otg: in case we started via usb-serial */
> +     writel((readl(0x73F80140) | 2), 0x73F80140);
Likewise.

> +
>       /* disable write combine for TO 2 and lower revs */
>       if (rev < IMX_CHIP_REV_3_0) {
>               __asm__ __volatile__("mrc 15, 1, %0, c9, c0, 1":"=r"(r));
> diff --git a/arch/arm/mach-imx/imx53.c b/arch/arm/mach-imx/imx53.c
> index b22929f749..99e942ed52 100644
> --- a/arch/arm/mach-imx/imx53.c
> +++ b/arch/arm/mach-imx/imx53.c
> @@ -90,6 +90,9 @@ void imx53_init_lowlevel_early(unsigned int cpufreq_mhz)
>  
>       imx5_init_lowlevel();
>  
> +     /* reset otg: in case we started via usb-serial */
> +     writel((readl(0x53F80140) | 2), 0x53F80140);
And then you did not have to hardcode the same value here again.

> +
>       /*
>        * AIPS setup - Only setup MPROTx registers.
>        * The PACR default values are good.
> diff --git a/arch/arm/mach-imx/imx6.c b/arch/arm/mach-imx/imx6.c
> index 3d95c9e374..8af051c34a 100644
> --- a/arch/arm/mach-imx/imx6.c
> +++ b/arch/arm/mach-imx/imx6.c
> @@ -193,6 +193,9 @@ int imx6_init(void)
>  
>       imx6_init_lowlevel();
>  
> +     /* reset otg: in case we started via usb-serial */
> +     writel((readl(0x21840140) | 2), 0x21840140);
Likewise.

        Sam

_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to