Skip to content

Commit 92a6e6b

Browse files
Heikki Krogerusgregkh
authored andcommitted
usb: otg: twl4030: use the global ULPI register definitions
Rely on the global ULPI register definitions Signed-off-by: Heikki Krogerus <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent fc567f0 commit 92a6e6b

File tree

1 file changed

+8
-100
lines changed

1 file changed

+8
-100
lines changed

drivers/usb/otg/twl4030-usb.c

Lines changed: 8 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#include <linux/io.h>
3434
#include <linux/delay.h>
3535
#include <linux/usb/otg.h>
36+
#include <linux/usb/ulpi.h>
3637
#include <linux/i2c/twl.h>
3738
#include <linux/regulator/consumer.h>
3839
#include <linux/err.h>
@@ -41,81 +42,7 @@
4142

4243
/* Register defines */
4344

44-
#define VENDOR_ID_LO 0x00
45-
#define VENDOR_ID_HI 0x01
46-
#define PRODUCT_ID_LO 0x02
47-
#define PRODUCT_ID_HI 0x03
48-
49-
#define FUNC_CTRL 0x04
50-
#define FUNC_CTRL_SET 0x05
51-
#define FUNC_CTRL_CLR 0x06
52-
#define FUNC_CTRL_SUSPENDM (1 << 6)
53-
#define FUNC_CTRL_RESET (1 << 5)
54-
#define FUNC_CTRL_OPMODE_MASK (3 << 3) /* bits 3 and 4 */
55-
#define FUNC_CTRL_OPMODE_NORMAL (0 << 3)
56-
#define FUNC_CTRL_OPMODE_NONDRIVING (1 << 3)
57-
#define FUNC_CTRL_OPMODE_DISABLE_BIT_NRZI (2 << 3)
58-
#define FUNC_CTRL_TERMSELECT (1 << 2)
59-
#define FUNC_CTRL_XCVRSELECT_MASK (3 << 0) /* bits 0 and 1 */
60-
#define FUNC_CTRL_XCVRSELECT_HS (0 << 0)
61-
#define FUNC_CTRL_XCVRSELECT_FS (1 << 0)
62-
#define FUNC_CTRL_XCVRSELECT_LS (2 << 0)
63-
#define FUNC_CTRL_XCVRSELECT_FS4LS (3 << 0)
64-
65-
#define IFC_CTRL 0x07
66-
#define IFC_CTRL_SET 0x08
67-
#define IFC_CTRL_CLR 0x09
68-
#define IFC_CTRL_INTERFACE_PROTECT_DISABLE (1 << 7)
69-
#define IFC_CTRL_AUTORESUME (1 << 4)
70-
#define IFC_CTRL_CLOCKSUSPENDM (1 << 3)
71-
#define IFC_CTRL_CARKITMODE (1 << 2)
72-
#define IFC_CTRL_FSLSSERIALMODE_3PIN (1 << 1)
73-
74-
#define TWL4030_OTG_CTRL 0x0A
75-
#define TWL4030_OTG_CTRL_SET 0x0B
76-
#define TWL4030_OTG_CTRL_CLR 0x0C
77-
#define TWL4030_OTG_CTRL_DRVVBUS (1 << 5)
78-
#define TWL4030_OTG_CTRL_CHRGVBUS (1 << 4)
79-
#define TWL4030_OTG_CTRL_DISCHRGVBUS (1 << 3)
80-
#define TWL4030_OTG_CTRL_DMPULLDOWN (1 << 2)
81-
#define TWL4030_OTG_CTRL_DPPULLDOWN (1 << 1)
82-
#define TWL4030_OTG_CTRL_IDPULLUP (1 << 0)
83-
84-
#define USB_INT_EN_RISE 0x0D
85-
#define USB_INT_EN_RISE_SET 0x0E
86-
#define USB_INT_EN_RISE_CLR 0x0F
87-
#define USB_INT_EN_FALL 0x10
88-
#define USB_INT_EN_FALL_SET 0x11
89-
#define USB_INT_EN_FALL_CLR 0x12
90-
#define USB_INT_STS 0x13
91-
#define USB_INT_LATCH 0x14
92-
#define USB_INT_IDGND (1 << 4)
93-
#define USB_INT_SESSEND (1 << 3)
94-
#define USB_INT_SESSVALID (1 << 2)
95-
#define USB_INT_VBUSVALID (1 << 1)
96-
#define USB_INT_HOSTDISCONNECT (1 << 0)
97-
98-
#define CARKIT_CTRL 0x19
99-
#define CARKIT_CTRL_SET 0x1A
100-
#define CARKIT_CTRL_CLR 0x1B
101-
#define CARKIT_CTRL_MICEN (1 << 6)
102-
#define CARKIT_CTRL_SPKRIGHTEN (1 << 5)
103-
#define CARKIT_CTRL_SPKLEFTEN (1 << 4)
104-
#define CARKIT_CTRL_RXDEN (1 << 3)
105-
#define CARKIT_CTRL_TXDEN (1 << 2)
106-
#define CARKIT_CTRL_IDGNDDRV (1 << 1)
107-
#define CARKIT_CTRL_CARKITPWR (1 << 0)
108-
#define CARKIT_PLS_CTRL 0x22
109-
#define CARKIT_PLS_CTRL_SET 0x23
110-
#define CARKIT_PLS_CTRL_CLR 0x24
111-
#define CARKIT_PLS_CTRL_SPKRRIGHT_BIASEN (1 << 3)
112-
#define CARKIT_PLS_CTRL_SPKRLEFT_BIASEN (1 << 2)
113-
#define CARKIT_PLS_CTRL_RXPLSEN (1 << 1)
114-
#define CARKIT_PLS_CTRL_TXPLSEN (1 << 0)
115-
11645
#define MCPC_CTRL 0x30
117-
#define MCPC_CTRL_SET 0x31
118-
#define MCPC_CTRL_CLR 0x32
11946
#define MCPC_CTRL_RTSOL (1 << 7)
12047
#define MCPC_CTRL_EXTSWR (1 << 6)
12148
#define MCPC_CTRL_EXTSWC (1 << 5)
@@ -125,8 +52,6 @@
12552
#define MCPC_CTRL_HS_UART (1 << 0)
12653

