Ok. I got it working.
To add some value for others, here is what I did:
Use the build script from Robert: http://eewiki.net/display/linuxonarm/BeagleBone#BeagleBone-LinuxBuildScript:
Change the following in KERNEL/arch/arm/mach-omap2/board-am335xevm.c :
The pin mux for i2c1 does not enable the pull-up resistors by default (maybe the kernel team can change this?), I used:
static struct pinmux_config i2c1_pin_mux[] = {
{"spi0_d1.i2c1_sda", OMAP_MUX_MODE2 | AM33XX_SLEWCTRL_SLOW |
AM33XX_PIN_INPUT_PULLUP},
{"spi0_cs0.i2c1_scl", OMAP_MUX_MODE2 | AM33XX_SLEWCTRL_SLOW |
AM33XX_PIN_INPUT_PULLUP},
{NULL, 0},
};
Add the init function to the beaglebone_dev_cfg:
static struct evm_dev_cfg beaglebone_dev_cfg[] = {
{tps65217_init, DEV_ON_BASEBOARD, PROFILE_NONE},
{i2c1_init, DEV_ON_BASEBOARD, PROFILE_NONE},
{i2c2_init, DEV_ON_BASEBOARD, PROFILE_NONE},
[...]
As I also could not set the bus frequency of the i2c-buses with the boot args without boot problems (https://groups.google.com/forum/#!category-topic/beagleboard/IQcSof7ZiwY ), I changed the bus frequency int the corresponding i2c2_init function:
omap_register_i2c_bus(3, 400, cape_i2c_boardinfo,
ARRAY_SIZE(cape_i2c_boardinfo));
Now, I hope I can connect faster devices to /dev/i2c-3 and slower ones to /dev/i2c-2.
Best regards,