diff mbox

[U-Boot] beagleboard: Remove side effects of i2c2 pullup resisters initialization code

Message ID 1412012808-10847-1-git-send-email-al.kochet@gmail.com
State Accepted
Delegated to: Tom Rini
Headers show

Commit Message

Alexander Kochetkov Sept. 29, 2014, 5:46 p.m. UTC
Fix typo of commit d4e53f063dd25e071444b87303573e7440deeb89.

i2c2 pullup resisters are controlled by bit 0 of CONTROL_PROG_IO1.
It's value after reset is 0x00100001.

In order to clear bit 0, original code write 0xfffffffe to
CONTROL_PROG_IO1 and toggle almost all default values.

Original code affect following:
* disable i2c1 pullup resisters
* increase far end load setting for many modules
* setup invalid SC/LB combination

Signed-off-by: Alexander Kochetkov <al.kochet@gmail.com>
CC: Tom Rini <trini@ti.com>
CC: Steve Kipisz <s-kipisz2@ti.com>
---
 board/ti/beagle/beagle.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Tom Rini Oct. 10, 2014, 2:41 p.m. UTC | #1
On Mon, Sep 29, 2014 at 09:46:48PM +0400, Alexander Kochetkov wrote:

> Fix typo of commit d4e53f063dd25e071444b87303573e7440deeb89.
> 
> i2c2 pullup resisters are controlled by bit 0 of CONTROL_PROG_IO1.
> It's value after reset is 0x00100001.
> 
> In order to clear bit 0, original code write 0xfffffffe to
> CONTROL_PROG_IO1 and toggle almost all default values.
> 
> Original code affect following:
> * disable i2c1 pullup resisters
> * increase far end load setting for many modules
> * setup invalid SC/LB combination
> 
> Signed-off-by: Alexander Kochetkov <al.kochet@gmail.com>
> CC: Tom Rini <trini@ti.com>
> CC: Steve Kipisz <s-kipisz2@ti.com>

Applied to u-boot/master, thanks!
diff mbox

Patch

diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
index 0674afd..94b99bf 100644
--- a/board/ti/beagle/beagle.c
+++ b/board/ti/beagle/beagle.c
@@ -317,9 +317,12 @@  int misc_init_r(void)
 	struct gpio *gpio6_base = (struct gpio *)OMAP34XX_GPIO6_BASE;
 	struct control_prog_io *prog_io_base = (struct control_prog_io *)OMAP34XX_CTRL_BASE;
 	bool generate_fake_mac = false;
+	u32 value;
 
 	/* Enable i2c2 pullup resisters */
-	writel(~(PRG_I2C2_PULLUPRESX), &prog_io_base->io1);
+	value = readl(&prog_io_base->io1);
+	value &= ~(PRG_I2C2_PULLUPRESX);
+	writel(value, &prog_io_base->io1);
 
 	switch (get_board_revision()) {
 	case REVISION_AXBX: