[ARM] 3827/1: iop3xx: add common gpio module
Implement the gpio_line_{config,get,set} API for iop3xx. Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
committed by
Russell King
parent
610300e8f4
commit
72edd84a6b
@ -82,14 +82,16 @@ iop3xx_i2c_enable(struct i2c_algo_iop3xx_data *iop3xx_adap)
|
||||
|
||||
/*
|
||||
* Every time unit enable is asserted, GPOD needs to be cleared
|
||||
* on IOP32X to avoid data corruption on the bus.
|
||||
* on IOP3XX to avoid data corruption on the bus.
|
||||
*/
|
||||
#ifdef CONFIG_ARCH_IOP32X
|
||||
#define IOP321_GPOD_I2C0 0x00c0 /* clear these bits to enable ch0 */
|
||||
#define IOP321_GPOD_I2C1 0x0030 /* clear these bits to enable ch1 */
|
||||
|
||||
*IOP321_GPOD &= (iop3xx_adap->id == 0) ? ~IOP321_GPOD_I2C0 :
|
||||
~IOP321_GPOD_I2C1;
|
||||
#ifdef CONFIG_PLAT_IOP
|
||||
if (iop3xx_adap->id == 0) {
|
||||
gpio_line_set(IOP3XX_GPIO_LINE(7), GPIO_LOW);
|
||||
gpio_line_set(IOP3XX_GPIO_LINE(6), GPIO_LOW);
|
||||
} else {
|
||||
gpio_line_set(IOP3XX_GPIO_LINE(5), GPIO_LOW);
|
||||
gpio_line_set(IOP3XX_GPIO_LINE(4), GPIO_LOW);
|
||||
}
|
||||
#endif
|
||||
/* NB SR bits not same position as CR IE bits :-( */
|
||||
iop3xx_adap->SR_enabled =
|
||||
|
Reference in New Issue
Block a user