|
@@ -100,6 +100,7 @@
|
|
|
#include <linux/io.h>
|
|
|
#include <linux/dma-mapping.h>
|
|
|
#include <linux/usb.h>
|
|
|
+#include <linux/usb/of.h>
|
|
|
|
|
|
#include "musb_core.h"
|
|
|
#include "musb_trace.h"
|
|
@@ -130,6 +131,24 @@ static inline struct musb *dev_to_musb(struct device *dev)
|
|
|
return dev_get_drvdata(dev);
|
|
|
}
|
|
|
|
|
|
+enum musb_mode musb_get_mode(struct device *dev)
|
|
|
+{
|
|
|
+ enum usb_dr_mode mode;
|
|
|
+
|
|
|
+ mode = usb_get_dr_mode(dev);
|
|
|
+ switch (mode) {
|
|
|
+ case USB_DR_MODE_HOST:
|
|
|
+ return MUSB_HOST;
|
|
|
+ case USB_DR_MODE_PERIPHERAL:
|
|
|
+ return MUSB_PERIPHERAL;
|
|
|
+ case USB_DR_MODE_OTG:
|
|
|
+ case USB_DR_MODE_UNKNOWN:
|
|
|
+ default:
|
|
|
+ return MUSB_OTG;
|
|
|
+ }
|
|
|
+}
|
|
|
+EXPORT_SYMBOL_GPL(musb_get_mode);
|
|
|
+
|
|
|
/*-------------------------------------------------------------------------*/
|
|
|
|
|
|
#ifndef CONFIG_BLACKFIN
|