diff mbox

[v2] dt-bindings: touchscreen: silead gsl1680: Document all compatibles

Message ID 1471424340-4201-1-git-send-email-hdegoede@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Hans de Goede Aug. 17, 2016, 8:59 a.m. UTC
The silead gsl1680 driver / binding supports a whole series of devices,
list the compatibles for all of them in the binding.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
Changes in v2:
-Drop the "silead,mssl1680" compatible thing, the "mssl1680" name is an
 ACPI thing and does not belong in the dt bindings
---
 .../devicetree/bindings/input/touchscreen/silead_gsl1680.txt          | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Rob Herring (Arm) Aug. 18, 2016, 7:27 p.m. UTC | #1
On Wed, Aug 17, 2016 at 10:59:00AM +0200, Hans de Goede wrote:
> The silead gsl1680 driver / binding supports a whole series of devices,
> list the compatibles for all of them in the binding.
> 
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> ---
> Changes in v2:
> -Drop the "silead,mssl1680" compatible thing, the "mssl1680" name is an
>  ACPI thing and does not belong in the dt bindings
> ---
>  .../devicetree/bindings/input/touchscreen/silead_gsl1680.txt          | 4 ++++
>  1 file changed, 4 insertions(+)

Acked-by: Rob Herring <robh@kernel.org>
Dmitry Torokhov Aug. 18, 2016, 7:30 p.m. UTC | #2
On Wed, Aug 17, 2016 at 10:59:00AM +0200, Hans de Goede wrote:
> The silead gsl1680 driver / binding supports a whole series of devices,
> list the compatibles for all of them in the binding.
> 
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> ---
> Changes in v2:
> -Drop the "silead,mssl1680" compatible thing, the "mssl1680" name is an
>  ACPI thing and does not belong in the dt bindings
> ---
>  .../devicetree/bindings/input/touchscreen/silead_gsl1680.txt          | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/input/touchscreen/silead_gsl1680.txt b/Documentation/devicetree/bindings/input/touchscreen/silead_gsl1680.txt
> index b0eca54..ad7f41a 100644
> --- a/Documentation/devicetree/bindings/input/touchscreen/silead_gsl1680.txt
> +++ b/Documentation/devicetree/bindings/input/touchscreen/silead_gsl1680.txt
> @@ -2,6 +2,10 @@
>  
>  Required properties:
>  - compatible		  : "silead,gsl1680"
> +			or: "silead,gsl1688"
> +			or: "silead,gsl3670"
> +			or: "silead,gsl3675"
> +			or: "silead,gsl3692"

Hmm, why do we need to document all compatible strings? We usually have
only least common denominator in drievr, and device tree uses form:

	compatible = "silead,<exact model>", "silead,gsl1680";

Rob?

BTW, I do not see OF match table in the driver, did I manage to drop it?

Thanks.
Rob Herring Aug. 18, 2016, 7:48 p.m. UTC | #3
On Thu, Aug 18, 2016 at 2:30 PM, Dmitry Torokhov
<dmitry.torokhov@gmail.com> wrote:
> On Wed, Aug 17, 2016 at 10:59:00AM +0200, Hans de Goede wrote:
>> The silead gsl1680 driver / binding supports a whole series of devices,
>> list the compatibles for all of them in the binding.
>>
>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>> ---
>> Changes in v2:
>> -Drop the "silead,mssl1680" compatible thing, the "mssl1680" name is an
>>  ACPI thing and does not belong in the dt bindings
>> ---
>>  .../devicetree/bindings/input/touchscreen/silead_gsl1680.txt          | 4 ++++
>>  1 file changed, 4 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/input/touchscreen/silead_gsl1680.txt b/Documentation/devicetree/bindings/input/touchscreen/silead_gsl1680.txt
>> index b0eca54..ad7f41a 100644
>> --- a/Documentation/devicetree/bindings/input/touchscreen/silead_gsl1680.txt
>> +++ b/Documentation/devicetree/bindings/input/touchscreen/silead_gsl1680.txt
>> @@ -2,6 +2,10 @@
>>
>>  Required properties:
>>  - compatible           : "silead,gsl1680"
>> +                     or: "silead,gsl1688"
>> +                     or: "silead,gsl3670"
>> +                     or: "silead,gsl3675"
>> +                     or: "silead,gsl3692"
>
> Hmm, why do we need to document all compatible strings? We usually have
> only least common denominator in drievr, and device tree uses form:
>
>         compatible = "silead,<exact model>", "silead,gsl1680";
>
> Rob?

Because we require them in dts files even if the OS only uses the fallback.

>
> BTW, I do not see OF match table in the driver, did I manage to drop it?

If it is i2c, i2c has the quirk that it will match drv name to
compatible string with vendor prefix dropped. But that would imply one
of these is a fallback and the doc doesn't say that.

