TWL4030 Add usb PHY support

The twl4030 provides a PHY device for connecting a link device,
like musb, to physical connection.

This change adds the twl4030 usb registers and functions for
initializing the PHY as required by omap3.

Signed-off-by: Tom Rix <Tom.Rix@windriver.com>
This commit is contained in:
Tom Rix
2009-10-31 12:37:40 -05:00
committed by Remy Bohmer
parent 988365a204
commit bffbb2a86d
4 changed files with 362 additions and 15 deletions

View File

@@ -342,21 +342,129 @@
#define TWL4030_KEYPAD_CTRL_SOFT_NRST (1 << 0)
/* USB */
#define TWL4030_USB_FUNC_CTRL (0x04)
#define TWL4030_USB_OPMODE_MASK (3 << 3)
#define TWL4030_USB_XCVRSELECT_MASK (3 << 0)
#define TWL4030_USB_IFC_CTRL (0x07)
#define TWL4030_USB_CARKITMODE (1 << 2)
#define TWL4030_USB_POWER_CTRL (0xAC)
#define TWL4030_USB_OTG_ENAB (1 << 5)
#define TWL4030_USB_PHY_PWR_CTRL (0xFD)
#define TWL4030_USB_PHYPWD (1 << 0)
#define TWL4030_USB_PHY_CLK_CTRL (0xFE)
#define TWL4030_USB_CLOCKGATING_EN (1 << 2)
#define TWL4030_USB_CLK32K_EN (1 << 1)
#define TWL4030_USB_REQ_PHY_DPLL_CLK (1 << 0)
#define TWL4030_USB_PHY_CLK_CTRL_STS (0xFF)
#define TWL4030_USB_PHY_DPLL_CLK (1 << 0)
#define TWL4030_USB_VENDOR_ID_LO 0x00
#define TWL4030_USB_VENDOR_ID_HI 0x01
#define TWL4030_USB_PRODUCT_ID_LO 0x02
#define TWL4030_USB_PRODUCT_ID_HI 0x03
#define TWL4030_USB_FUNC_CTRL 0x04
#define TWL4030_USB_FUNC_CTRL_SET 0x05
#define TWL4030_USB_FUNC_CTRL_CLR 0x06
#define TWL4030_USB_IFC_CTRL 0x07
#define TWL4030_USB_IFC_CTRL_SET 0x08
#define TWL4030_USB_IFC_CTRL_CLR 0x09
#define TWL4030_USB_OTG_CTRL 0x0A
#define TWL4030_USB_OTG_CTRL_SET 0x0B
#define TWL4030_USB_OTG_CTRL_CLR 0x0C
#define TWL4030_USB_USB_INT_EN_RISE 0x0D
#define TWL4030_USB_USB_INT_EN_RISE_SET 0x0E
#define TWL4030_USB_USB_INT_EN_RISE_CLR 0x0F
#define TWL4030_USB_USB_INT_EN_FALL 0x10
#define TWL4030_USB_USB_INT_EN_FALL_SET 0x11
#define TWL4030_USB_USB_INT_EN_FALL_CLR 0x12
#define TWL4030_USB_USB_INT_STS 0x13
#define TWL4030_USB_USB_INT_LATCH 0x14
#define TWL4030_USB_DEBUG 0x15
#define TWL4030_USB_SCRATCH_REG 0x16
#define TWL4030_USB_SCRATCH_REG_SET 0x17
#define TWL4030_USB_SCRATCH_REG_CLR 0x18
#define TWL4030_USB_CARKIT_CTRL 0x19
#define TWL4030_USB_CARKIT_CTRL_SET 0x1A
#define TWL4030_USB_CARKIT_CTRL_CLR 0x1B
#define TWL4030_USB_CARKIT_INT_DELAY 0x1C
#define TWL4030_USB_CARKIT_INT_EN 0x1D
#define TWL4030_USB_CARKIT_INT_EN_SET 0x1E
#define TWL4030_USB_CARKIT_INT_EN_CLR 0x1F
#define TWL4030_USB_CARKIT_INT_STS 0x20
#define TWL4030_USB_CARKIT_INT_LATCH 0x21
#define TWL4030_USB_CARKIT_PLS_CTRL 0x22
#define TWL4030_USB_CARKIT_PLS_CTRL_SET 0x23
#define TWL4030_USB_CARKIT_PLS_CTRL_CLR 0x24
#define TWL4030_USB_TRANS_POS_WIDTH 0x25
#define TWL4030_USB_TRANS_NEG_WIDTH 0x26
#define TWL4030_USB_RCV_PLTY_RECOVERY 0x27
#define TWL4030_USB_MCPC_CTRL 0x30
#define TWL4030_USB_MCPC_CTRL_SET 0x31
#define TWL4030_USB_MCPC_CTRL_CLR 0x32
#define TWL4030_USB_MCPC_IO_CTRL 0x33
#define TWL4030_USB_MCPC_IO_CTRL_SET 0x34
#define TWL4030_USB_MCPC_IO_CTRL_CLR 0x35
#define TWL4030_USB_MCPC_CTRL2 0x36
#define TWL4030_USB_MCPC_CTRL2_SET 0x37
#define TWL4030_USB_MCPC_CTRL2_CLR 0x38
#define TWL4030_USB_OTHER_FUNC_CTRL 0x80
#define TWL4030_USB_OTHER_FUNC_CTRL_SET 0x81
#define TWL4030_USB_OTHER_FUNC_CTRL_CLR 0x82
#define TWL4030_USB_OTHER_IFC_CTRL 0x83
#define TWL4030_USB_OTHER_IFC_CTRL_SET 0x84
#define TWL4030_USB_OTHER_IFC_CTRL_CLR 0x85
#define TWL4030_USB_OTHER_INT_EN_RISE_SET 0x87
#define TWL4030_USB_OTHER_INT_EN_RISE_CLR 0x88
#define TWL4030_USB_OTHER_INT_EN_FALL 0x89
#define TWL4030_USB_OTHER_INT_EN_FALL_SET 0x8A
#define TWL4030_USB_OTHER_INT_EN_FALL_CLR 0x8B
#define TWL4030_USB_OTHER_INT_STS 0x8C
#define TWL4030_USB_OTHER_INT_LATCH 0x8D
#define TWL4030_USB_ID_STATUS 0x96
#define TWL4030_USB_CARKIT_SM_1_INT_EN 0x97
#define TWL4030_USB_CARKIT_SM_1_INT_EN_SET 0x98
#define TWL4030_USB_CARKIT_SM_1_INT_EN_CLR 0x99
#define TWL4030_USB_CARKIT_SM_1_INT_STS 0x9A
#define TWL4030_USB_CARKIT_SM_1_INT_LATCH 0x9B
#define TWL4030_USB_CARKIT_SM_2_INT_EN 0x9C
#define TWL4030_USB_CARKIT_SM_2_INT_EN_SET 0x9D
#define TWL4030_USB_CARKIT_SM_2_INT_EN_CLR 0x9E
#define TWL4030_USB_CARKIT_SM_2_INT_STS 0x9F
#define TWL4030_USB_CARKIT_SM_2_INT_LATCH 0xA0
#define TWL4030_USB_CARKIT_SM_CTRL 0xA1
#define TWL4030_USB_CARKIT_SM_CTRL_SET 0xA2
#define TWL4030_USB_CARKIT_SM_CTRL_CLR 0xA3
#define TWL4030_USB_CARKIT_SM_CMD 0xA4
#define TWL4030_USB_CARKIT_SM_CMD_SET 0xA5
#define TWL4030_USB_CARKIT_SM_CMD_CLR 0xA6
#define TWL4030_USB_CARKIT_SM_CMD_STS 0xA7
#define TWL4030_USB_CARKIT_SM_STATUS 0xA8
#define TWL4030_USB_CARKIT_SM_ERR_STATUS 0xAA
#define TWL4030_USB_CARKIT_SM_CTRL_STATE 0xAB
#define TWL4030_USB_POWER_CTRL 0xAC
#define TWL4030_USB_POWER_CTRL_SET 0xAD
#define TWL4030_USB_POWER_CTRL_CLR 0xAE
#define TWL4030_USB_OTHER_IFC_CTRL2 0xAF
#define TWL4030_USB_OTHER_IFC_CTRL2_SET 0xB0
#define TWL4030_USB_OTHER_IFC_CTRL2_CLR 0xB1
#define TWL4030_USB_REG_CTRL_EN 0xB2
#define TWL4030_USB_REG_CTRL_EN_SET 0xB3
#define TWL4030_USB_REG_CTRL_EN_CLR 0xB4
#define TWL4030_USB_REG_CTRL_ERROR 0xB5
#define TWL4030_USB_OTHER_FUNC_CTRL2 0xB8
#define TWL4030_USB_OTHER_FUNC_CTRL2_SET 0xB9
#define TWL4030_USB_OTHER_FUNC_CTRL2_CLR 0xBA
#define TWL4030_USB_CARKIT_ANA_CTRL 0xBB
#define TWL4030_USB_CARKIT_ANA_CTRL_SET 0xBC
#define TWL4030_USB_CARKIT_ANA_CTRL_CLR 0xBD
#define TWL4030_USB_VBUS_DEBOUNCE 0xC0
#define TWL4030_USB_ID_DEBOUNCE 0xC1
#define TWL4030_USB_TPH_DP_CON_MIN 0xC2
#define TWL4030_USB_TPH_DP_CON_MAX 0xC3
#define TWL4030_USB_TCR_DP_CON_MIN 0xC4
#define TWL4030_USB_TCR_DP_CON_MAX 0xC5
#define TWL4030_USB_TPH_DP_PD_SHORT 0xC6
#define TWL4030_USB_TPH_CMD_DLY 0xC7
#define TWL4030_USB_TPH_DET_RST 0xC8
#define TWL4030_USB_TPH_AUD_BIAS 0xC9
#define TWL4030_USB_TCR_UART_DET_MIN 0xCA
#define TWL4030_USB_TCR_UART_DET_MAX 0xCB
#define TWL4030_USB_TPH_ID_INT_PW 0xCD
#define TWL4030_USB_TACC_ID_INT_WAIT 0xCE
#define TWL4030_USB_TACC_ID_INT_PW 0xCF
#define TWL4030_USB_TPH_CMD_WAIT 0xD0
#define TWL4030_USB_TPH_ACK_WAIT 0xD1
#define TWL4030_USB_TPH_DP_DISC_DET 0xD2
#define TWL4030_USB_VBAT_TIMER 0xD3
#define TWL4030_USB_CARKIT_4W_DEBUG 0xE0
#define TWL4030_USB_CARKIT_5W_DEBUG 0xE1
#define TWL4030_USB_PHY_PWR_CTRL 0xFD
#define TWL4030_USB_PHY_CLK_CTRL 0xFE
#define TWL4030_USB_PHY_CLK_CTRL_STS 0xFF
/*
* Convience functions to read and write from TWL4030
@@ -398,4 +506,9 @@ void twl4030_power_mmc_init(void);
*/
void twl4030_led_init(void);
/*
* USB
*/
int twl4030_usb_ulpi_init(void);
#endif /* TWL4030_H */