mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-19 03:15:00 +00:00
designware_i2c: disable i2c controller during target address setup
As it is stated in DesignWare I2C databook: writes to IC_TAR (0x4) register succeed only when IC_ENABLE[0] is set to 0. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Cc: Tom Rini <trini@ti.com> cc: Armando Visconti <armando.visconti@st.com> Cc: Stefan Roese <sr@denx.de> Cc: Albert ARIBAUD <albert.u.boot@aribaud.net> Cc: Heiko Schocher <hs@denx.de> Cc: Vipin KUMAR <vipin.kumar@st.com> Cc: Tom Rix <Tom.Rix@windriver.com> Cc: Mischa Jonker <mjonker@synopsys.com>
This commit is contained in:
parent
a2e0a45d2e
commit
8b7c872539
1 changed files with 12 additions and 0 deletions
|
@ -151,7 +151,19 @@ void i2c_init(int speed, int slaveadd)
|
|||
*/
|
||||
static void i2c_setaddress(unsigned int i2c_addr)
|
||||
{
|
||||
unsigned int enbl;
|
||||
|
||||
/* Disable i2c */
|
||||
enbl = readl(&i2c_regs_p->ic_enable);
|
||||
enbl &= ~IC_ENABLE_0B;
|
||||
writel(enbl, &i2c_regs_p->ic_enable);
|
||||
|
||||
writel(i2c_addr, &i2c_regs_p->ic_tar);
|
||||
|
||||
/* Enable i2c */
|
||||
enbl = readl(&i2c_regs_p->ic_enable);
|
||||
enbl |= IC_ENABLE_0B;
|
||||
writel(enbl, &i2c_regs_p->ic_enable);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Loading…
Add table
Reference in a new issue