12754
#define MCPC_IO_CTRL 0x33
128-
#define MCPC_IO_CTRL_SET 0x34
129-
#define MCPC_IO_CTRL_CLR 0x35
13055
#define MCPC_IO_CTRL_MICBIASEN (1 << 5)
13156
#define MCPC_IO_CTRL_CTS_NPU (1 << 4)
13257
#define MCPC_IO_CTRL_RXD_PU (1 << 3)
@@ -135,19 +60,13 @@
13560
#define MCPC_IO_CTRL_RTSTYP (1 << 0)
13661

13762
#define MCPC_CTRL2 0x36
138-
#define MCPC_CTRL2_SET 0x37
139-
#define MCPC_CTRL2_CLR 0x38
14063
#define MCPC_CTRL2_MCPC_CK_EN (1 << 0)
14164

14265
#define OTHER_FUNC_CTRL 0x80
143-
#define OTHER_FUNC_CTRL_SET 0x81
144-
#define OTHER_FUNC_CTRL_CLR 0x82
14566
#define OTHER_FUNC_CTRL_BDIS_ACON_EN (1 << 4)
14667
#define OTHER_FUNC_CTRL_FIVEWIRE_MODE (1 << 2)
14768

14869
#define OTHER_IFC_CTRL 0x83
149-
#define OTHER_IFC_CTRL_SET 0x84
150-
#define OTHER_IFC_CTRL_CLR 0x85
15170
#define OTHER_IFC_CTRL_OE_INT_EN (1 << 6)
15271
#define OTHER_IFC_CTRL_CEA2011_MODE (1 << 5)
15372
#define OTHER_IFC_CTRL_FSLSSERIALMODE_4PIN (1 << 4)
@@ -156,11 +75,7 @@
15675
#define OTHER_IFC_CTRL_ALT_INT_REROUTE (1 << 0)
15776

