We've recently updated the kernel on one of our Freescale MPC834x systems from 2.6.22 to 2.6.23.9.
Everything seemed to be working fine, until we tried the I2C buses. This had been working find on 2.6.22, but on 2.6.23.9 it fails on trying to open the I2C devices. Looking in to the code, the 'fsl_i2c_probe' function has changed slightly between the releases. Changing this back to the way it was in 2.6.22 make things work again. Old code: i2c->adap = mpc_ops; i2c_set_adapdata(&i2c->adap, i2c); i2c->adap.dev.parent = &pdev->dev; if ((result = i2c_add_adapter(&i2c->adap)) < 0) { printk(KERN_ERR "i2c-mpc - failed to add adapter\n"); goto fail_add; } New code: i2c->adap = mpc_ops; i2c->adap.nr = pdev->id; i2c_set_adapdata(&i2c->adap, i2c); i2c->adap.dev.parent = &pdev->dev; if ((result = i2c_add_numbered_adapter(&i2c->adap)) < 0) { printk(KERN_ERR "i2c-mpc - failed to add adapter\n"); goto fail_add; } Presumably the new code puts additional requirements on the 'platform_device' registration - can anyone let me know what I'll need to add to get this working with the new driver code? Thanks in advance Michael _______________________________________________ Linuxppc-embedded mailing list Linuxppc-embedded@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-embedded