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 | ||
8e22978c AS |
10 | struct ci_hdrc; |
11 | struct ci_hdrc_platform_data { | |
e443b333 AS |
12 | const char *name; |
13 | /* offset of the capability registers */ | |
14 | uintptr_t capoffset; | |
bd841986 | 15 | unsigned power_budget; |
1e5e2d3d AT |
16 | struct phy *phy; |
17 | /* old usb_phy interface */ | |
ef44cb42 | 18 | struct usb_phy *usb_phy; |
40dcd0e8 | 19 | enum usb_phy_interface phy_mode; |
e443b333 | 20 | unsigned long flags; |
8e22978c | 21 | #define CI_HDRC_REGS_SHARED BIT(0) |
8e22978c | 22 | #define CI_HDRC_DISABLE_STREAMING BIT(3) |
577b232f PC |
23 | /* |
24 | * Only set it when DCCPARAMS.DC==1 and DCCPARAMS.HC==1, | |
25 | * but otg is not supported (no register otgsc). | |
26 | */ | |
27 | #define CI_HDRC_DUAL_ROLE_NOT_OTG BIT(4) | |
ed8f8318 | 28 | #define CI_HDRC_IMX28_WRITE_FIX BIT(5) |
4f6743d5 | 29 | #define CI_HDRC_FORCE_FULLSPEED BIT(6) |
691962d1 | 30 | enum usb_dr_mode dr_mode; |
8e22978c AS |
31 | #define CI_HDRC_CONTROLLER_RESET_EVENT 0 |
32 | #define CI_HDRC_CONTROLLER_STOPPED_EVENT 1 | |
33 | void (*notify_event) (struct ci_hdrc *ci, unsigned event); | |
1542d9c3 | 34 | struct regulator *reg_vbus; |
f6a9ff07 | 35 | bool tpl_support; |
e443b333 AS |
36 | }; |
37 | ||
38 | /* Default offset of capability registers */ | |
39 | #define DEF_CAPOFFSET 0x100 | |
40 | ||
8e22978c AS |
41 | /* Add ci hdrc device */ |
42 | struct platform_device *ci_hdrc_add_device(struct device *dev, | |
cbc6dc2a | 43 | struct resource *res, int nres, |
8e22978c AS |
44 | struct ci_hdrc_platform_data *platdata); |
45 | /* Remove ci hdrc device */ | |
46 | void ci_hdrc_remove_device(struct platform_device *pdev); | |
cbc6dc2a | 47 | |
e443b333 | 48 | #endif |