1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /* arch/arm/plat-samsung/include/plat/usb-control.h
3  *
4  * Copyright (c) 2004 Simtec Electronics
5  *	Ben Dooks <ben@simtec.co.uk>
6  *
7  * S3C - USB host port information
8 */
9 
10 #ifndef __ASM_ARCH_USBCONTROL_H
11 #define __ASM_ARCH_USBCONTROL_H
12 
13 #define S3C_HCDFLG_USED	(1)
14 
15 struct s3c2410_hcd_port {
16 	unsigned char	flags;
17 	unsigned char	power;
18 	unsigned char	oc_status;
19 	unsigned char	oc_changed;
20 };
21 
22 struct s3c2410_hcd_info {
23 	struct usb_hcd		*hcd;
24 	struct s3c2410_hcd_port	port[2];
25 
26 	void		(*power_control)(int port, int to);
27 	void		(*enable_oc)(struct s3c2410_hcd_info *, int on);
28 	void		(*report_oc)(struct s3c2410_hcd_info *, int ports);
29 };
30 
s3c2410_usb_report_oc(struct s3c2410_hcd_info * info,int ports)31 static inline void s3c2410_usb_report_oc(struct s3c2410_hcd_info *info, int ports)
32 {
33 	if (info->report_oc != NULL) {
34 		(info->report_oc)(info, ports);
35 	}
36 }
37 
38 extern void s3c_ohci_set_platdata(struct s3c2410_hcd_info *info);
39 
40 #endif /*__ASM_ARCH_USBCONTROL_H */
41