diff options
| -rw-r--r-- | drivers/usb/host/ohci-nxp.c | 58 |
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 | ||
| 152 | static 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 | |||
| 161 | static void isp1301_configure_pnx4008(void) | 152 | static 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 | ||
| 186 | static void isp1301_configure_lpc32xx(void) | 184 | static void isp1301_configure_lpc32xx(void) |
| @@ -242,13 +240,15 @@ static void isp1301_configure(void) | |||
| 242 | 240 | ||
| 243 | static inline void isp1301_vbus_on(void) | 241 | static 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 | ||
| 248 | static inline void isp1301_vbus_off(void) | 247 | static 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 | ||
| 254 | static void nxp_start_hc(void) | 254 | static void nxp_start_hc(void) |
