Long story short I have a custom board for personal use that is essentially a cape for the BBB. It has a 24c256 EEPROM on I2C-2, just like the example in the reference manual.
I’m having severe difficulty interpreting these lines though:
Address line A2 is always tied high. This sets the allowable address range for the expansion cards to 0x54 to 0x57. All other I2C addresses can be used by the user in the design of their capes.
When I boot the BBB and run i2cdetect on i2c-2, I can see that addresses 0x54-0x57 are reserved by the kernel, because they’re shown as “UU” in the i2cdetect output. This means I can’t read/write to this chip if I want to, as I don’t have permission from userland.
So from what I can tell with all of this, and please correct me if I’m being an idiot, is that you want to use addresses 0x54-0x57 to store read only pinmux data for your cape, and the kernel can pick this up and adapt according via device trees or whatever. If you want a readable/writeable EEPROM for other information you would have to tie A2 to ground, and thus move the address out of the kernel reserved space, making it something between 0x50-0x53. Is this correct, or am I just horrible misinterpreting the reference manual?
Any pointers would be great at this point, I just want to make sure I really understand the reason those addresses are reserved by the kernel, and what an eeprom with those addresses is actually used for. Thanks.