mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-19 05:31:32 +00:00
imx: Use MXC_I2C_CLK in imx i2c driver
i2c didn't work on imx25 due to missing MXC_IPG_PERCLK. Now using MXC_I2C_CLK on all imx systems using i2c. Signed-off-by: Matthias Weisser <weisserm@arcor.de> Acked-by: Stefano Babic <sbabic@denx.de>
This commit is contained in:
parent
8a57fdc640
commit
e7bed5c2b3
9 changed files with 10 additions and 2 deletions
|
@ -104,6 +104,7 @@ unsigned int mxc_get_clock(enum mxc_clock clk)
|
|||
case MXC_CSPI_CLK:
|
||||
case MXC_UART_CLK:
|
||||
case MXC_ESDHC_CLK:
|
||||
case MXC_I2C_CLK:
|
||||
return mx31_get_ipg_clk();
|
||||
case MXC_IPU_CLK:
|
||||
return mx31_get_hsp_clk();
|
||||
|
|
|
@ -357,6 +357,7 @@ unsigned int mxc_get_clock(enum mxc_clock clk)
|
|||
case MXC_IPG_CLK:
|
||||
return get_ipg_clk();
|
||||
case MXC_IPG_PERCLK:
|
||||
case MXC_I2C_CLK:
|
||||
return get_ipg_per_clk();
|
||||
case MXC_UART_CLK:
|
||||
return imx_get_uartclk();
|
||||
|
|
|
@ -482,6 +482,7 @@ unsigned int mxc_get_clock(enum mxc_clock clk)
|
|||
case MXC_IPG_CLK:
|
||||
return get_ipg_clk();
|
||||
case MXC_IPG_PERCLK:
|
||||
case MXC_I2C_CLK:
|
||||
return get_ipg_per_clk();
|
||||
case MXC_UART_CLK:
|
||||
return get_uart_clk();
|
||||
|
|
|
@ -357,6 +357,7 @@ unsigned int mxc_get_clock(enum mxc_clock clk)
|
|||
case MXC_IPG_CLK:
|
||||
return get_ipg_clk();
|
||||
case MXC_IPG_PERCLK:
|
||||
case MXC_I2C_CLK:
|
||||
return get_ipg_per_clk();
|
||||
case MXC_UART_CLK:
|
||||
return get_uart_clk();
|
||||
|
|
|
@ -46,6 +46,7 @@ enum mxc_clock {
|
|||
MXC_UART_CLK,
|
||||
MXC_IPU_CLK,
|
||||
MXC_ESDHC_CLK,
|
||||
MXC_I2C_CLK,
|
||||
};
|
||||
|
||||
unsigned int mxc_get_clock(enum mxc_clock clk);
|
||||
|
|
|
@ -48,6 +48,7 @@ enum mxc_clock {
|
|||
MXC_USB_CLK,
|
||||
MXC_CSPI_CLK,
|
||||
MXC_FEC_CLK,
|
||||
MXC_I2C_CLK,
|
||||
};
|
||||
|
||||
enum mxc_main_clock {
|
||||
|
|
|
@ -36,6 +36,7 @@ enum mxc_clock {
|
|||
MXC_DDR_CLK,
|
||||
MXC_NFC_CLK,
|
||||
MXC_PERIPH_CLK,
|
||||
MXC_I2C_CLK,
|
||||
};
|
||||
|
||||
u32 imx_get_uartclk(void);
|
||||
|
|
|
@ -41,6 +41,7 @@ enum mxc_clock {
|
|||
MXC_ESDHC4_CLK,
|
||||
MXC_SATA_CLK,
|
||||
MXC_NFC_CLK,
|
||||
MXC_I2C_CLK,
|
||||
};
|
||||
|
||||
u32 imx_get_uartclk(void);
|
||||
|
|
|
@ -98,7 +98,7 @@ static uint8_t i2c_imx_get_clk(unsigned int rate)
|
|||
#endif
|
||||
|
||||
/* Divider value calculation */
|
||||
i2c_clk_rate = mxc_get_clock(MXC_IPG_PERCLK);
|
||||
i2c_clk_rate = mxc_get_clock(MXC_I2C_CLK);
|
||||
div = (i2c_clk_rate + rate - 1) / rate;
|
||||
if (div < i2c_clk_div[0][0])
|
||||
clk_div = 0;
|
||||
|
@ -142,7 +142,7 @@ unsigned int bus_i2c_get_bus_speed(void *base)
|
|||
for (clk_div = 0; i2c_clk_div[clk_div][1] != clk_idx; clk_div++)
|
||||
;
|
||||
|
||||
return mxc_get_clock(MXC_IPG_PERCLK) / i2c_clk_div[clk_div][0];
|
||||
return mxc_get_clock(MXC_I2C_CLK) / i2c_clk_div[clk_div][0];
|
||||
}
|
||||
|
||||
#define ST_BUS_IDLE (0 | (I2SR_IBB << 8))
|
||||
|
|
Loading…
Add table
Reference in a new issue