|
@@ -604,10 +604,10 @@ static int start_ch(struct sh_mobile_i2c_data *pd, struct i2c_msg *usr_msg,
|
|
|
|
|
|
if (do_init) {
|
|
if (do_init) {
|
|
/* Initialize channel registers */
|
|
/* Initialize channel registers */
|
|
- iic_wr(pd, ICCR, 0);
|
|
|
|
|
|
+ iic_wr(pd, ICCR, ICCR_SCP);
|
|
|
|
|
|
/* Enable channel and configure rx ack */
|
|
/* Enable channel and configure rx ack */
|
|
- iic_wr(pd, ICCR, ICCR_ICE);
|
|
|
|
|
|
+ iic_wr(pd, ICCR, ICCR_ICE | ICCR_SCP);
|
|
|
|
|
|
/* Set the clock */
|
|
/* Set the clock */
|
|
iic_wr(pd, ICCL, pd->iccl & 0xff);
|
|
iic_wr(pd, ICCL, pd->iccl & 0xff);
|
|
@@ -723,7 +723,7 @@ static int sh_mobile_i2c_xfer(struct i2c_adapter *adapter,
|
|
}
|
|
}
|
|
|
|
|
|
/* Disable channel */
|
|
/* Disable channel */
|
|
- iic_wr(pd, ICCR, 0);
|
|
|
|
|
|
+ iic_wr(pd, ICCR, ICCR_SCP);
|
|
|
|
|
|
/* Disable clock and mark device as idle */
|
|
/* Disable clock and mark device as idle */
|
|
pm_runtime_put_sync(pd->dev);
|
|
pm_runtime_put_sync(pd->dev);
|