aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/usb/host/ohci-nxp.c58
1 files changed, 29 insertions, 29 deletions
diff --git a/drivers/usb/host/ohci-nxp.c b/drivers/usb/host/ohci-nxp.c
index e7cc7b633214..6618de1d881d 100644
--- a/drivers/usb/host/ohci-nxp.c
+++ b/drivers/usb/host/ohci-nxp.c
@@ -149,38 +149,36 @@ static struct i2c_driver isp1301_driver = {
149 .id_table = isp1301_id, 149 .id_table = isp1301_id,
150}; 150};
151 151
152static void i2c_write(u8 buf, u8 subaddr)
153{
154 char tmpbuf[2];
155
156 tmpbuf[0] = subaddr; /*register number */
157 tmpbuf[1] = buf; /*register data */
158 i2c_master_send(isp1301_i2c_client, &tmpbuf[0], 2);
159}
160
161static void isp1301_configure_pnx4008(void) 152static void isp1301_configure_pnx4008(void)
162{ 153{
163 /* PNX4008 only supports DAT_SE0 USB mode */ 154 /* PNX4008 only supports DAT_SE0 USB mode */
164 /* PNX4008 R2A requires setting the MAX603 to output 3.6V */ 155 /* PNX4008 R2A requires setting the MAX603 to output 3.6V */
165 /* Power up externel charge-pump */ 156 /* Power up externel charge-pump */
166 157
167 i2c_write(MC1_DAT_SE0 | MC1_SPEED_REG, ISP1301_I2C_MODE_CONTROL_1); 158 i2c_smbus_write_byte_data(isp1301_i2c_client,
168 i2c_write(~(MC1_DAT_SE0 | MC1_SPEED_REG), 159 ISP1301_I2C_MODE_CONTROL_1, MC1_DAT_SE0 | MC1_SPEED_REG);
169 ISP1301_I2C_MODE_CONTROL_1 | ISP1301_I2C_REG_CLEAR_ADDR); 160 i2c_smbus_write_byte_data(isp1301_i2c_client,
170 i2c_write(MC2_BI_DI | MC2_PSW_EN | MC2_SPD_SUSP_CTRL, 161 ISP1301_I2C_MODE_CONTROL_1 | ISP1301_I2C_REG_CLEAR_ADDR,
171 ISP1301_I2C_MODE_CONTROL_2); 162 ~(MC1_DAT_SE0 | MC1_SPEED_REG));
172 i2c_write(~(MC2_BI_DI | MC2_PSW_EN | MC2_SPD_SUSP_CTRL), 163 i2c_smbus_write_byte_data(isp1301_i2c_client,
173 ISP1301_I2C_MODE_CONTROL_2 | ISP1301_I2C_REG_CLEAR_ADDR); 164 ISP1301_I2C_MODE_CONTROL_2,
174 i2c_write(OTG1_DM_PULLDOWN | OTG1_DP_PULLDOWN, 165 MC2_BI_DI | MC2_PSW_EN | MC2_SPD_SUSP_CTRL);
175 ISP1301_I2C_OTG_CONTROL_1); 166 i2c_smbus_write_byte_data(isp1301_i2c_client,
176 i2c_write(~(OTG1_DM_PULLDOWN | OTG1_DP_PULLDOWN), 167 ISP1301_I2C_MODE_CONTROL_2 | ISP1301_I2C_REG_CLEAR_ADDR,
177 ISP1301_I2C_OTG_CONTROL_1 | ISP1301_I2C_REG_CLEAR_ADDR); 168 ~(MC2_BI_DI | MC2_PSW_EN | MC2_SPD_SUSP_CTRL));
178 i2c_write(0xFF, 169 i2c_smbus_write_byte_data(isp1301_i2c_client,
179 ISP1301_I2C_INTERRUPT_LATCH | ISP1301_I2C_REG_CLEAR_ADDR); 170 ISP1301_I2C_OTG_CONTROL_1, OTG1_DM_PULLDOWN | OTG1_DP_PULLDOWN);
180 i2c_write(0xFF, 171 i2c_smbus_write_byte_data(isp1301_i2c_client,
181 ISP1301_I2C_INTERRUPT_FALLING | ISP1301_I2C_REG_CLEAR_ADDR); 172 ISP1301_I2C_OTG_CONTROL_1 | ISP1301_I2C_REG_CLEAR_ADDR,
182 i2c_write(0xFF, 173 ~(OTG1_DM_PULLDOWN | OTG1_DP_PULLDOWN));
183 ISP1301_I2C_INTERRUPT_RISING | ISP1301_I2C_REG_CLEAR_ADDR); 174 i2c_smbus_write_byte_data(isp1301_i2c_client,
175 ISP1301_I2C_INTERRUPT_LATCH | ISP1301_I2C_REG_CLEAR_ADDR, 0xFF);
176 i2c_smbus_write_byte_data(isp1301_i2c_client,
177 ISP1301_I2C_INTERRUPT_FALLING | ISP1301_I2C_REG_CLEAR_ADDR,
178 0xFF);
179 i2c_smbus_write_byte_data(isp1301_i2c_client,
180 ISP1301_I2C_INTERRUPT_RISING | ISP1301_I2C_REG_CLEAR_ADDR,
181 0xFF);
184} 182}
185 183
186static void isp1301_configure_lpc32xx(void) 184static void isp1301_configure_lpc32xx(void)
@@ -242,13 +240,15 @@ static void isp1301_configure(void)
242 240
243static inline void isp1301_vbus_on(void) 241static inline void isp1301_vbus_on(void)
244{ 242{
245 i2c_write(OTG1_VBUS_DRV, ISP1301_I2C_OTG_CONTROL_1); 243 i2c_smbus_write_byte_data(isp1301_i2c_client, ISP1301_I2C_OTG_CONTROL_1,
244 OTG1_VBUS_DRV);
246} 245}
247 246
248static inline void isp1301_vbus_off(void) 247static inline void isp1301_vbus_off(void)
249{ 248{
250 i2c_write(OTG1_VBUS_DRV, 249 i2c_smbus_write_byte_data(isp1301_i2c_client,
251 ISP1301_I2C_OTG_CONTROL_1 | ISP1301_I2C_REG_CLEAR_ADDR); 250 ISP1301_I2C_OTG_CONTROL_1 | ISP1301_I2C_REG_CLEAR_ADDR,
251 OTG1_VBUS_DRV);
252} 252}
253 253
254static void nxp_start_hc(void) 254static void nxp_start_hc(void)