Re: [PATCH 2/3] usb: dwc3: pci: Enable ULPI Refclk on platforms where the firmware doesnot

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

 



Hello!

On 06/07/2018 01:38 PM, Hans de Goede wrote:

> On some Bay Trail (BYT) systems the firmware does not enable the
> ULPI Refclk.
> 
> This commit adds a helper which checks and if necessary enabled the Refclk
> and calls this helper for BYT machines.
> 
> Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>
> ---
>  drivers/usb/dwc3/dwc3-pci.c | 34 ++++++++++++++++++++++++++++++++++
>  1 file changed, 34 insertions(+)
> 
> diff --git a/drivers/usb/dwc3/dwc3-pci.c b/drivers/usb/dwc3/dwc3-pci.c
> index 34b84d3bc7cf..65bc110388f3 100644
> --- a/drivers/usb/dwc3/dwc3-pci.c
> +++ b/drivers/usb/dwc3/dwc3-pci.c
[...]
> @@ -78,6 +81,34 @@ static struct gpiod_lookup_table platform_bytcr_gpios = {
>  	},
>  };
>  
> +static void dwc3_pci_enable_ulpi_refclock(struct pci_dev *pci)
> +{
> +	void __iomem	*reg;
> +	struct resource	res;
> +	struct device	*dev = &pci->dev;
> +	u32		value;
> +
> +	res.start	= pci_resource_start(pci, 1);
> +	res.end		= pci_resource_end(pci, 1);
> +	res.name	= "dwc_usb3_bar1";
> +	res.flags	= IORESOURCE_MEM;
> +
> +	reg = devm_ioremap_resource(dev, &res);
> +	if (IS_ERR(reg)) {
> +		dev_err(dev, "cannot check GP_RWREG1 to assert ulpi refclock\n");

   Eh?
   BTW, devm_ioremap_resource() prints the error cause already...

> +		return;
> +	}
> +
> +	value = readl(reg + GP_RWREG1);
> +	if (!(value & GP_RWREG1_ULPI_REFCLK_DISABLE))

   I guess that dev_err() belongs here...

> +		return; /* ULPI refclk already enabled */
> +
> +	dev_warn(dev, "ULPI refclock is disabled from the BIOS, enabling it\n");
> +	value &= ~GP_RWREG1_ULPI_REFCLK_DISABLE;
> +	writel(value, reg + GP_RWREG1);
> +	msleep(100);
> +}
> +
>  static int dwc3_pci_quirks(struct dwc3_pci *dwc)
>  {
>  	struct platform_device		*dwc3 = dwc->dwc3;
[...]

MBR, Sergei
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux