Re: [PATCH] imx{5,6}: reset otg port after usb-serial boot

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <m.grzeschik@xxxxxxxxxxxxxx>
> ---
> 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
barebox@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/barebox



[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux