lin
2025-06-05 ed3dd9d3e7519a82bb871d5eedb24a2fa0c91f47
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
/*
 * USB related definitions
 *
 * Copyright (C) 2009 MontaVista Software, Inc. <source@mvista.com>
 *
 * This file is licensed under the terms of the GNU General Public License
 * version 2. This program is licensed "as is" without any warranty of any
 * kind, whether express or implied.
 */
 
#ifndef __ASM_ARCH_USB_H
#define __ASM_ARCH_USB_H
 
/* DA8xx CFGCHIP2 (USB 2.0 PHY Control) register bits */
#define CFGCHIP2_PHYCLKGD    (1 << 17)
#define CFGCHIP2_VBUSSENSE    (1 << 16)
#define CFGCHIP2_RESET        (1 << 15)
#define CFGCHIP2_OTGMODE    (3 << 13)
#define CFGCHIP2_NO_OVERRIDE    (0 << 13)
#define CFGCHIP2_FORCE_HOST    (1 << 13)
#define CFGCHIP2_FORCE_DEVICE     (2 << 13)
#define CFGCHIP2_FORCE_HOST_VBUS_LOW (3 << 13)
#define CFGCHIP2_USB1PHYCLKMUX    (1 << 12)
#define CFGCHIP2_USB2PHYCLKMUX    (1 << 11)
#define CFGCHIP2_PHYPWRDN    (1 << 10)
#define CFGCHIP2_OTGPWRDN    (1 << 9)
#define CFGCHIP2_DATPOL     (1 << 8)
#define CFGCHIP2_USB1SUSPENDM    (1 << 7)
#define CFGCHIP2_PHY_PLLON    (1 << 6)    /* override PLL suspend */
#define CFGCHIP2_SESENDEN    (1 << 5)    /* Vsess_end comparator */
#define CFGCHIP2_VBDTCTEN    (1 << 4)    /* Vbus comparator */
#define CFGCHIP2_REFFREQ    (0xf << 0)
#define CFGCHIP2_REFFREQ_12MHZ    (1 << 0)
#define CFGCHIP2_REFFREQ_24MHZ    (2 << 0)
#define CFGCHIP2_REFFREQ_48MHZ    (3 << 0)
 
struct    da8xx_ohci_root_hub;
 
typedef void (*da8xx_ocic_handler_t)(struct da8xx_ohci_root_hub *hub,
                    unsigned port);
 
/* Passed as the platform data to the OHCI driver */
struct    da8xx_ohci_root_hub {
   /* Switch the port power on/off */
   int    (*set_power)(unsigned port, int on);
   /* Read the port power status */
   int    (*get_power)(unsigned port);
   /* Read the port over-current indicator */
   int    (*get_oci)(unsigned port);
   /* Over-current indicator change notification (pass NULL to disable) */
   int    (*ocic_notify)(da8xx_ocic_handler_t handler);
 
   /* Time from power on to power good (in 2 ms units) */
   u8    potpgt;
};
 
void davinci_setup_usb(unsigned mA, unsigned potpgt_ms);
 
#endif    /* ifndef __ASM_ARCH_USB_H */