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 10struct ci13xxx; 11struct 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 */ 32struct platform_device *ci13xxx_add_device(struct device *dev, 33 struct resource *res, int nres, 34 struct ci13xxx_platform_data *platdata); 35/* Remove ci13xxx device */ 36void ci13xxx_remove_device(struct platform_device *pdev); 37 38#endif 39