beagleboard: Remove side effects of i2c2 pullup resisters initialization code
authorAlexander Kochetkov <al.kochet@gmail.com>
Mon, 29 Sep 2014 17:46:48 +0000 (21:46 +0400)
committerTom Rini <trini@ti.com>
Fri, 10 Oct 2014 13:44:43 +0000 (09:44 -0400)
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

index 0674afdc0946b0311081525a87d6441a121f8e30..94b99bf53762660406c1dd1d87d1b9694d5a5625 100644 (file)
@@ -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: