/* i2c_init_board - reset i2c bus. When the board is powercycled during a bus transfer it might hang; for details see doc/I2C_Edge_Conditions. The Innokom board has GPIO70 connected to SCLK which can be toggled until all chips think that their current cycles are finished.  */
int i2c_init_board(void)
/* i2c_init_board - reset i2c bus. When the board is powercycled during a bus transfer it might hang; for details see doc/I2C_Edge_Conditions. The Innokom board has GPIO70 connected to SCLK which can be toggled until all chips think that their current cycles are finished.  */
int i2c_init_board(void)
{
	int i, icr;
	icr = ICR; ICR &= ~(ICR_SCLE | ICR_IUE);
	GPCR(70) = GPIO_bit(70);
	for (i = 0; i < 20; i++) {
		GPDR(70) |= GPIO_bit(70);
		udelay(10);
		GPDR(70) &= ~GPIO_bit(70);
		udelay(10);
	}
	ICR = icr;
	return 0;
}