Thread (30 messages) 30 messages, 6 authors, 2016-12-13

Re: [PATCH v2 1/2] devicetree: i2c-hid: Add Wacom digitizer + regulator support

From: Rob Herring <robh@kernel.org>
Date: 2016-12-09 15:01:45
Also in: linux-devicetree, linux-rockchip, lkml

On Fri, Dec 9, 2016 at 8:36 AM, Jiri Kosina [off-list ref] wrote:
On Thu, 8 Dec 2016, Rob Herring wrote:
quoted
quoted
And if tomorrow there is Elan device that is drop-in compatible (same
connector, etc) with Wacom i2c-hid, will you ask for Elan-specific
binding? Atmel? Weida? They all need to be powered up ultimately.
Yes, I will.
What advantage does that bring?
quoted
That in no way means the OS driver has to know about each and every one.
If they can all claim compatibility with Wacom (including power
control), then they can have a Wacom compatible string too. Or you can
just never tell me that there's a different manufacturer and I won't
care as long you don't need different control. But soon as a device
needs another power rail, GPIO or different timing, then you'd better
have a new compatible string.
Again, I simply don't understand what advantage does the aproach you are
trying to use bring.
This is simply how DT works. HID-over-I2C devices are no different
than any other I2C device or any other component. You are not special.
HID over I2C is a generic protocol.
DT describes h/w, not protocols.
Sure, we need to have quirks for
device-specific bugs, and in such cases enumerate particular devices. But
we don't need DT for that at all.
When it is related to powering on the device you may need to know the
specific device in DT. Compatibles are like VID/PID for devices, a
unique identifier for the specific device. Having that does not to
prevent generic/common drivers. The same rules apply. You wouldn't
want different devices having the same VID/PID (surely that has never
happened) or only change a VID/PID when you find a bug. The same rules
apply for compatible strings. You should be able to apply quirks
without changing/adding compatible strings (or more generally, without
changing the dtb). Just like you wouldn't change a VID/PID for a
device only when you find a bug, you can't add/change a DT compatible.

BTW, As you do have a VID/PID, you could define a compatible string
syntax using VID/PID like is done for PCI and USB.

Rob
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help