On Wed, Sep 11, 2024 at 05:38:23PM +0300, Andy Shevchenko wrote: > On Tue, Sep 10, 2024 at 05:30:07PM -0700, Doug Anderson wrote: > > On Thu, Sep 5, 2024 at 8:45 PM Chen-Yu Tsai <wenst@xxxxxxxxxxxx> wrote: > > > At least for one Chromebooks it's a bit more tricky because that one > > > HID-over-I2C component shares the same address as a non-HID one. We > > > currently have different SKU IDs and thus different device trees for > > > them, but we could make the prober work with this. It just has be able > > > to tell if the component it's currently probing needs the special > > > prober and is it responding correctly. This bit I need to think about. > > I guess Mark Brown also thought that there wouldn't be some magic > > register, but my gut still tells me that most i2c devices have some > > way to confirm that they are what you expect even if it's not an > > official "vendor" or "version" register. Some type of predictable > > register at a predictable location that you could use, at least if you > > knew all of the options that someone might stuff. > "most" is way too optimistic to say, I believe that not even close to majority > of I²C target devices they are not reliably discoverable. > That's the downside of non-discoverable busses like I²C. Maybe I³C has > a mechanism for that, but I am not an expert, just wondering. There's no standard mechanism for I2C, however it is relatively common for devices to have some kind of ID registers. This is especially true if you're confining yourself to a particular class of device, bigger and more modern devices are more likely to have this - if you want to pick your audio CODEC or touchscreen controller it's a lot more likely that'll work than something like a simple DAC or ADC for example. You also have the different I2C addresses that vendors pick to help out. It's not an actual specified discovery mechanism, but practically speaking you probably can generalise some of the ID register probing. Though equally it's good practice for drivers to check this anyway so it's not clear how much benefit there is over just trying to run probe().
Attachment:
signature.asc
Description: PGP signature