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