Commit | Line | Data |
---|---|---|
e443b333 AS |
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 | ||
a2c3d690 RZ |
8 | #include <linux/usb/otg.h> |
9 | ||
e443b333 | 10 | struct ci13xxx; |
77c4400f | 11 | struct ci13xxx_platform_data { |
e443b333 AS |
12 | const char *name; |
13 | /* offset of the capability registers */ | |
14 | uintptr_t capoffset; | |
bd841986 | 15 | unsigned power_budget; |
a2c3d690 | 16 | struct usb_phy *phy; |
40dcd0e8 | 17 | enum usb_phy_interface phy_mode; |
e443b333 AS |
18 | unsigned long flags; |
19 | #define CI13XXX_REGS_SHARED BIT(0) | |
20 | #define CI13XXX_REQUIRE_TRANSCEIVER BIT(1) | |
21 | #define CI13XXX_PULLUP_ON_VBUS BIT(2) | |
22 | #define CI13XXX_DISABLE_STREAMING BIT(3) | |
23 | ||
24 | #define CI13XXX_CONTROLLER_RESET_EVENT 0 | |
25 | #define CI13XXX_CONTROLLER_STOPPED_EVENT 1 | |
26c696c6 | 26 | void (*notify_event) (struct ci13xxx *ci, unsigned event); |
e443b333 AS |
27 | }; |
28 | ||
29 | /* Default offset of capability registers */ | |
30 | #define DEF_CAPOFFSET 0x100 | |
31 | ||
cbc6dc2a RZ |
32 | /* Add ci13xxx device */ |
33 | struct platform_device *ci13xxx_add_device(struct device *dev, | |
34 | struct resource *res, int nres, | |
35 | struct ci13xxx_platform_data *platdata); | |
36 | /* Remove ci13xxx device */ | |
37 | void ci13xxx_remove_device(struct platform_device *pdev); | |
38 | ||
e443b333 | 39 | #endif |