This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

i2c_new_device and device tree

I am making a device driver for a TI Deserializer/Serializer chip (DS90UB913Q / DS90UB914Q) to remotize an I2C bus (via high speed serial link). The result will be that whenever the serial link is in place, some I2C devices will be reachable from the local I2C bus connected to the deserializer chip. When the link is down such devices have to be destroyed and reconfigured when the link will come up again.

What I am currently doing is: 1) to add an entry in the device tree for each I2C remote device 2) in the "connect" function of the deserializer driver I will call i2c_new_device for each remote device that have to be created

My concern is that I would like to prevent the device probing from the device tree, in order to wait that the deserializer driver will create remote I2C devices and it will invoke the related drivers.

What is happening now is that:

1) if the deserializer driver is able to create a remote I2C device before that this device would be probed from the device tree I2C scan, the related driver invoked won't be able to access to device tree node for this I2C device

2) if the device tree I2C scan will try to probe for the I2C remote device it will prevent the deserializer driver from creating the device via i2c_new_device (error address busy)

So, is there any way to specify in the device tree that an I2C device shouldn't be probed automatically ? And again, how to get access to I2C device node in the device tree for a new probed device that has been created via i2c_new_device ?

Thank you in advance

Andrew Italy

  • Hello Andrea,

    Not sure that I understand your question entirely. Have you tried using register 0x06 bit 0 on the deserializer to freeze the serializer device ID? This will prevent auto-loading (which I think you might be referring to as probing) of the serializer device ID automatically and instead allow you to specify it manually.

    -Sean