usb: phy: omap: Add new device types and remove omap_control_usb3_phy_power()

Add support for new device types and in the process rid of "ti,type"
device tree property. The correct type of device will be determined
from the compatible string instead.

Introduce a compatible string for each device type. At the moment
we support 4 types OTGHS, USB2, PIPE3 (e.g. USB3) and DRA7USB2.

Update DT binding information to reflect these changes.

Also get rid of omap_control_usb3_phy_power(). Just one function
i.e. omap_control_usb_phy_power() will now take care of all PHY types.

Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Roger Quadros 2013-10-03 18:12:31 +03:00 committed by Greg Kroah-Hartman
parent 4fd06af96b
commit 6cb9310a32
4 changed files with 134 additions and 107 deletions

View file

@ -19,16 +19,23 @@
#ifndef __OMAP_CONTROL_USB_H__
#define __OMAP_CONTROL_USB_H__
enum omap_control_usb_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_DRA7USB2, /* USB2 PHY, power and power_aux e.g. DRA7 */
};
struct omap_control_usb {
struct device *dev;
u32 __iomem *dev_conf;
u32 __iomem *otghs_control;
u32 __iomem *phy_power;
u32 __iomem *power;
u32 __iomem *power_aux;
struct clk *sys_clk;
u32 type;
enum omap_control_usb_type type;
};
enum omap_control_usb_mode {
@ -38,10 +45,6 @@ enum omap_control_usb_mode {
USB_MODE_DISCONNECT,
};
/* To differentiate ctrl module IP having either mailbox or USB3 PHY power */
#define OMAP_CTRL_DEV_TYPE1 0x1
#define OMAP_CTRL_DEV_TYPE2 0x2
#define OMAP_CTRL_DEV_PHY_PD BIT(0)
#define OMAP_CTRL_DEV_AVALID BIT(0)
@ -59,10 +62,11 @@ enum omap_control_usb_mode {
#define OMAP_CTRL_USB3_PHY_TX_RX_POWERON 0x3
#define OMAP_CTRL_USB3_PHY_TX_RX_POWEROFF 0x0
#define OMAP_CTRL_USB2_PHY_PD BIT(28)
#if IS_ENABLED(CONFIG_OMAP_CONTROL_USB)
extern struct device *omap_get_control_dev(void);
extern void omap_control_usb_phy_power(struct device *dev, int on);
extern void omap_control_usb3_phy_power(struct device *dev, bool on);
extern void omap_control_usb_set_mode(struct device *dev,
enum omap_control_usb_mode mode);
#else
@ -75,10 +79,6 @@ static inline void omap_control_usb_phy_power(struct device *dev, int on)
{
}
static inline void omap_control_usb3_phy_power(struct device *dev, int on)
{
}
static inline void omap_control_usb_set_mode(struct device *dev,
enum omap_control_usb_mode mode)
{