xref: /linux/include/linux/usb/chipidea.h (revision bd841986e4e1fe60fe97da45be5139f173c5188e)
1e443b333SAlexander Shishkin /*
2e443b333SAlexander Shishkin  * Platform data for the chipidea USB dual role controller
3e443b333SAlexander Shishkin  */
4e443b333SAlexander Shishkin 
5e443b333SAlexander Shishkin #ifndef __LINUX_USB_CHIPIDEA_H
6e443b333SAlexander Shishkin #define __LINUX_USB_CHIPIDEA_H
7e443b333SAlexander Shishkin 
8e443b333SAlexander Shishkin struct ci13xxx;
9e443b333SAlexander Shishkin struct ci13xxx_udc_driver {
10e443b333SAlexander Shishkin 	const char	*name;
11e443b333SAlexander Shishkin 	/* offset of the capability registers */
12e443b333SAlexander Shishkin 	uintptr_t	 capoffset;
13*bd841986SAlexander Shishkin 	unsigned	 power_budget;
14e443b333SAlexander Shishkin 	unsigned long	 flags;
15e443b333SAlexander Shishkin #define CI13XXX_REGS_SHARED		BIT(0)
16e443b333SAlexander Shishkin #define CI13XXX_REQUIRE_TRANSCEIVER	BIT(1)
17e443b333SAlexander Shishkin #define CI13XXX_PULLUP_ON_VBUS		BIT(2)
18e443b333SAlexander Shishkin #define CI13XXX_DISABLE_STREAMING	BIT(3)
19e443b333SAlexander Shishkin 
20e443b333SAlexander Shishkin #define CI13XXX_CONTROLLER_RESET_EVENT		0
21e443b333SAlexander Shishkin #define CI13XXX_CONTROLLER_STOPPED_EVENT	1
22e443b333SAlexander Shishkin 	void	(*notify_event) (struct ci13xxx *udc, unsigned event);
23e443b333SAlexander Shishkin };
24e443b333SAlexander Shishkin 
25e443b333SAlexander Shishkin /* Default offset of capability registers */
26e443b333SAlexander Shishkin #define DEF_CAPOFFSET		0x100
27e443b333SAlexander Shishkin 
28e443b333SAlexander Shishkin #endif
29