[ARM] 3026/1: S3C2410 - avoid possible overflow in pll calculations
[linux-2.6] / include / asm-arm / arch-s3c2410 / usb-control.h
1 /* linux/include/asm-arm/arch-s3c2410/usb-control.h
2  *
3  * (c) 2004 Simtec Electronics
4  *  Ben Dooks <ben@simtec.co.uk>
5  *
6  * S3C2410 - usb port information
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License version 2 as
10  * published by the Free Software Foundation.
11  *
12  * Changelog:
13  *  11-Sep-2004 BJD  Created file
14  *  21-Sep-2004 BJD  Updated port info
15  *  09-Aug-2005 BJD  Renamed s3c2410_report_oc s3c2410_usb_report_oc
16 */
17
18 #ifndef __ASM_ARCH_USBCONTROL_H
19 #define __ASM_ARCH_USBCONTROL_H "include/asm-arm/arch-s3c2410/usb-control.h"
20
21 #define S3C_HCDFLG_USED (1)
22
23 struct s3c2410_hcd_port {
24         unsigned char   flags;
25         unsigned char   power;
26         unsigned char   oc_status;
27         unsigned char   oc_changed;
28 };
29
30 struct s3c2410_hcd_info {
31         struct usb_hcd          *hcd;
32         struct s3c2410_hcd_port port[2];
33
34         void            (*power_control)(int port, int to);
35         void            (*enable_oc)(struct s3c2410_hcd_info *, int on);
36         void            (*report_oc)(struct s3c2410_hcd_info *, int ports);
37 };
38
39 static void inline s3c2410_usb_report_oc(struct s3c2410_hcd_info *info, int ports)
40 {
41         if (info->report_oc != NULL) {
42                 (info->report_oc)(info, ports);
43         }
44 }
45
46 #endif /*__ASM_ARCH_USBCONTROL_H */