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