I2C_SLAVE finalidade ioctl

Estou escrevendo código para implementar uma simplesi2c função de leitura / gravação usando o linux gerali2c motoristalinux/i2c-dev.h

Estou confuso sobre oioctl : I2C_SLAVE

A documentação do kernel declara o seguinte:

Você pode realizar transações i2c simples usando chamadas de leitura (2) e gravação (2). Você não precisa passar o byte do endereço; em vez disso, defina-o através do ioctl I2C_SLAVE antes de tentar acessar o dispositivo

Como eu estou usando oioctl I2C_RDWR onde eu defino novamente o endereço escravo usandoi2c_msg.addr.

documentação do kernel também menciona o seguint

Algumas chamadas ioctl () são para tarefas administrativas e são tratadas diretamente pelo i2c-dev. Exemplos incluem I2C_SLAVE

Então é necessário usar oioctl I2C_SLAVE? Nesse caso, preciso defini-lo apenas uma vez ou sempre que executar uma leitura e gravação?

Se eu tivesse umi2c dispositivo Eu poderia ter acabado de testar o código no dispositivo e não teria incomodado vocês, mas infelizmente não tenho um agor

Obrigado pela ajuda

questionAnswers(6)

yourAnswerToTheQuestion