Define MUSB_PORT_MODE_{HOST,GADGET,DUAL_ROLE} and store the
platform-specified value in struct musb.

Note that MUSB_PORT_MODE_HOST has to be set to 1 in order to match
existing device tree bindings which are already documented but in fact
unusued. For information on the bindings, please refer to

  Documentation/devicetree/bindings/usb/omap-usb.txt
  Documentation/devicetree/bindings/usb/am33xx-usb.txt

Signed-off-by: Daniel Mack <zon...@gmail.com>
Acked-by: Peter Korsgaard <jac...@sunsite.dk>
---
 drivers/usb/musb/musb_core.c | 1 +
 drivers/usb/musb/musb_core.h | 7 +++++++
 2 files changed, 8 insertions(+)

diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
index fbcf5cb..2640d25 100644
--- a/drivers/usb/musb/musb_core.c
+++ b/drivers/usb/musb/musb_core.c
@@ -1821,6 +1821,7 @@ musb_init_controller(struct device *dev, int nIrq, void 
__iomem *ctrl)
        musb->board_set_power = plat->set_power;
        musb->min_power = plat->min_power;
        musb->ops = plat->platform_ops;
+       musb->port_mode = plat->mode;
 
        /* The musb_platform_init() call:
         *   - adjusts musb->mregs
diff --git a/drivers/usb/musb/musb_core.h b/drivers/usb/musb/musb_core.h
index 6b65847..174c097 100644
--- a/drivers/usb/musb/musb_core.h
+++ b/drivers/usb/musb/musb_core.h
@@ -77,6 +77,12 @@ struct musb_ep;
 #define is_peripheral_active(m)                (!(m)->is_host)
 #define is_host_active(m)              ((m)->is_host)
 
+enum {
+       MUSB_PORT_MODE_HOST     = 1,
+       MUSB_PORT_MODE_GADGET,
+       MUSB_PORT_MODE_DUAL_ROLE,
+};
+
 #ifdef CONFIG_PROC_FS
 #include <linux/fs.h>
 #define MUSB_CONFIG_PROC_FS
@@ -356,6 +362,7 @@ struct musb {
 
        u8                      min_power;      /* vbus for periph, in mA/2 */
 
+       int                     port_mode;      /* MUSB_PORT_MODE_* */
        bool                    is_host;
 
        int                     a_wait_bcon;    /* VBUS timeout in msecs */
-- 
1.8.1.4

--
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

Reply via email to