15877
#define OTHER_INT_EN_RISE 0x86
159-
#define OTHER_INT_EN_RISE_SET 0x87
160-
#define OTHER_INT_EN_RISE_CLR 0x88
16178
#define OTHER_INT_EN_FALL 0x89
162-
#define OTHER_INT_EN_FALL_SET 0x8A
163-
#define OTHER_INT_EN_FALL_CLR 0x8B
16479
#define OTHER_INT_STS 0x8C
16580
#define OTHER_INT_LATCH 0x8D
16681
#define OTHER_INT_VB_SESS_VLD (1 << 7)
@@ -178,13 +93,9 @@
17893
#define ID_RES_GND (1 << 0)
17994

18095
#define POWER_CTRL 0xAC
181-
#define POWER_CTRL_SET 0xAD
182-
#define POWER_CTRL_CLR 0xAE
18396
#define POWER_CTRL_OTG_ENAB (1 << 5)
18497

18598
#define OTHER_IFC_CTRL2 0xAF
186-
#define OTHER_IFC_CTRL2_SET 0xB0
187-
#define OTHER_IFC_CTRL2_CLR 0xB1
18899
#define OTHER_IFC_CTRL2_ULPI_STP_LOW (1 << 4)
189100
#define OTHER_IFC_CTRL2_ULPI_TXEN_POL (1 << 3)
190101
#define OTHER_IFC_CTRL2_ULPI_4PIN_2430 (1 << 2)
@@ -193,14 +104,10 @@
193104
#define OTHER_IFC_CTRL2_USB_INT_OUTSEL_INT2N (1 << 0)
194105

195106
#define REG_CTRL_EN 0xB2
196-
#define REG_CTRL_EN_SET 0xB3
197-
#define REG_CTRL_EN_CLR 0xB4
198107
#define REG_CTRL_ERROR 0xB5
199108
#define ULPI_I2C_CONFLICT_INTEN (1 << 0)
200109

201110
#define OTHER_FUNC_CTRL2 0xB8
202-
#define OTHER_FUNC_CTRL2_SET 0xB9
203-
#define OTHER_FUNC_CTRL2_CLR 0xBA
204111
#define OTHER_FUNC_CTRL2_VBAT_TIMER_EN (1 << 0)
205112

206113
/* following registers do not have separate _clr and _set registers */
@@ -328,13 +235,13 @@ static inline int twl4030_usb_read(struct twl4030_usb *twl, u8 address)
328235
static inline int
329236
twl4030_usb_set_bits(struct twl4030_usb *twl, u8 reg, u8 bits)
330237
{
331-
return twl4030_usb_write(twl, reg + 1, bits);
238+
return twl4030_usb_write(twl, ULPI_SET(reg), bits);
332239
}
333240

334241
static inline int
335242
twl4030_usb_clear_bits(struct twl4030_usb *twl, u8 reg, u8 bits)
336243
{
337-
return twl4030_usb_write(twl, reg + 2, bits);
244+
return twl4030_usb_write(twl, ULPI_CLR(reg), bits);
338245
}
339246

340247
/*-------------------------------------------------------------------------*/
@@ -393,11 +300,12 @@ static void twl4030_usb_set_mode(struct twl4030_usb *twl, int mode)
393300

394301
switch (mode) {
395302
case T2_USB_MODE_ULPI:
396-
twl4030_usb_clear_bits(twl, IFC_CTRL, IFC_CTRL_CARKITMODE);
303+
twl4030_usb_clear_bits(twl, ULPI_IFC_CTRL,
304+
ULPI_IFC_CTRL_CARKITMODE);
397305
twl4030_usb_set_bits(twl, POWER_CTRL, POWER_CTRL_OTG_ENAB);
398-
twl4030_usb_clear_bits(twl, FUNC_CTRL,
399-
FUNC_CTRL_XCVRSELECT_MASK |
400-
FUNC_CTRL_OPMODE_MASK);
306+
twl4030_usb_clear_bits(twl, ULPI_FUNC_CTRL,
307+
ULPI_FUNC_CTRL_XCVRSEL_MASK |
308+
ULPI_FUNC_CTRL_OPMODE_MASK);
401309
break;
402310
case -1:
403311
/* FIXME: power on defaults */

0 commit comments

Comments
 (0)