Re: [PATCH v2 2/2] phy: tusb1210: implement ->set_mode()

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

 




On Friday 09 June 2017 03:50 PM, Felipe Balbi wrote:
> ->set_mode() can be used to tell PHY to prepare itself to enter USB
> Host/Peripheral mode and that's very important for DRD
> configurations.
> 
> Signed-off-by: Felipe Balbi <felipe.balbi@xxxxxxxxxxxxxxx>
> 
> changes since v1:
>   - rebase on PHY -next

removed this changelog and merged,

Thanks
Kishon
> 
> 
> ---
>  drivers/phy/ti/phy-tusb1210.c | 35 +++++++++++++++++++++++++++++++++++
>  1 file changed, 35 insertions(+)
> 
> diff --git a/drivers/phy/ti/phy-tusb1210.c b/drivers/phy/ti/phy-tusb1210.c
> index 5dbb9a7b4945..b8ec39ac4dfc 100644
> --- a/drivers/phy/ti/phy-tusb1210.c
> +++ b/drivers/phy/ti/phy-tusb1210.c
> @@ -11,6 +11,7 @@
>   */
>  #include <linux/module.h>
>  #include <linux/ulpi/driver.h>
> +#include <linux/ulpi/regs.h>
>  #include <linux/gpio/consumer.h>
>  #include <linux/phy/ulpi_phy.h>
>  
> @@ -52,9 +53,43 @@ static int tusb1210_power_off(struct phy *phy)
>  	return 0;
>  }
>  
> +static int tusb1210_set_mode(struct phy *phy, enum phy_mode mode)
> +{
> +	struct tusb1210 *tusb = phy_get_drvdata(phy);
> +	int ret;
> +
> +	ret = ulpi_read(tusb->ulpi, ULPI_OTG_CTRL);
> +	if (ret < 0)
> +		return ret;
> +
> +	switch (mode) {
> +	case PHY_MODE_USB_HOST:
> +		ret |= (ULPI_OTG_CTRL_DRVVBUS_EXT
> +			| ULPI_OTG_CTRL_ID_PULLUP
> +			| ULPI_OTG_CTRL_DP_PULLDOWN
> +			| ULPI_OTG_CTRL_DM_PULLDOWN);
> +		ulpi_write(tusb->ulpi, ULPI_OTG_CTRL, ret);
> +		ret |= ULPI_OTG_CTRL_DRVVBUS;
> +		break;
> +	case PHY_MODE_USB_DEVICE:
> +		ret &= ~(ULPI_OTG_CTRL_DRVVBUS
> +			 | ULPI_OTG_CTRL_DP_PULLDOWN
> +			 | ULPI_OTG_CTRL_DM_PULLDOWN);
> +		ulpi_write(tusb->ulpi, ULPI_OTG_CTRL, ret);
> +		ret &= ~ULPI_OTG_CTRL_DRVVBUS_EXT;
> +		break;
> +	default:
> +		/* nothing */
> +		return 0;
> +	}
> +
> +	return ulpi_write(tusb->ulpi, ULPI_OTG_CTRL, ret);
> +}
> +
>  static const struct phy_ops phy_ops = {
>  	.power_on = tusb1210_power_on,
>  	.power_off = tusb1210_power_off,
> +	.set_mode = tusb1210_set_mode,
>  	.owner = THIS_MODULE,
>  };
>  
> 
--
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