diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/i2c/busses/i2c-iop3xx.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/i2c/busses/i2c-iop3xx.c b/drivers/i2c/busses/i2c-iop3xx.c index 035417f5a003..a2d0cc3a7785 100644 --- a/drivers/i2c/busses/i2c-iop3xx.c +++ b/drivers/i2c/busses/i2c-iop3xx.c | |||
@@ -82,14 +82,16 @@ iop3xx_i2c_enable(struct i2c_algo_iop3xx_data *iop3xx_adap) | |||
82 | 82 | ||
83 | /* | 83 | /* |
84 | * Every time unit enable is asserted, GPOD needs to be cleared | 84 | * Every time unit enable is asserted, GPOD needs to be cleared |
85 | * on IOP32X to avoid data corruption on the bus. | 85 | * on IOP3XX to avoid data corruption on the bus. |
86 | */ | 86 | */ |
87 | #ifdef CONFIG_ARCH_IOP32X | 87 | #ifdef CONFIG_PLAT_IOP |
88 | #define IOP321_GPOD_I2C0 0x00c0 /* clear these bits to enable ch0 */ | 88 | if (iop3xx_adap->id == 0) { |
89 | #define IOP321_GPOD_I2C1 0x0030 /* clear these bits to enable ch1 */ | 89 | gpio_line_set(IOP3XX_GPIO_LINE(7), GPIO_LOW); |
90 | 90 | gpio_line_set(IOP3XX_GPIO_LINE(6), GPIO_LOW); | |
91 | *IOP321_GPOD &= (iop3xx_adap->id == 0) ? ~IOP321_GPOD_I2C0 : | 91 | } else { |
92 | ~IOP321_GPOD_I2C1; | 92 | gpio_line_set(IOP3XX_GPIO_LINE(5), GPIO_LOW); |
93 | gpio_line_set(IOP3XX_GPIO_LINE(4), GPIO_LOW); | ||
94 | } | ||
93 | #endif | 95 | #endif |
94 | /* NB SR bits not same position as CR IE bits :-( */ | 96 | /* NB SR bits not same position as CR IE bits :-( */ |
95 | iop3xx_adap->SR_enabled = | 97 | iop3xx_adap->SR_enabled = |