Disabling default I2C mapping

Dear all, please could you describe how to disable defualt mapping of I2C0 and I2C1 interfaces of BBB, so their pins can be used as GPIO? Thank you for detailed description!

I2C0 is connects to the PMIC. Disabling that and making it a GPIO would not be a good thing to do.

Gerald

As Gerald mentioned, I2C0 is used for on-board communication to things
like the PMIC, HDMI framer, and EEPROM. It doesn't even connect to
the expansion headers so I'm not sure why you need to turn it into GPIO.

I2C1 does connect to the expansion headers, but should be configured
as GPIO by default unless you specifically loaded an I2C overlay.

If you need more help, please provide specific details regarding
exactly what you need to do, which kernel you are using, and what you
have already tried that didn't work.

william@beaglebone:~$ ls /dev | grep i2c
i2c-0
i2c-2

So I would imagine i2c-2 was meant instead of i2c-1.

But if i2c-0 is used for EEPROM also, what is i2c-2 used for ?

I2C2 is used for cape EEPROMs (so the cape manager can auto-detect
capes and load the appropriate overlays). It may also be used for I2C
expansion depending on the cape(s) installed.

It is possible (although a bit tricky) to keep the boot-time cape
manager functionality and switch the I2C2 pins to GPIO at runtime by
migrating the pinmux control out of the I2C device-tree entry and into
something like my Universal Cape overlay, then setting the default
mode of the mux to I2C. That way the pins are I2C at startup, then
can be switched to GPIO (or any other supported function) at run-time.

I2C2 is used for cape EEPROMs (so the cape manager can auto-detect
capes and load the appropriate overlays). It may also be used for I2C
expansion depending on the cape(s) installed.

It is possible (although a bit tricky) to keep the boot-time cape
manager functionality and switch the I2C2 pins to GPIO at runtime by
migrating the pinmux control out of the I2C device-tree entry and into
something like my Universal Cape overlay, then setting the default
mode of the mux to I2C. That way the pins are I2C at startup, then
can be switched to GPIO (or any other supported function) at run-time.

Thanks Charles, I suppose I already knew that, it just did not click. Granted, I had no idea that the HDMI framer was on the i2c-0 bus too. As far as re-purposing the already existing i2c buses . . . to me it would make more sense to put a GPIO extender on i2c-2, or maybe even i2c-1. If one really needs more GPIO . . .