2 * board initialization code should put one of these into dev->platform_data
3 * and place the isp1362 onto platform_bus.
6 #ifndef __LINUX_USB_ISP1362_H__
7 #define __LINUX_USB_ISP1362_H__
9 struct isp1362_platform_data
{
10 /* Enable internal pulldown resistors on downstream ports */
12 /* Clock cannot be stopped */
13 unsigned clknotstop
:1;
14 /* On-chip overcurrent protection */
16 /* INT output polarity */
17 unsigned int_act_high
:1;
18 /* INT edge or level triggered */
19 unsigned int_edge_triggered
:1;
20 /* DREQ output polarity */
21 unsigned dreq_act_high
:1;
22 /* DACK input polarity */
23 unsigned dack_act_high
:1;
24 /* chip can be resumed via H_WAKEUP pin */
25 unsigned remote_wakeup_connected
:1;
26 /* Switch or not to switch (keep always powered) */
27 unsigned no_power_switching
:1;
28 /* Ganged port power switching (0) or individual port power switching (1) */
29 unsigned power_switching_mode
:1;
30 /* Given port_power, msec/2 after power on till power good */
32 /* Hardware reset set/clear */
33 void (*reset
) (struct device
*dev
, int set
);
34 /* Clock start/stop */
35 void (*clock
) (struct device
*dev
, int start
);
36 /* Inter-io delay (ns). The chip is picky about access timings; it
38 * 110ns delay between consecutive accesses to DATA_REG,
39 * 300ns delay between access to ADDR_REG and DATA_REG (registers)
40 * 462ns delay between access to ADDR_REG and DATA_REG (buffer memory)
41 * WE MUST NOT be activated during these intervals (even without CS!)
43 void (*delay
) (struct device
*dev
, unsigned int delay
);