On Mon, Feb 27, 2023 at 09:06:28PM +0100, Sasha Finkelstein wrote: > On Mon, 27 Feb 2023 at 20:51, Rob Herring <robh@xxxxxxxxxx> wrote: > > > > > +properties: > > > + compatible: > > > + const: apple,z2-touchscreen > > > > Is 'z2' anything other than a touchscreen? If not, '-touchscreen' is > > redundant. If so, then what else is there? You should be describing > > physical devices, not just a protocol for touchscreen. > > > > This is a class of touchscreen controllers that talk the z2 protocol > over spi. Yes, you already said that much. So nothing else for this piece of h/w? Then 'apple,z2' is sufficient. Well maybe. You are assuming all h/w in the world speaking 'z2' is the same (to software). Usually that's not a safe assumption, but maybe Apple is better at not changing the h/w... Normally, the 'protocol' to talk to a device is only part of it. There's other pieces like how to turn the device on and off which need h/w specific knowledge. If you need any of that, then you need specific compatibles. Adding properties for each variation doesn't end up well. > > > > + touchscreen-size-y = <640>; > > > + apple,z2-device-name = "MacBookPro17,1 Touch Bar"; > > > > Why do we need this string? If you want a human consumed label for > > some identification, we have a property for that purpose. It's called > > 'label'. But when there is only 1 instance, I don't really see the > > point. > > I want a libinput-consumed label to distinguish between devices > using this protocol. I know little about libinput, but how would it know about 'apple,z2-device-name'? > It is used both for 'normal' touchscreens, and, > as is in this example a 'touchbar', which absolutely should not be > treated as a normal touchscreen, and needs special handling in > userspace. Meaning there are both touchscreens and touchbars using this? That sounds like s/w needs this information. From a DT perspective, 'compatible' is how DT defines exactly what the h/w is and how to use it. That also doesn't sound like a unique issue. Doesn't the kernel provide a standard way to tell userspace what's a touchscreen vs. touchpad vs. ??? Rob