1 /* 2 * Platform data for the chipidea USB dual role controller 3 */ 4 5 #ifndef __LINUX_USB_CHIPIDEA_H 6 #define __LINUX_USB_CHIPIDEA_H 7 8 #include <linux/usb/otg.h> 9 10 struct ci13xxx; 11 struct ci13xxx_platform_data { 12 const char *name; 13 /* offset of the capability registers */ 14 uintptr_t capoffset; 15 unsigned power_budget; 16 struct usb_phy *phy; 17 unsigned long flags; 18 #define CI13XXX_REGS_SHARED BIT(0) 19 #define CI13XXX_REQUIRE_TRANSCEIVER BIT(1) 20 #define CI13XXX_PULLUP_ON_VBUS BIT(2) 21 #define CI13XXX_DISABLE_STREAMING BIT(3) 22 23 #define CI13XXX_CONTROLLER_RESET_EVENT 0 24 #define CI13XXX_CONTROLLER_STOPPED_EVENT 1 25 void (*notify_event) (struct ci13xxx *ci, unsigned event); 26 }; 27 28 /* Default offset of capability registers */ 29 #define DEF_CAPOFFSET 0x100 30 31 /* Add ci13xxx device */ 32 struct platform_device *ci13xxx_add_device(struct device *dev, 33 struct resource *res, int nres, 34 struct ci13xxx_platform_data *platdata); 35 /* Remove ci13xxx device */ 36 void ci13xxx_remove_device(struct platform_device *pdev); 37 38 #endif 39