This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

omap4460 i2c4 pull high internal in default, Why?

I have Pandaboard ES Rev B2 and running Android 4.0 (AOSP). I try to do below command to show settings of i2c4, its default setting is for mode0 (I2C mode) and PIN_INPUT and not do any internal pull up or down. But I found that its (I2C4_SCL and I2C4_SDA) voltages will always be Hight level 1.8V, Why? (PS. Do not add any external pull up resistor there.) How could I make it to be low voltage (release the bus) in default?

cd /sys/kernel/debug/omap_mux

sudo cat i2c4_scl

name: i2c4_scl.i2c4_scl (0x4a10012e/0x12e = 0x0100), b ag21, t NA
mode: OMAP_PIN_INPUT | OMAP_MUX_MODE0
signals: i2c4_scl | NA | NA | gpio_132 | NA | NA | NA | safe_mode

  • Hello Steve,

    I want to notice that, I2C's lines - SCL and SDA are open drain. Therefore for realization of  I2C communication, these lines mandatory must be pulled up.

    To change the pull types of this signals (balls), you must select use/set the registers: CONTROL_CORE_PAD0_I2C4_SDA_PAD1_MCSPI1_CLK for I2C4_SDA - [2:0] I2C4_SDA_MUXMODE - set in 0x3: Select gpio_133
    CONTROL_CORE_PAD0_I2C4_SDA_PAD1_MCSPI1_CLK for I2C4_SDA - [3] I2C4_SDA_PULLUDENABLE    0x1: pullup/down enabled
    CONTROL_CORE_PAD0_I2C4_SDA_PAD1_MCSPI1_CLK for I2C4_SDA - [4] I2C4_SDA_PULLTYPESELECT
    0x0: pulldown selected

    For I2C4_SCL signal:

    CONTROL_CORE_PAD0_I2C3_SDA_PAD1_I2C4_SCL[18:16] I2C4_SCL_MUXMODE - 0x3: Select gpio_132
    CONTROL_CORE_PAD0_I2C3_SDA_PAD1_I2C4_SCL[19] I2C4_SCL_PULLUDENABLE - 0x1: pullup/down enabled

    CONTROL_CORE_PAD0_I2C3_SDA_PAD1_I2C4_SCL[20] I2C4_SCL_PULLTYPESELECT - 0x0: pulldown selected

    See the configuration of this registers in the following files:

    arch/arm/mach-omap2/mux44xx.c

    arch/arm/plat-omap/i2c.c

    arch/arm/mach-omap2/include/mach/ctrl_module_pad_core_44xx.h

    More information about Pad configuration, you can find in section 18.4.8 Pad Functional Multiplexing and Configuration in Control Module chapter of OMAP4460 TRM.

    Best regards,

    Yanko