Re: [PATCH] phy: exynos5-usbdrd: Add facility to toggle vbus gpio on/off
On Wed, Apr 09, 2014 at 05:24:45PM +0530, Vivek Gautam wrote: Adding support to enable/disable VBUS hooked to a gpio to enable vbus supply on the port. Signed-off-by: Vivek Gautam gautam.vi...@samsung.com --- Based on 'phy-exynos5-usbdrd' patches: [PATCH V4 0/5] Add Exynos5 USB 3.0 phy driver based on generic PHY framework http://www.spinics.net/lists/linux-usb/msg105507.html drivers/phy/phy-exynos5-usbdrd.c | 18 ++ 1 file changed, 18 insertions(+) diff --git a/drivers/phy/phy-exynos5-usbdrd.c b/drivers/phy/phy-exynos5-usbdrd.c index ff54a7c..5ca7485 100644 --- a/drivers/phy/phy-exynos5-usbdrd.c +++ b/drivers/phy/phy-exynos5-usbdrd.c @@ -18,6 +18,7 @@ #include linux/module.h #include linux/of.h #include linux/of_address.h +#include linux/of_gpio.h #include linux/phy/phy.h #include linux/platform_device.h #include linux/mutex.h @@ -176,6 +177,7 @@ struct exynos5_usbdrd_phy { struct clk *ref_clk; unsigned long ref_rate; unsigned int refclk_reg; + int gpio; }; #define to_usbdrd_phy(inst) \ @@ -460,6 +462,9 @@ static int exynos5_usbdrd_phy_power_on(struct phy *phy) if (!IS_ERR(phy_drd-usb30_sclk)) clk_prepare_enable(phy_drd-usb30_sclk); + /* Toggle VBUS gpio - on */ + gpio_set_value(phy_drd-gpio, 1); It seems like you'd be better off using a regulator_enable() call for this. -- balbi signature.asc Description: Digital signature
Re: [PATCH] phy: exynos5-usbdrd: Add facility to toggle vbus gpio on/off
Hi. On Wednesday 09 April 2014 05:24 PM, Vivek Gautam wrote: Adding support to enable/disable VBUS hooked to a gpio to enable vbus supply on the port. Signed-off-by: Vivek Gautam gautam.vi...@samsung.com --- Based on 'phy-exynos5-usbdrd' patches: [PATCH V4 0/5] Add Exynos5 USB 3.0 phy driver based on generic PHY framework http://www.spinics.net/lists/linux-usb/msg105507.html drivers/phy/phy-exynos5-usbdrd.c | 18 ++ 1 file changed, 18 insertions(+) diff --git a/drivers/phy/phy-exynos5-usbdrd.c b/drivers/phy/phy-exynos5-usbdrd.c index ff54a7c..5ca7485 100644 --- a/drivers/phy/phy-exynos5-usbdrd.c +++ b/drivers/phy/phy-exynos5-usbdrd.c @@ -18,6 +18,7 @@ #include linux/module.h #include linux/of.h #include linux/of_address.h +#include linux/of_gpio.h #include linux/phy/phy.h #include linux/platform_device.h #include linux/mutex.h @@ -176,6 +177,7 @@ struct exynos5_usbdrd_phy { struct clk *ref_clk; unsigned long ref_rate; unsigned int refclk_reg; + int gpio; }; #define to_usbdrd_phy(inst) \ @@ -460,6 +462,9 @@ static int exynos5_usbdrd_phy_power_on(struct phy *phy) if (!IS_ERR(phy_drd-usb30_sclk)) clk_prepare_enable(phy_drd-usb30_sclk); + /* Toggle VBUS gpio - on */ + gpio_set_value(phy_drd-gpio, 1); + /* Power-on PHY*/ inst-phy_cfg-phy_isol(inst, 0); @@ -476,6 +481,9 @@ static int exynos5_usbdrd_phy_power_off(struct phy *phy) /* Power-off the PHY */ inst-phy_cfg-phy_isol(inst, 1); + /* Toggle VBUS gpio - off */ + gpio_set_value(phy_drd-gpio, 0); + if (!IS_ERR(phy_drd-usb30_sclk)) clk_disable_unprepare(phy_drd-usb30_sclk); @@ -585,6 +593,16 @@ static int exynos5_usbdrd_phy_probe(struct platform_device *pdev) phy_drd-drv_data = drv_data; + /* Get required GPIO for vbus */ + phy_drd-gpio = of_get_named_gpio(dev-of_node, + samsung,vbus-gpio, 0); Is this dt property documented somewhere? + if (!gpio_is_valid(phy_drd-gpio)) + dev_dbg(dev, no usbdrd-phy vbus gpio defined\n); No return here? Can the PHY be functional even without the VBUS? Thanks Kishon -- To unsubscribe from this list: send the line unsubscribe linux-usb in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] phy: exynos5-usbdrd: Add facility to toggle vbus gpio on/off
Hi Vivek, On 09/04/14 13:54, Vivek Gautam wrote: Adding support to enable/disable VBUS hooked to a gpio to enable vbus supply on the port. Does the GPIO control a fixed voltage regulator ? If so, shouldn't it be modelled by the regulator API instead ? Signed-off-by: Vivek Gautam gautam.vi...@samsung.com [...] + /* Get required GPIO for vbus */ + phy_drd-gpio = of_get_named_gpio(dev-of_node, + samsung,vbus-gpio, 0); + if (!gpio_is_valid(phy_drd-gpio)) + dev_dbg(dev, no usbdrd-phy vbus gpio defined\n); + + if (devm_gpio_request(dev, phy_drd-gpio, phydrd_vbus_gpio)) + dev_dbg(dev, can't request usbdrd-phy vbus gpio %d\n, + phy_drd-gpio); -- Regards, Sylwester -- To unsubscribe from this list: send the line unsubscribe linux-usb in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] phy: exynos5-usbdrd: Add facility to toggle vbus gpio on/off
Hi Sylwester, On Wed, Apr 9, 2014 at 5:41 PM, Sylwester Nawrocki s.nawro...@samsung.com wrote: Hi Vivek, On 09/04/14 13:54, Vivek Gautam wrote: Adding support to enable/disable VBUS hooked to a gpio to enable vbus supply on the port. Does the GPIO control a fixed voltage regulator ? If so, shouldn't it be modelled by the regulator API instead ? No, this GPIO controls a 'current limiting power distribution switch', which gives the output vbus to usb controller. Should i model this as a fixed regulator ? Signed-off-by: Vivek Gautam gautam.vi...@samsung.com [...] + /* Get required GPIO for vbus */ + phy_drd-gpio = of_get_named_gpio(dev-of_node, + samsung,vbus-gpio, 0); + if (!gpio_is_valid(phy_drd-gpio)) + dev_dbg(dev, no usbdrd-phy vbus gpio defined\n); + + if (devm_gpio_request(dev, phy_drd-gpio, phydrd_vbus_gpio)) + dev_dbg(dev, can't request usbdrd-phy vbus gpio %d\n, + phy_drd-gpio); -- Regards, Sylwester -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line unsubscribe linux-usb in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] phy: exynos5-usbdrd: Add facility to toggle vbus gpio on/off
Hi, On 09.04.2014 14:24, Vivek Gautam wrote: Hi Sylwester, On Wed, Apr 9, 2014 at 5:41 PM, Sylwester Nawrocki s.nawro...@samsung.com wrote: Hi Vivek, On 09/04/14 13:54, Vivek Gautam wrote: Adding support to enable/disable VBUS hooked to a gpio to enable vbus supply on the port. Does the GPIO control a fixed voltage regulator ? If so, shouldn't it be modelled by the regulator API instead ? No, this GPIO controls a 'current limiting power distribution switch', which gives the output vbus to usb controller. Should i model this as a fixed regulator ? If I understand this correctly, this is just a switch that lets you control whether vbus is provided to the USB connector or not. If so, this doesn't look like an Exynos-specific thing at all and should rather be modeled on higher level. Best regards, Tomasz -- To unsubscribe from this list: send the line unsubscribe linux-usb in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] phy: exynos5-usbdrd: Add facility to toggle vbus gpio on/off
On 09/04/14 14:24, Vivek Gautam wrote: On Wed, Apr 9, 2014 at 5:41 PM, Sylwester Nawrocki s.nawro...@samsung.com wrote: On 09/04/14 13:54, Vivek Gautam wrote: Adding support to enable/disable VBUS hooked to a gpio to enable vbus supply on the port. Does the GPIO control a fixed voltage regulator ? If so, shouldn't it be modelled by the regulator API instead ? No, this GPIO controls a 'current limiting power distribution switch', which gives the output vbus to usb controller. Should i model this as a fixed regulator ? OK, it's just a power switch then. I suspect using the regulator API would be more universal, as such a GPIO is somewhat a board design detail. I'm not going to object to your patch, just might be better to use the gpiod API instead. -- Regards, Sylwester -- To unsubscribe from this list: send the line unsubscribe linux-usb in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html