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.

How to modify pin mux configuration of OMAP4470?

I have read that pin mux of OMAP4470 can be configured in x-loader, u-boot and kernel - but I want to configure it at u-boot level.

I turned off CONFIG_OMAP_MUX in kernel to use u-boot's pin mux configuration.

Then I modified board/omap4430sdp/omap4430sdp.c (I modeled config based on omap4430sdp_config).

Just to check if my u-boot modifications work, I modified I2C buses 2 and 3. I changed mode from I2C:

        MV(CP(I2C2_SCL),        (PTU | IEN | M0)) /* i2c2_scl */ \
        MV(CP(I2C2_SDA),        (PTU | IEN | M0)) /* i2c2_sda */ \
        MV(CP(I2C3_SCL),        (PTU | IEN | M0)) /* i2c3_scl */ \
        MV(CP(I2C3_SDA),        (PTU | IEN | M0)) /* i2c3_sda */ \

To GPIO:

        MV(CP(I2C2_SCL),        (PTU | IEN | M3)) /* gpio_128 */ \
        MV(CP(I2C2_SDA),        (PTU | IEN | M3)) /* gpio_129 */ \
        MV(CP(I2C3_SCL),        (PTU | IEN | M3)) /* gpio_130 */ \
        MV(CP(I2C3_SDA),        (PTU | IEN | M3)) /* gpio_131 */ \

To verify if my changes worked (expected  behavior is that I can't probe it anymore), at u-boot level, I tried to see if I can still "probe" the devices connected at buses I2C 2 and 3.

But I can still probe the devices connected at I2C buses 2 and 3, so it seems like my modifications are not working.

Am I missing something?

Note: I can boot up to android user space level.

  • Just checked that in u-boot's ./cpu/omap4/omap4.c, set_muxconf_regs() is not called:

            /* Clock and Mux configerations is already done in x-loader */
            if(!in_sdram) {
                    set_muxconf_regs();
                    delay(100);
                    prcm_init();
            }
    

    It seems like u-boot pin mux setting is not used, and it just uses pin mux setting of x-loader.

    So I just modified x-loader's board/omap4430sdp/omap4430sdp.c.

    Pin mux is changed after that.