097b53348f
Direct access to USB host controller registers is considered to be not portable, and is usually a bad sign for poorly abstracted interface. Introduce .flags and .power_on_delay to "struct pxaohci_platform_data" so that most platforms don't bother to write their own .init/.exit() sequences. Signed-off-by: Eric Miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
36 lines
886 B
C
36 lines
886 B
C
#ifndef ASMARM_ARCH_OHCI_H
|
|
#define ASMARM_ARCH_OHCI_H
|
|
|
|
struct device;
|
|
|
|
struct pxaohci_platform_data {
|
|
int (*init)(struct device *);
|
|
void (*exit)(struct device *);
|
|
|
|
unsigned long flags;
|
|
#define ENABLE_PORT1 (1 << 0)
|
|
#define ENABLE_PORT2 (1 << 1)
|
|
#define ENABLE_PORT3 (1 << 2)
|
|
#define ENABLE_PORT_ALL (ENABLE_PORT1 | ENABLE_PORT2 | ENABLE_PORT3)
|
|
|
|
#define POWER_SENSE_LOW (1 << 3)
|
|
#define POWER_CONTROL_LOW (1 << 4)
|
|
#define NO_OC_PROTECTION (1 << 5)
|
|
#define OC_MODE_GLOBAL (0 << 6)
|
|
#define OC_MODE_PERPORT (1 << 6)
|
|
|
|
int power_on_delay; /* Power On to Power Good time - in ms
|
|
* HCD must wait for this duration before
|
|
* accessing a powered on port
|
|
*/
|
|
int port_mode;
|
|
#define PMM_NPS_MODE 1
|
|
#define PMM_GLOBAL_MODE 2
|
|
#define PMM_PERPORT_MODE 3
|
|
|
|
int power_budget;
|
|
};
|
|
|
|
extern void pxa_set_ohci_info(struct pxaohci_platform_data *info);
|
|
|
|
#endif
|