Rob
Dmitry Torokhov Aug. 18, 2016, 8:39 p.m. UTC | #4
On Thu, Aug 18, 2016 at 02:48:52PM -0500, Rob Herring wrote:
> On Thu, Aug 18, 2016 at 2:30 PM, Dmitry Torokhov
> <dmitry.torokhov@gmail.com> wrote:
> > On Wed, Aug 17, 2016 at 10:59:00AM +0200, Hans de Goede wrote:
> >> The silead gsl1680 driver / binding supports a whole series of devices,
> >> list the compatibles for all of them in the binding.
> >>
> >> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> >> ---
> >> Changes in v2:
> >> -Drop the "silead,mssl1680" compatible thing, the "mssl1680" name is an
> >>  ACPI thing and does not belong in the dt bindings
> >> ---
> >>  .../devicetree/bindings/input/touchscreen/silead_gsl1680.txt          | 4 ++++
> >>  1 file changed, 4 insertions(+)
> >>
> >> diff --git a/Documentation/devicetree/bindings/input/touchscreen/silead_gsl1680.txt b/Documentation/devicetree/bindings/input/touchscreen/silead_gsl1680.txt
> >> index b0eca54..ad7f41a 100644
> >> --- a/Documentation/devicetree/bindings/input/touchscreen/silead_gsl1680.txt
> >> +++ b/Documentation/devicetree/bindings/input/touchscreen/silead_gsl1680.txt
> >> @@ -2,6 +2,10 @@
> >>
> >>  Required properties:
> >>  - compatible           : "silead,gsl1680"
> >> +                     or: "silead,gsl1688"
> >> +                     or: "silead,gsl3670"
> >> +                     or: "silead,gsl3675"
> >> +                     or: "silead,gsl3692"
> >
> > Hmm, why do we need to document all compatible strings? We usually have
> > only least common denominator in drievr, and device tree uses form:
> >
> >         compatible = "silead,<exact model>", "silead,gsl1680";
> >
> > Rob?
> 
> Because we require them in dts files even if the OS only uses the fallback.

So how exactly should it be documented? I mean if there were more than 1
OS they might have been using different fallbacks. How do we decide
which entry should be "true" fallback?

> 
> >
> > BTW, I do not see OF match table in the driver, did I manage to drop it?
> 
> If it is i2c, i2c has the quirk that it will match drv name to
> compatible string with vendor prefix dropped.

I think this is implementation quirk of I2C bus and I hope we'll fix it
one of these days... Same with modalias dropping vendor prefix so we
have to repeat OF data (sans vendor prefix) in I2C ID table if we want
module auto-loading to work.

> But that would imply one
> of these is a fallback and the doc doesn't say that.

Thanks.
Rob Herring Aug. 20, 2016, 8:25 p.m. UTC | #5
On Thu, Aug 18, 2016 at 3:39 PM, Dmitry Torokhov
<dmitry.torokhov@gmail.com> wrote:
> On Thu, Aug 18, 2016 at 02:48:52PM -0500, Rob Herring wrote:
>> On Thu, Aug 18, 2016 at 2:30 PM, Dmitry Torokhov
>> <dmitry.torokhov@gmail.com> wrote:
>> > On Wed, Aug 17, 2016 at 10:59:00AM +0200, Hans de Goede wrote:
>> >> The silead gsl1680 driver / binding supports a whole series of devices,
>> >> list the compatibles for all of them in the binding.
>> >>
>> >> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>> >> ---
>> >> Changes in v2:
>> >> -Drop the "silead,mssl1680" compatible thing, the "mssl1680" name is an
>> >>  ACPI thing and does not belong in the dt bindings
>> >> ---
>> >>  .../devicetree/bindings/input/touchscreen/silead_gsl1680.txt          | 4 ++++
>> >>  1 file changed, 4 insertions(+)
>> >>
>> >> diff --git a/Documentation/devicetree/bindings/input/touchscreen/silead_gsl1680.txt b/Documentation/devicetree/bindings/input/touchscreen/silead_gsl1680.txt
>> >> index b0eca54..ad7f41a 100644
>> >> --- a/Documentation/devicetree/bindings/input/touchscreen/silead_gsl1680.txt
>> >> +++ b/Documentation/devicetree/bindings/input/touchscreen/silead_gsl1680.txt
>> >> @@ -2,6 +2,10 @@
>> >>
>> >>  Required properties:
>> >>  - compatible           : "silead,gsl1680"
>> >> +                     or: "silead,gsl1688"
>> >> +                     or: "silead,gsl3670"
>> >> +                     or: "silead,gsl3675"
>> >> +                     or: "silead,gsl3692"
>> >
>> > Hmm, why do we need to document all compatible strings? We usually have
>> > only least common denominator in drievr, and device tree uses form:
>> >
>> >         compatible = "silead,<exact model>", "silead,gsl1680";
>> >
>> > Rob?
>>
>> Because we require them in dts files even if the OS only uses the fallback.
>
> So how exactly should it be documented? I mean if there were more than 1
> OS they might have been using different fallbacks. How do we decide
> which entry should be "true" fallback?

