On Wed,  7 Jun 2023 17:16:43 -0600
Sam Edwards <[email protected]> wrote:

> Only the older (ca. A10, A20) sunxis need this poke for the MUSB to
> function. Mimic the Linux kernel and add a `has_sram` flag to the config
> structure that is only set for the specific compatibles that require
> this initialization.

The patch looks alright in general, thanks for sending this! I will try to
test it on an older SoC in the next days. As an added bonus, that should
actually help the F1C100s USB(-OTG) support.

Cheers,
Andre

> Signed-off-by: Sam Edwards <[email protected]>
> ---
>  drivers/usb/musb-new/sunxi.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/usb/musb-new/sunxi.c b/drivers/usb/musb-new/sunxi.c
> index ab55d68620..c05c0d5561 100644
> --- a/drivers/usb/musb-new/sunxi.c
> +++ b/drivers/usb/musb-new/sunxi.c
> @@ -85,6 +85,7 @@
>  
>  struct sunxi_musb_config {
>       struct musb_hdrc_config *config;
> +     bool has_sram;
>  };
>  
>  struct sunxi_glue {
> @@ -313,7 +314,10 @@ static int sunxi_musb_init(struct musb *musb)
>  
>       musb->isr = sunxi_musb_interrupt;
>  
> -     USBC_ConfigFIFO_Base();
> +     if (glue->cfg->has_sram) {
> +             USBC_ConfigFIFO_Base();
> +     }
> +
>       USBC_EnableDpDmPullUp(musb->mregs);
>       USBC_EnableIdPullUp(musb->mregs);
>  
> @@ -525,6 +529,7 @@ static int musb_usb_remove(struct udevice *dev)
>  
>  static const struct sunxi_musb_config sun4i_a10_cfg = {
>       .config = &musb_config,
> +     .has_sram = true,
>  };
>  
>  static const struct sunxi_musb_config sun6i_a31_cfg = {

Reply via email to