summaryrefslogtreecommitdiff
path: root/drivers/usb/gadget/s3c_udc_otg.c
diff options
context:
space:
mode:
authorMarek Vasut <marex@denx.de>2014-11-04 04:08:18 +0100
committerMarek Vasut <marex@denx.de>2014-11-06 21:05:54 +0100
commit40ff06b958dca8a17f6f42a511edb823e30ce1c0 (patch)
tree0b8e51b65b7f5c6f40c052f00beaad91357e7bcd /drivers/usb/gadget/s3c_udc_otg.c
parent2cc157b0cdc515cd08368e84dd61038feebf8599 (diff)
downloadu-boot-imx-40ff06b958dca8a17f6f42a511edb823e30ce1c0.zip
u-boot-imx-40ff06b958dca8a17f6f42a511edb823e30ce1c0.tar.gz
u-boot-imx-40ff06b958dca8a17f6f42a511edb823e30ce1c0.tar.bz2
usb: s3c-otg: Encapsulate PHY control
Encapsulate the Samsung PHY control and its register accesses into the otg_phy_init() and otg_phy_off() functions. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Chin Liang See <clsee@altera.com> Cc: Dinh Nguyen <dinguyen@opensource.altera.com> Cc: Vince Bridgers <vbridger@altera.com> Cc: Stefan Roese <sr@denx.de> Acked-by: Pavel Machek <pavel@denx.de> Acked-by: Lukasz Majewski <l.majewski@samsung.com> Tested-by: Lukasz Majewski <l.majewski@samsung.com>
Diffstat (limited to 'drivers/usb/gadget/s3c_udc_otg.c')
-rw-r--r--drivers/usb/gadget/s3c_udc_otg.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/usb/gadget/s3c_udc_otg.c b/drivers/usb/gadget/s3c_udc_otg.c
index 7508b1a..b808ddaf 100644
--- a/drivers/usb/gadget/s3c_udc_otg.c
+++ b/drivers/usb/gadget/s3c_udc_otg.c
@@ -145,8 +145,6 @@ static struct usb_ep_ops s3c_ep_ops = {
void __iomem *regs_otg;
struct s3c_usbotg_reg *reg;
-struct s3c_usbotg_phy *phy;
-static unsigned int usb_phy_ctrl;
bool dfu_usb_get_reset(void)
{
@@ -155,6 +153,10 @@ bool dfu_usb_get_reset(void)
void otg_phy_init(struct s3c_udc *dev)
{
+ unsigned int usb_phy_ctrl = dev->pdata->usb_phy_ctrl;
+ struct s3c_usbotg_phy *phy =
+ (struct s3c_usbotg_phy *)dev->pdata->regs_phy;
+
dev->pdata->phy_control(1);
/*USB PHY0 Enable */
@@ -189,6 +191,10 @@ void otg_phy_init(struct s3c_udc *dev)
void otg_phy_off(struct s3c_udc *dev)
{
+ unsigned int usb_phy_ctrl = dev->pdata->usb_phy_ctrl;
+ struct s3c_usbotg_phy *phy =
+ (struct s3c_usbotg_phy *)dev->pdata->regs_phy;
+
/* reset controller just in case */
writel(PHY_SW_RST0, &phy->rstcon);
udelay(20);
@@ -853,9 +859,7 @@ int s3c_udc_probe(struct s3c_plat_otg_data *pdata)
dev->pdata = pdata;
- phy = (struct s3c_usbotg_phy *)pdata->regs_phy;
reg = (struct s3c_usbotg_reg *)pdata->regs_otg;
- usb_phy_ctrl = pdata->usb_phy_ctrl;
/* regs_otg = (void *)pdata->regs_otg; */