/*
- * omap-control-usb.c - The USB part of control module.
+ * omap-control-phy.c - The PHY part of control module.
  *
  * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com
  * This program is free software; you can redistribute it and/or modify
 #include <linux/err.h>
 #include <linux/io.h>
 #include <linux/clk.h>
-#include <linux/usb/omap_control_usb.h>
+#include <linux/phy/omap_control_phy.h>
 
 /**
- * omap_control_usb_phy_power - power on/off the phy using control module reg
+ * omap_control_phy_power - power on/off the phy using control module reg
  * @dev: the control module device
  * @on: 0 or 1, based on powering on or off the PHY
  */
-void omap_control_usb_phy_power(struct device *dev, int on)
+void omap_control_phy_power(struct device *dev, int on)
 {
        u32 val;
        unsigned long rate;
-       struct omap_control_usb *control_usb;
+       struct omap_control_phy *control_phy;
 
        if (IS_ERR(dev) || !dev) {
                pr_err("%s: invalid device\n", __func__);
                return;
        }
 
-       control_usb = dev_get_drvdata(dev);
-       if (!control_usb) {
-               dev_err(dev, "%s: invalid control usb device\n", __func__);
+       control_phy = dev_get_drvdata(dev);
+       if (!control_phy) {
+               dev_err(dev, "%s: invalid control phy device\n", __func__);
                return;
        }
 
-       if (control_usb->type == OMAP_CTRL_TYPE_OTGHS)
+       if (control_phy->type == OMAP_CTRL_TYPE_OTGHS)
                return;
 
-       val = readl(control_usb->power);
+       val = readl(control_phy->power);
 
-       switch (control_usb->type) {
+       switch (control_phy->type) {
        case OMAP_CTRL_TYPE_USB2:
                if (on)
                        val &= ~OMAP_CTRL_DEV_PHY_PD;
                break;
 
        case OMAP_CTRL_TYPE_PIPE3:
-               rate = clk_get_rate(control_usb->sys_clk);
+               rate = clk_get_rate(control_phy->sys_clk);
                rate = rate/1000000;
 
                if (on) {
-                       val &= ~(OMAP_CTRL_USB_PWRCTL_CLK_CMD_MASK |
-                                       OMAP_CTRL_USB_PWRCTL_CLK_FREQ_MASK);
-                       val |= OMAP_CTRL_USB3_PHY_TX_RX_POWERON <<
-                               OMAP_CTRL_USB_PWRCTL_CLK_CMD_SHIFT;
-                       val |= rate << OMAP_CTRL_USB_PWRCTL_CLK_FREQ_SHIFT;
+                       val &= ~(OMAP_CTRL_PIPE3_PHY_PWRCTL_CLK_CMD_MASK |
+                               OMAP_CTRL_PIPE3_PHY_PWRCTL_CLK_FREQ_MASK);
+                       val |= OMAP_CTRL_PIPE3_PHY_TX_RX_POWERON <<
+                               OMAP_CTRL_PIPE3_PHY_PWRCTL_CLK_CMD_SHIFT;
+                       val |= rate <<
+                               OMAP_CTRL_PIPE3_PHY_PWRCTL_CLK_FREQ_SHIFT;
                } else {
-                       val &= ~OMAP_CTRL_USB_PWRCTL_CLK_CMD_MASK;
-                       val |= OMAP_CTRL_USB3_PHY_TX_RX_POWEROFF <<
-                               OMAP_CTRL_USB_PWRCTL_CLK_CMD_SHIFT;
+                       val &= ~OMAP_CTRL_PIPE3_PHY_PWRCTL_CLK_CMD_MASK;
+                       val |= OMAP_CTRL_PIPE3_PHY_TX_RX_POWEROFF <<
+                               OMAP_CTRL_PIPE3_PHY_PWRCTL_CLK_CMD_SHIFT;
                }
                break;
 
                break;
        default:
                dev_err(dev, "%s: type %d not recognized\n",
-                                       __func__, control_usb->type);
+                       __func__, control_phy->type);
                break;
        }
 
-       writel(val, control_usb->power);
+       writel(val, control_phy->power);
 }
-EXPORT_SYMBOL_GPL(omap_control_usb_phy_power);
+EXPORT_SYMBOL_GPL(omap_control_phy_power);
 
 /**
  * omap_control_usb_host_mode - set AVALID, VBUSVALID and ID pin in grounded
- * @ctrl_usb: struct omap_control_usb *
+ * @ctrl_phy: struct omap_control_phy *
  *
  * Writes to the mailbox register to notify the usb core that a usb
  * device has been connected.
  */
-static void omap_control_usb_host_mode(struct omap_control_usb *ctrl_usb)
+static void omap_control_usb_host_mode(struct omap_control_phy *ctrl_phy)
 {
        u32 val;
 
-       val = readl(ctrl_usb->otghs_control);
+       val = readl(ctrl_phy->otghs_control);
        val &= ~(OMAP_CTRL_DEV_IDDIG | OMAP_CTRL_DEV_SESSEND);
        val |= OMAP_CTRL_DEV_AVALID | OMAP_CTRL_DEV_VBUSVALID;
-       writel(val, ctrl_usb->otghs_control);
+       writel(val, ctrl_phy->otghs_control);
 }
 
 /**
  * omap_control_usb_device_mode - set AVALID, VBUSVALID and ID pin in high
  * impedance
- * @ctrl_usb: struct omap_control_usb *
+ * @ctrl_phy: struct omap_control_phy *
  *
  * Writes to the mailbox register to notify the usb core that it has been
  * connected to a usb host.
  */
-static void omap_control_usb_device_mode(struct omap_control_usb *ctrl_usb)
+static void omap_control_usb_device_mode(struct omap_control_phy *ctrl_phy)
 {
        u32 val;
 
-       val = readl(ctrl_usb->otghs_control);
+       val = readl(ctrl_phy->otghs_control);
        val &= ~OMAP_CTRL_DEV_SESSEND;
        val |= OMAP_CTRL_DEV_IDDIG | OMAP_CTRL_DEV_AVALID |
                OMAP_CTRL_DEV_VBUSVALID;
-       writel(val, ctrl_usb->otghs_control);
+       writel(val, ctrl_phy->otghs_control);
 }
 
 /**
  * omap_control_usb_set_sessionend - Enable SESSIONEND and IDIG to high
  * impedance
- * @ctrl_usb: struct omap_control_usb *
+ * @ctrl_phy: struct omap_control_phy *
  *
  * Writes to the mailbox register to notify the usb core it's now in
  * disconnected state.
  */
-static void omap_control_usb_set_sessionend(struct omap_control_usb *ctrl_usb)
+static void omap_control_usb_set_sessionend(struct omap_control_phy *ctrl_phy)
 {
        u32 val;
 
-       val = readl(ctrl_usb->otghs_control);
+       val = readl(ctrl_phy->otghs_control);
        val &= ~(OMAP_CTRL_DEV_AVALID | OMAP_CTRL_DEV_VBUSVALID);
        val |= OMAP_CTRL_DEV_IDDIG | OMAP_CTRL_DEV_SESSEND;
-       writel(val, ctrl_usb->otghs_control);
+       writel(val, ctrl_phy->otghs_control);
 }
 
 /**
 void omap_control_usb_set_mode(struct device *dev,
        enum omap_control_usb_mode mode)
 {
-       struct omap_control_usb *ctrl_usb;
+       struct omap_control_phy *ctrl_phy;
 
        if (IS_ERR(dev) || !dev)
                return;
 
-       ctrl_usb = dev_get_drvdata(dev);
+       ctrl_phy = dev_get_drvdata(dev);
 
-       if (!ctrl_usb) {
-               dev_err(dev, "Invalid control usb device\n");
+       if (!ctrl_phy) {
+               dev_err(dev, "Invalid control phy device\n");
                return;
        }
 
-       if (ctrl_usb->type != OMAP_CTRL_TYPE_OTGHS)
+       if (ctrl_phy->type != OMAP_CTRL_TYPE_OTGHS)
                return;
 
        switch (mode) {
        case USB_MODE_HOST:
-               omap_control_usb_host_mode(ctrl_usb);
+               omap_control_usb_host_mode(ctrl_phy);
                break;
        case USB_MODE_DEVICE:
-               omap_control_usb_device_mode(ctrl_usb);
+               omap_control_usb_device_mode(ctrl_phy);
                break;
        case USB_MODE_DISCONNECT:
-               omap_control_usb_set_sessionend(ctrl_usb);
+               omap_control_usb_set_sessionend(ctrl_phy);
                break;
        default:
                dev_vdbg(dev, "invalid omap control usb mode\n");
 
 #ifdef CONFIG_OF
 
-static const enum omap_control_usb_type otghs_data = OMAP_CTRL_TYPE_OTGHS;
-static const enum omap_control_usb_type usb2_data = OMAP_CTRL_TYPE_USB2;
-static const enum omap_control_usb_type pipe3_data = OMAP_CTRL_TYPE_PIPE3;
-static const enum omap_control_usb_type dra7usb2_data = OMAP_CTRL_TYPE_DRA7USB2;
-static const enum omap_control_usb_type am437usb2_data = OMAP_CTRL_TYPE_AM437USB2;
+static const enum omap_control_phy_type otghs_data = OMAP_CTRL_TYPE_OTGHS;
+static const enum omap_control_phy_type usb2_data = OMAP_CTRL_TYPE_USB2;
+static const enum omap_control_phy_type pipe3_data = OMAP_CTRL_TYPE_PIPE3;
+static const enum omap_control_phy_type dra7usb2_data = OMAP_CTRL_TYPE_DRA7USB2;
+static const enum omap_control_phy_type am437usb2_data = OMAP_CTRL_TYPE_AM437USB2;
 
-static const struct of_device_id omap_control_usb_id_table[] = {
+static const struct of_device_id omap_control_phy_id_table[] = {
        {
                .compatible = "ti,control-phy-otghs",
                .data = &otghs_data,
        },
        {},
 };
-MODULE_DEVICE_TABLE(of, omap_control_usb_id_table);
+MODULE_DEVICE_TABLE(of, omap_control_phy_id_table);
 #endif
 
 
-static int omap_control_usb_probe(struct platform_device *pdev)
+static int omap_control_phy_probe(struct platform_device *pdev)
 {
        struct resource *res;
        const struct of_device_id *of_id;
-       struct omap_control_usb *control_usb;
+       struct omap_control_phy *control_phy;
 
-       of_id = of_match_device(of_match_ptr(omap_control_usb_id_table),
-                                                               &pdev->dev);
+       of_id = of_match_device(of_match_ptr(omap_control_phy_id_table),
+                               &pdev->dev);
        if (!of_id)
                return -EINVAL;
 
-       control_usb = devm_kzalloc(&pdev->dev, sizeof(*control_usb),
+       control_phy = devm_kzalloc(&pdev->dev, sizeof(*control_phy),
                GFP_KERNEL);
-       if (!control_usb) {
-               dev_err(&pdev->dev, "unable to alloc memory for control usb\n");
+       if (!control_phy) {
+               dev_err(&pdev->dev, "unable to alloc memory for control phy\n");
                return -ENOMEM;
        }
 
-       control_usb->dev = &pdev->dev;
-       control_usb->type = *(enum omap_control_usb_type *)of_id->data;
+       control_phy->dev = &pdev->dev;
+       control_phy->type = *(enum omap_control_phy_type *)of_id->data;
 
-       if (control_usb->type == OMAP_CTRL_TYPE_OTGHS) {
+       if (control_phy->type == OMAP_CTRL_TYPE_OTGHS) {
                res = platform_get_resource_byname(pdev, IORESOURCE_MEM,
                        "otghs_control");
-               control_usb->otghs_control = devm_ioremap_resource(
+               control_phy->otghs_control = devm_ioremap_resource(
                        &pdev->dev, res);
-               if (IS_ERR(control_usb->otghs_control))
-                       return PTR_ERR(control_usb->otghs_control);
+               if (IS_ERR(control_phy->otghs_control))
+                       return PTR_ERR(control_phy->otghs_control);
        } else {
                res = platform_get_resource_byname(pdev, IORESOURCE_MEM,
                                "power");
-               control_usb->power = devm_ioremap_resource(&pdev->dev, res);
-               if (IS_ERR(control_usb->power)) {
+               control_phy->power = devm_ioremap_resource(&pdev->dev, res);
+               if (IS_ERR(control_phy->power)) {
                        dev_err(&pdev->dev, "Couldn't get power register\n");
-                       return PTR_ERR(control_usb->power);
+                       return PTR_ERR(control_phy->power);
                }
        }
 
-       if (control_usb->type == OMAP_CTRL_TYPE_PIPE3) {
-               control_usb->sys_clk = devm_clk_get(control_usb->dev,
+       if (control_phy->type == OMAP_CTRL_TYPE_PIPE3) {
+               control_phy->sys_clk = devm_clk_get(control_phy->dev,
                        "sys_clkin");
-               if (IS_ERR(control_usb->sys_clk)) {
+               if (IS_ERR(control_phy->sys_clk)) {
                        pr_err("%s: unable to get sys_clkin\n", __func__);
                        return -EINVAL;
                }
        }
 
-       dev_set_drvdata(control_usb->dev, control_usb);
+       dev_set_drvdata(control_phy->dev, control_phy);
 
        return 0;
 }
 
-static struct platform_driver omap_control_usb_driver = {
-       .probe          = omap_control_usb_probe,
+static struct platform_driver omap_control_phy_driver = {
+       .probe          = omap_control_phy_probe,
        .driver         = {
-               .name   = "omap-control-usb",
+               .name   = "omap-control-phy",
                .owner  = THIS_MODULE,
-               .of_match_table = of_match_ptr(omap_control_usb_id_table),
+               .of_match_table = of_match_ptr(omap_control_phy_id_table),
        },
 };
 
-static int __init omap_control_usb_init(void)
+static int __init omap_control_phy_init(void)
 {
-       return platform_driver_register(&omap_control_usb_driver);
+       return platform_driver_register(&omap_control_phy_driver);
 }
-subsys_initcall(omap_control_usb_init);
+subsys_initcall(omap_control_phy_init);
 
-static void __exit omap_control_usb_exit(void)
+static void __exit omap_control_phy_exit(void)
 {
-       platform_driver_unregister(&omap_control_usb_driver);
+       platform_driver_unregister(&omap_control_phy_driver);
 }
-module_exit(omap_control_usb_exit);
+module_exit(omap_control_phy_exit);
 
-MODULE_ALIAS("platform: omap_control_usb");
+MODULE_ALIAS("platform: omap_control_phy");
 MODULE_AUTHOR("Texas Instruments Inc.");
-MODULE_DESCRIPTION("OMAP Control Module USB Driver");
+MODULE_DESCRIPTION("OMAP Control Module PHY Driver");
 MODULE_LICENSE("GPL v2");
 
 /*
- * omap_control_usb.h - Header file for the USB part of control module.
+ * omap_control_phy.h - Header file for the PHY part of control module.
  *
  * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com
  * This program is free software; you can redistribute it and/or modify
  *
  */
 
-#ifndef __OMAP_CONTROL_USB_H__
-#define __OMAP_CONTROL_USB_H__
+#ifndef __OMAP_CONTROL_PHY_H__
+#define __OMAP_CONTROL_PHY_H__
 
-enum omap_control_usb_type {
+enum omap_control_phy_type {
        OMAP_CTRL_TYPE_OTGHS = 1,       /* Mailbox OTGHS_CONTROL */
        OMAP_CTRL_TYPE_USB2,    /* USB2_PHY, power down in CONTROL_DEV_CONF */
        OMAP_CTRL_TYPE_PIPE3,   /* PIPE3 PHY, DPLL & seperate Rx/Tx power */
        OMAP_CTRL_TYPE_AM437USB2, /* USB2 PHY, power e.g. AM437x */
 };
 
-struct omap_control_usb {
+struct omap_control_phy {
        struct device *dev;
 
        u32 __iomem *otghs_control;
 
        struct clk *sys_clk;
 
-       enum omap_control_usb_type type;
+       enum omap_control_phy_type type;
 };
 
 enum omap_control_usb_mode {
 #define        OMAP_CTRL_DEV_SESSEND           BIT(3)
 #define        OMAP_CTRL_DEV_IDDIG             BIT(4)
 
-#define        OMAP_CTRL_USB_PWRCTL_CLK_CMD_MASK       0x003FC000
-#define        OMAP_CTRL_USB_PWRCTL_CLK_CMD_SHIFT      0xE
+#define        OMAP_CTRL_PIPE3_PHY_PWRCTL_CLK_CMD_MASK         0x003FC000
+#define        OMAP_CTRL_PIPE3_PHY_PWRCTL_CLK_CMD_SHIFT        0xE
 
-#define        OMAP_CTRL_USB_PWRCTL_CLK_FREQ_MASK      0xFFC00000
-#define        OMAP_CTRL_USB_PWRCTL_CLK_FREQ_SHIFT     0x16
+#define        OMAP_CTRL_PIPE3_PHY_PWRCTL_CLK_FREQ_MASK        0xFFC00000
+#define        OMAP_CTRL_PIPE3_PHY_PWRCTL_CLK_FREQ_SHIFT       0x16
 
-#define        OMAP_CTRL_USB3_PHY_TX_RX_POWERON        0x3
-#define        OMAP_CTRL_USB3_PHY_TX_RX_POWEROFF       0x0
+#define        OMAP_CTRL_PIPE3_PHY_TX_RX_POWERON       0x3
+#define        OMAP_CTRL_PIPE3_PHY_TX_RX_POWEROFF      0x0
 
 #define OMAP_CTRL_USB2_PHY_PD          BIT(28)
 
 #define AM437X_CTRL_USB2_OTGVDET_EN    BIT(19)
 #define AM437X_CTRL_USB2_OTGSESSEND_EN BIT(20)
 
-#if IS_ENABLED(CONFIG_OMAP_CONTROL_USB)
-extern void omap_control_usb_phy_power(struct device *dev, int on);
-extern void omap_control_usb_set_mode(struct device *dev,
-       enum omap_control_usb_mode mode);
+#if IS_ENABLED(CONFIG_OMAP_CONTROL_PHY)
+void omap_control_phy_power(struct device *dev, int on);
+void omap_control_usb_set_mode(struct device *dev,
+                              enum omap_control_usb_mode mode);
 #else
 
-static inline void omap_control_usb_phy_power(struct device *dev, int on)
+static inline void omap_control_phy_power(struct device *dev, int on)
 {
 }
 
 }
 #endif
 
-#endif /* __OMAP_CONTROL_USB_H__ */
+#endif /* __OMAP_CONTROL_PHY_H__ */