On Thu, Nov 16, 2023 at 5:35 AM Rob Herring <robh+dt@xxxxxxxxxx> wrote: > > On Wed, Nov 15, 2023 at 2:45 PM Doug Anderson <dianders@xxxxxxxxxxxx> wrote: > > > > Hi, > > > > On Wed, Nov 15, 2023 at 2:28 PM Rob Herring <robh+dt@xxxxxxxxxx> wrote: > > > > > > > So if we're searching the whole device tree for "failed-needs-probe" > > > > then we need to figure out which devices are related to each other. If > > > > a given board has second sources for MIPI panels, touchscreens, and > > > > trackpads then we need to know which of the "failed-needs-probe" > > > > devices are trackpads, which are touchscreens, and which are MIPI > > > > panels. Do you have any suggestions for how we should do that? Maybe > > > > it was in some other thread that I missed? I guess we could have a > > > > board-specific table mapping (compatible + node name + reg) to a > > > > class, but that feels awkward. > > > > > > Node name is supposed to correspond to device class, so why not use > > > that (no path or unit-address.) and nothing else (well, besides > > > "status")? > > > > One problem is that I could imagine having two second source trackpads > > that both have the same i2c address. That would give them the same > > name, right? I guess you could maybe come up with some sort of suffix > > rule? Like > > > > trackpad-1@10 { > > compatible = "elan,blah"; > > ret = <0x10>; > > status = "failed-needs-probe"; > > ... > > } > > trackpad-2@10 { > > compatible = "goodix,gt7375p"; > > ret = <0x10>; > > status = "failed-needs-probe"; > > ... > > } > > > > Then I guess the class would be "trackpad"? > > That issue is somewhat orthogonal because it is not following the spec. > > I'm not sure mixing the 2 styles of node names is a good idea. While > not used too much, matching by node name does ignore the unit-address, > but I'm not sure we could ignore a '-N'. of_node_name_prefix() solves that. I assume that's the intended use case? > I think our options are either add something to the unit-address or > use i2c-mux binding. Adding to the unit-address is not unprecedented. > I did that for some of the register bit level bindings where you have > a node for different bits at the same address. The downside is > unit-address is bus specific, so we'd have to add that for multiple > buses. For the i2c-mux, it's perhaps a bit complex and I'm not sure > what if anything you'd have to do to manage the mux that's not really > there. > > Rob