diff options
Diffstat (limited to 'drivers/i2c/mxc_i2c.c')
| -rw-r--r-- | drivers/i2c/mxc_i2c.c | 6 | 
1 files changed, 6 insertions, 0 deletions
| diff --git a/drivers/i2c/mxc_i2c.c b/drivers/i2c/mxc_i2c.c index eedad065f..8e10fbb21 100644 --- a/drivers/i2c/mxc_i2c.c +++ b/drivers/i2c/mxc_i2c.c @@ -49,10 +49,13 @@  #ifdef CONFIG_SYS_I2C_MX31_PORT1  #define I2C_BASE	0x43f80000 +#define I2C_CLK_OFFSET	26  #elif defined (CONFIG_SYS_I2C_MX31_PORT2)  #define I2C_BASE	0x43f98000 +#define I2C_CLK_OFFSET	28  #elif defined (CONFIG_SYS_I2C_MX31_PORT3)  #define I2C_BASE	0x43f84000 +#define I2C_CLK_OFFSET	30  #else  #error "define CONFIG_SYS_I2C_MX31_PORTx to use the mx31 I2C driver"  #endif @@ -72,6 +75,9 @@ void i2c_init(int speed, int unused)  	int freq = mx31_get_ipg_clk();  	int i; +	/* start the required I2C clock */ +	__REG(CCM_CGR0) = __REG(CCM_CGR0) | (3 << I2C_CLK_OFFSET); +  	for (i = 0; i < 0x1f; i++)  		if (freq / div[i] <= speed)  			break; |