repo2/firmware_legacy/usb/usbhostslave.h @ 1476
269 | markw | /*
|
|
* OHS900 register declarations and HCD data structures
|
|||
*
|
|||
* Copyright (C) 2005 Steve Fielding
|
|||
* Copyright (C) 2004 Psion Teklogix
|
|||
* Copyright (C) 2004 David Brownell
|
|||
*/
|
|||
// ----------------------- FIXME using direct memory access
|
|||
// base address of OHS900 MWW TODO!!!
|
|||
//#define OHS900_BASE 0x80900c00
|
|||
275 | markw | char volatile * usbhostslave;
|
|
269 | markw | ||
/*
|
|||
* OHS900 has transfer registers, and control registers. In host/master
|
|||
* mode one set of registers is used; in peripheral/slave mode, another.
|
|||
*/
|
|||
/* TRANSFER REGISTERS
|
|||
*/
|
|||
275 | markw | #define OHS900_HOST_TX_CTLREG (4*0x00)
|
|
269 | markw | # define OHS900_HCTLMASK_TRANS_REQ 0x01
|
|
# define OHS900_HCTLMASK_SOF_SYNC 0x02
|
|||
# define OHS900_HCTLMASK_PREAMBLE_EN 0x04
|
|||
# define OHS900_HCTLMASK_ISO_EN 0x08
|
|||
275 | markw | #define OHS900_HRXSTATREG (4*0x0a) /* read */
|
|
269 | markw | # define OHS900_STATMASK_CRC_ERROR 0x01
|
|
# define OHS900_STATMASK_BS_ERROR 0x02
|
|||
# define OHS900_STATMASK_RX_OVF 0x04
|
|||
# define OHS900_STATMASK_RX_TMOUT 0x08
|
|||
# define OHS900_STATMASK_NAK_RXED 0x10
|
|||
# define OHS900_STATMASK_STALL_RXED 0x20
|
|||
# define OHS900_STATMASK_ACK_RXED 0x40
|
|||
# define OHS900_STATMASK_DATA_SEQ 0x80
|
|||
275 | markw | #define OHS900_TXTRANSTYPEREG (4*0x01) /* write */
|
|
269 | markw | # define OHS900_SETUP 0x00
|
|
# define OHS900_IN 0x01
|
|||
# define OHS900_OUT_DATA0 0x02
|
|||
# define OHS900_OUT_DATA1 0x03
|
|||
275 | markw | #define OHS900_TXADDRREG (4*0x04)
|
|
#define OHS900_TXENDPREG (4*0x05)
|
|||
269 | markw | ||
/* CONTROL REGISTERS:
|
|||
*/
|
|||
275 | markw | #define OHS900_SOFENREG (4*0x03 )
|
|
269 | markw | # define OHS900_MASK_SOF_ENA 0x01
|
|
275 | markw | #define OHS900_TXLINECTLREG (4*0x02)
|
|
269 | markw | # define OHS900_TXLCTL_MASK_FORCE 0x4
|
|
# define OHS900_TXLCTL_MASK_LINE_CTRL_BITS 0x7
|
|||
# define OHS900_TXLCTL_MASK_NORMAL 0x00
|
|||
# define OHS900_TXLCTL_MASK_SE0 0x04
|
|||
# define OHS900_TXLCTL_MASK_FS_J 0x06
|
|||
# define OHS900_TXLCTL_MASK_FS_K 0x05
|
|||
# define OHS900_TXLCTL_MASK_LSPD 0x00
|
|||
# define OHS900_TXLCTL_MASK_FSPD 0x18
|
|||
# define OHS900_TXLCTL_MASK_FS_POL 0x08
|
|||
# define OHS900_TXLCTL_MASK_FS_RATE 0x10
|
|||
275 | markw | #define OHS900_IRQ_ENABLE (4*0x09)
|
|
269 | markw | # define OHS900_INTMASK_TRANS_DONE 0x01
|
|
# define OHS900_INTMASK_SOFINTR 0x08
|
|||
# define OHS900_INTMASK_INSRMV 0x04
|
|||
# define OHS900_INTMASK_RESUME_DET 0x02
|
|||
275 | markw | #define OHS900_RXCONNSTATEREG (4*0x0e)
|
|
269 | markw | #define OHS900_DISCONNECT_STATE 0x00
|
|
#define OHS900_LS_CONN_STATE 0x01
|
|||
#define OHS900_FS_CONN_STATE 0x02
|
|||
275 | markw | #define OHS900_SLAVE_ADDRESS (4*0x54)
|
|
269 | markw | ||
275 | markw | #define OHS900_IRQ_STATUS (4*0x08) /* write to ack */
|
|
#define OHS900_HWREVREG (4*0xe1) /* read */
|
|||
269 | markw | ||
275 | markw | #define OHS900_SOFTMRREG (4*0x0F)
|
|
269 | markw | ||
275 | markw | #define OHS900_HOSTSLAVECTLREG (4*0xe0)
|
|
269 | markw | # define OHS900_HSCTLREG_HOST_EN_MASK 0x01
|
|
# define OHS900_HSCTLREG_RESET_CORE 0x02
|
|||
#define OHS900_HS_CTL_INIT OHS900_HSCTLREG_HOST_EN_MASK
|
|||
/* 64-byte FIFO control and status
|
|||
*/
|
|||
#define H_MAXPACKET 64 /* bytes in fifos */
|
|||
275 | markw | #define OHS900_HOST_TXFIFO_DATA (4*0x30)
|
|
#define OHS900_TXFIFOCNTMSBREG (4*0x32)
|
|||
#define OHS900_TXFIFOCNTLSBREG (4*0x33)
|
|||
#define OHS900_TXFIFOCONTROLREG (4*0x34)
|
|||
#define OHS900_HOST_RXFIFO_DATA (4*0x20)
|
|||
#define OHS900_RXFIFOCNTMSBREG (4*0x22)
|
|||
#define OHS900_RXFIFOCNTLSBREG (4*0x23)
|
|||
#define OHS900_RXFIFOCONTROLREG (4*0x24)
|
|||
269 | markw | #define OHS900_FIFO_FORCE_EMPTY 0x01
|
|
275 | markw | #define OHS900_IO_EXTENT (4*0x100)
|