[U-Boot] [PATCH] usb: sunxi: don't touch reset bits in ccm if CONFIG_SUNXI_GEN_SUN6I is not defined

Chen-Yu Tsai wens at csie.org
Thu Jun 14 03:23:19 UTC 2018


On Thu, Jun 14, 2018 at 11:04 AM, Vasily Khoruzhick <anarsoul at gmail.com> wrote:
> CCM in sun4i and sun5i doesn't have reset.
>
> Fixes commit 1ed9c1118 ("usb: sunxi: ehci: get rid of ifdefs")
> and commit 56830cee3 ("usb: sunxi: ohci: get rid of ifdefs")
>
> Signed-off-by: Vasily Khoruzhick <anarsoul at gmail.com>
> ---
>  drivers/usb/host/ehci-sunxi.c | 10 ++++++++--
>  drivers/usb/host/ohci-sunxi.c | 10 ++++++++--
>  2 files changed, 16 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/usb/host/ehci-sunxi.c b/drivers/usb/host/ehci-sunxi.c
> index 35fbe03331..f5b661ef12 100644
> --- a/drivers/usb/host/ehci-sunxi.c
> +++ b/drivers/usb/host/ehci-sunxi.c
> @@ -85,9 +85,12 @@ no_phy:
>
>         setbits_le32(&priv->ccm->ahb_gate0,
>                      priv->ahb_gate_mask | extra_ahb_gate_mask);
> -       if (priv->cfg->has_reset)
> +       if (priv->cfg->has_reset) {
> +#ifdef CONFIG_SUNXI_GEN_SUN6I

The "has_reset" field is supposed to deal with this. Is it not working?

ChenYu

>                 setbits_le32(&priv->ccm->ahb_reset0_cfg,
>                              priv->ahb_gate_mask | extra_ahb_gate_mask);
> +#endif
> +       }
>
>         hcor = (struct ehci_hcor *)((uintptr_t)hccr +
>                                     HC_LENGTH(ehci_readl(&hccr->cr_capbase)));
> @@ -112,8 +115,11 @@ static int ehci_usb_remove(struct udevice *dev)
>         if (ret)
>                 return ret;
>
> -       if (priv->cfg->has_reset)
> +       if (priv->cfg->has_reset) {
> +#ifdef CONFIG_SUNXI_GEN_SUN6I
>                 clrbits_le32(&priv->ccm->ahb_reset0_cfg, priv->ahb_gate_mask);
> +#endif
> +       }
>         clrbits_le32(&priv->ccm->ahb_gate0, priv->ahb_gate_mask);
>
>         return 0;
> diff --git a/drivers/usb/host/ohci-sunxi.c b/drivers/usb/host/ohci-sunxi.c
> index 2b99169da6..c8c9e1d2fe 100644
> --- a/drivers/usb/host/ohci-sunxi.c
> +++ b/drivers/usb/host/ohci-sunxi.c
> @@ -92,9 +92,12 @@ no_phy:
>                      priv->ahb_gate_mask | extra_ahb_gate_mask);
>         setbits_le32(&priv->ccm->usb_clk_cfg,
>                      priv->usb_gate_mask | priv->cfg->extra_usb_gate_mask);
> -       if (priv->cfg->has_reset)
> +       if (priv->cfg->has_reset) {
> +#ifdef CONFIG_SUNXI_GEN_SUN6I
>                 setbits_le32(&priv->ccm->ahb_reset0_cfg,
>                              priv->ahb_gate_mask | extra_ahb_gate_mask);
> +#endif
> +       }
>
>         return ohci_register(dev, regs);
>  }
> @@ -116,8 +119,11 @@ static int ohci_usb_remove(struct udevice *dev)
>         if (ret)
>                 return ret;
>
> -       if (priv->cfg->has_reset)
> +       if (priv->cfg->has_reset) {
> +#ifdef CONFIG_SUNXI_GEN_SUN6I
>                 clrbits_le32(&priv->ccm->ahb_reset0_cfg, priv->ahb_gate_mask);
> +#endif
> +       }
>         clrbits_le32(&priv->ccm->usb_clk_cfg, priv->usb_gate_mask);
>         clrbits_le32(&priv->ccm->ahb_gate0, priv->ahb_gate_mask);
>
> --
> 2.17.1
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot


More information about the U-Boot mailing list