boot init code depending on i2c eeprom value

christian.buettner at rafi.de christian.buettner at rafi.de
Fri Aug 3 04:06:28 EDT 2012


Hi all,

i need to set the pin-mux of the board init code depending on an ID coming 
from 
an i2C EEPROM of the board.
Is it possible to do something like this:


...

//Using the e.g. the postcore_initcall phase to init i2C
static int
ecuv6_postcore_init(void)
{
        //Set I2C EEPROM (24C32R) PIN MUX
        mxc_iomux_v3_setup_multiple_pads(i2c_eeprom_pads, 
ARRAY_SIZE(i2c_eeprom_pads));
        imx53_add_i2c2(NULL);
        return 0;
}
postcore_initcall(ecuv6_postcore_init);

//In the console_initcall phase, i2C should be probed to read ID
static int
ecuv6_console_init(void)
{
        imx53_init_lowlevel(0);
        ecuv6_set_system_serial();
 
        //get_bb_pcb_number reads data from 
        char bb_ID;
        bb_ID = get_i2c_ID();

        //Set Pinmux depending on i2C result
        if(bb_ID = 0xAB) {
                mxc_iomux_v3_setup_multiple_pads(AB_pads, ARRAY_SIZE(
AB_pads));
        }
        else if(bb_ID = 0xCD) {
                mxc_iomux_v3_setup_multiple_pads(CD_pads, ARRAY_SIZE(
CD_pads));
        }
 
        imx53_add_uart0();

        return 0;
}
console_initcall(ecuv6_console_init);

...


Actually this is not working. The i2c_imx:i2c_imx_probe(..) function gets 
called later.
Is there a way or concept to do something like this?

christian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.infradead.org/pipermail/barebox/attachments/20120803/64013b60/attachment-0001.html>


More information about the barebox mailing list