It shouldn't matter which one an OS uses. There's typically only the
specific one and then a generic or 1st compatible chip one.

This is exactly why they need to be documented (and in a single place,
looking at you u-boot), so there is no confusion as to what
compatibles are allowed/valid for each platform.

Rob
Dmitry Torokhov Aug. 21, 2016, 10:11 p.m. UTC | #6
On August 20, 2016 1:25:48 PM PDT, Rob Herring <robh+dt@kernel.org> wrote:
>On Thu, Aug 18, 2016 at 3:39 PM, Dmitry Torokhov
><dmitry.torokhov@gmail.com> wrote:
>> On Thu, Aug 18, 2016 at 02:48:52PM -0500, Rob Herring wrote:
>>> On Thu, Aug 18, 2016 at 2:30 PM, Dmitry Torokhov
>>> <dmitry.torokhov@gmail.com> wrote:
>>> > On Wed, Aug 17, 2016 at 10:59:00AM +0200, Hans de Goede wrote:
>>> >> The silead gsl1680 driver / binding supports a whole series of
>devices,
>>> >> list the compatibles for all of them in the binding.
>>> >>
>>> >> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>>> >> ---
>>> >> Changes in v2:
>>> >> -Drop the "silead,mssl1680" compatible thing, the "mssl1680" name
>is an
>>> >>  ACPI thing and does not belong in the dt bindings
>>> >> ---
>>> >>  .../devicetree/bindings/input/touchscreen/silead_gsl1680.txt    
>     | 4 ++++
>>> >>  1 file changed, 4 insertions(+)
>>> >>
>>> >> diff --git
>a/Documentation/devicetree/bindings/input/touchscreen/silead_gsl1680.txt
>b/Documentation/devicetree/bindings/input/touchscreen/silead_gsl1680.txt
>>> >> index b0eca54..ad7f41a 100644
>>> >> ---
>a/Documentation/devicetree/bindings/input/touchscreen/silead_gsl1680.txt
>>> >> +++
>b/Documentation/devicetree/bindings/input/touchscreen/silead_gsl1680.txt
>>> >> @@ -2,6 +2,10 @@
>>> >>
>>> >>  Required properties:
>>> >>  - compatible           : "silead,gsl1680"
>>> >> +                     or: "silead,gsl1688"
>>> >> +                     or: "silead,gsl3670"
>>> >> +                     or: "silead,gsl3675"
>>> >> +                     or: "silead,gsl3692"
>>> >
>>> > Hmm, why do we need to document all compatible strings? We usually
>have
>>> > only least common denominator in drievr, and device tree uses
>form:
>>> >
>>> >         compatible = "silead,<exact model>", "silead,gsl1680";
>>> >
>>> > Rob?
>>>
>>> Because we require them in dts files even if the OS only uses the
>fallback.
>>
>> So how exactly should it be documented? I mean if there were more
>than 1
>> OS they might have been using different fallbacks. How do we decide
>> which entry should be "true" fallback?
>
>It shouldn't matter which one an OS uses. There's typically only the
>specific one and then a generic or 1st compatible chip one.

When you are saying "first compatible chip" do you mean first as it was created by the vendor or first that was added to a given os? Because we quite often have no idea what the first compatible chip in a series was and start with whatever the first submitter of a driver used in their product.

>
>This is exactly why they need to be documented (and in a single place,
>looking at you u-boot), so there is no confusion as to what
>compatibles are allowed/valid for each platform.

What do you mean when you say platform?

We have uboot, core boot, Linux, free BSD, in whatever combinations. How do we make sure we all use the same fallback?


Thanks.
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/input/touchscreen/silead_gsl1680.txt b/Documentation/devicetree/bindings/input/touchscreen/silead_gsl1680.txt
index b0eca54..ad7f41a 100644
--- a/Documentation/devicetree/bindings/input/touchscreen/silead_gsl1680.txt
+++ b/Documentation/devicetree/bindings/input/touchscreen/silead_gsl1680.txt
@@ -2,6 +2,10 @@ 
 
 Required properties:
 - compatible		  : "silead,gsl1680"
+			or: "silead,gsl1688"
+			or: "silead,gsl3670"
+			or: "silead,gsl3675"
+			or: "silead,gsl3692"
 - reg			  : I2C slave address of the chip (0x40)
 - interrupt-parent	  : a phandle pointing to the interrupt controller
 			    serving the interrupt for this chip