imx: Use MXC_I2C_CLK in imx i2c driver
Subsystems (3)
PATCH 1/1 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.
--- arch/arm/cpu/arm1136/mx31/generic.c | 1 + arch/arm/cpu/arm1136/mx35/generic.c | 1 + arch/arm/cpu/armv7/mx5/clock.c | 1 + arch/arm/cpu/armv7/mx6/clock.c | 1 + arch/arm/include/asm/arch-mx31/clock.h | 1 + arch/arm/include/asm/arch-mx35/clock.h | 1 + arch/arm/include/asm/arch-mx5/clock.h | 1 + arch/arm/include/asm/arch-mx6/clock.h | 1 + drivers/i2c/mxc_i2c.c | 4 ++-- 9 files changed, 10 insertions(+), 2 deletions(-)
arch/arm/cpu/arm1136/mx31/generic.c +1 -0
@@ -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 ();
arch/arm/cpu/arm1136/mx35/generic.c +1 -0
@@ -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 ();
arch/arm/cpu/armv7/mx5/clock.c +1 -0
@@ -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 ();
arch/arm/cpu/armv7/mx6/clock.c +1 -0
@@ -355,6 +355,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 ();
arch/arm/include/asm/arch-mx31/clock.h +1 -0
@@ -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);
arch/arm/include/asm/arch-mx35/clock.h +1 -0
@@ -48,6 +48,7 @@ enum mxc_clock {MXC_USB_CLK ,MXC_CSPI_CLK ,MXC_FEC_CLK , + MXC_I2C_CLK, }; enum mxc_main_clock {
arch/arm/include/asm/arch-mx5/clock.h +1 -0
@@ -36,6 +36,7 @@ enum mxc_clock {MXC_DDR_CLK ,MXC_NFC_CLK ,MXC_PERIPH_CLK , + MXC_I2C_CLK, };u32 imx_get_uartclk (void );
arch/arm/include/asm/arch-mx6/clock.h +1 -0
@@ -41,6 +41,7 @@ enum mxc_clock {MXC_ESDHC4_CLK ,MXC_SATA_CLK ,MXC_NFC_CLK , + MXC_I2C_CLK, };u32 imx_get_uartclk (void );
drivers/i2c/mxc_i2c.c +2 -2
@@ -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))
Signature · 1 line
1.7.9.5
PATCH 1/1 imx: Use MXC_I2C_CLK in imx i2c driver
Quoted 127 lines · Matthias Weisser
i2c didn't work on imx25 due to missing
MXC_IPG_PERCLK. Now usingMXC_I2C_CLKon all imx systems using i2c.Signed-off-by Matthias Weisser <[email protected]>--- arch/arm/cpu/arm1136/mx31/generic.c | 1 + arch/arm/cpu/arm1136/mx35/generic.c | 1 + arch/arm/cpu/armv7/mx5/clock.c | 1 + arch/arm/cpu/armv7/mx6/clock.c | 1 + arch/arm/include/asm/arch-mx31/clock.h | 1 + arch/arm/include/asm/arch-mx35/clock.h | 1 + arch/arm/include/asm/arch-mx5/clock.h | 1 + arch/arm/include/asm/arch-mx6/clock.h | 1 + drivers/i2c/mxc_i2c.c | 4 ++-- 9 files changed, 10 insertions(+), 2 deletions(-)arch/arm/cpu/arm1136/mx31/generic.c +1
-0@@ -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 ();arch/arm/cpu/arm1136/mx35/generic.c +1
-0@@ -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 ();arch/arm/cpu/armv7/mx5/clock.c +1
-0@@ -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 ();arch/arm/cpu/armv7/mx6/clock.c +1
-0@@ -355,6 +355,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 ();arch/arm/include/asm/arch-mx31/clock.h +1
-0@@ -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);arch/arm/include/asm/arch-mx35/clock.h +1
-0@@ -48,6 +48,7 @@ enum mxc_clock {MXC_USB_CLK ,MXC_CSPI_CLK ,MXC_FEC_CLK , + MXC_I2C_CLK, }; enum mxc_main_clock {arch/arm/include/asm/arch-mx5/clock.h +1
-0@@ -36,6 +36,7 @@ enum mxc_clock {MXC_DDR_CLK ,MXC_NFC_CLK ,MXC_PERIPH_CLK , + MXC_I2C_CLK, };u32 imx_get_uartclk (void );arch/arm/include/asm/arch-mx6/clock.h +1
-0@@ -41,6 +41,7 @@ enum mxc_clock {MXC_ESDHC4_CLK ,MXC_SATA_CLK ,MXC_NFC_CLK , + MXC_I2C_CLK, };u32 imx_get_uartclk (void );drivers/i2c/mxc_i2c.c +1
-1@@ -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 ;
drivers/i2c/mxc_i2c.c unsigned int bus_i2c_get_bus_speed(void *base) · line 148
Quoted 8 lines
drivers/i2c/mxc_i2c.c +1
-1@@ -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))
This is exactly the changes I had in mind !
Best regards,
Stefano Babic
Signature · 5 lines
===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de =====================================================================
PATCH 1/1 imx: Use MXC_I2C_CLK in imx i2c driver
In reply to Matthias WeisserHi Matthias,
Quoted 134 lines · Matthias Weisser
i2c didn't work on imx25 due to missing
MXC_IPG_PERCLK. Now usingMXC_I2C_CLKon all imx systems using i2c.Signed-off-by Matthias Weisser <[email protected]>--- arch/arm/cpu/arm1136/mx31/generic.c | 1 + arch/arm/cpu/arm1136/mx35/generic.c | 1 + arch/arm/cpu/armv7/mx5/clock.c | 1 + arch/arm/cpu/armv7/mx6/clock.c | 1 + arch/arm/include/asm/arch-mx31/clock.h | 1 + arch/arm/include/asm/arch-mx35/clock.h | 1 + arch/arm/include/asm/arch-mx5/clock.h | 1 + arch/arm/include/asm/arch-mx6/clock.h | 1 + drivers/i2c/mxc_i2c.c | 4 ++-- 9 files changed, 10 insertions(+), 2 deletions(-)arch/arm/cpu/arm1136/mx31/generic.c +1
-0@@ -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 ();arch/arm/cpu/arm1136/mx35/generic.c +1
-0@@ -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 ();arch/arm/cpu/armv7/mx5/clock.c +1
-0@@ -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 ();arch/arm/cpu/armv7/mx6/clock.c +1
-0@@ -355,6 +355,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 ();arch/arm/include/asm/arch-mx31/clock.h +1
-0@@ -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);arch/arm/include/asm/arch-mx35/clock.h +1
-0@@ -48,6 +48,7 @@ enum mxc_clock {MXC_USB_CLK ,MXC_CSPI_CLK ,MXC_FEC_CLK , + MXC_I2C_CLK, }; enum mxc_main_clock {arch/arm/include/asm/arch-mx5/clock.h +1
-0@@ -36,6 +36,7 @@ enum mxc_clock {MXC_DDR_CLK ,MXC_NFC_CLK ,MXC_PERIPH_CLK , + MXC_I2C_CLK, };u32 imx_get_uartclk (void );arch/arm/include/asm/arch-mx6/clock.h +1
-0@@ -41,6 +41,7 @@ enum mxc_clock {MXC_ESDHC4_CLK ,MXC_SATA_CLK ,MXC_NFC_CLK , + MXC_I2C_CLK, };u32 imx_get_uartclk (void );drivers/i2c/mxc_i2c.c +1
-1@@ -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 ;
drivers/i2c/mxc_i2c.c unsigned int bus_i2c_get_bus_speed(void *base) · line 148
Quoted 8 lines
drivers/i2c/mxc_i2c.c +1
-1@@ -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))
I've reviewed your patch. It's perfect.
Best regards,
Beno?t
PATCH 1/1 imx: Use MXC_I2C_CLK in imx i2c driver
In reply to Matthias WeisserQuoted 5 lines · Matthias Weisser
i2c didn't work on imx25 due to missing
MXC_IPG_PERCLK. Now usingMXC_I2C_CLKon all imx systems using i2c.Signed-off-by Matthias Weisser <[email protected]>---
Applied to u-boot-imx, next branch, thanks.
Best regards,
Stefano Babic
Signature · 5 lines
===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de =====================================================================