mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
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:
parent
4fd06af96b
commit
6cb9310a32
4 changed files with 134 additions and 107 deletions
|
@ -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)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue