No meu sistema, os barramentos i2c são dispositivos /dev/i2c-0
e assim por diante. Eles são chamados de adaptadores e são designados dinamicamente conforme descrito no arquivo de documentação do kernel i2c / dev-interface :
You should inspect /sys/class/i2c-dev/ or run "i2cdetect -l" to decide this. Adapter numbers are assigned somewhat dynamically, so you can not assume much about them. They can even change from one boot to the next.
sudo i2cdetect -l
irá listar qual bus faz o quê, ou você pode procurar em /sys/class/i2c-dev/
:
$ sudo i2cdetect -l|sort
i2c-0 i2c i915 gmbus ssc I2C adapter
i2c-1 i2c i915 gmbus vga I2C adapter
i2c-2 i2c i915 gmbus panel I2C adapter
...
$ head /sys/class/i2c-dev/i2c-*/name
==> /sys/class/i2c-dev/i2c-0/name <==
i915 gmbus ssc
==> /sys/class/i2c-dev/i2c-1/name <==
i915 gmbus vga
...
Nota : Embora muitas vezes os números de barramento i2c sejam atribuídos dinamicamente, em algumas plataformas o Linux usará informações de um devicetree para atribuir números específicos a um adaptador i2c. Presumivelmente, algumas placas-mãe podem similarmente ter drivers de plataforma que solicitam um determinado número de barramento, para melhor representar o layout do hardware. A chamada do kernel é i2c_add_numbered_adapter()
.