Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1307306 > unrolled thread

[PATCH 1/2] input: gpio-keys: add support for disable button from DT

Started byLaxman Dewangan <ldewangan@nvidia.com>
First post2016-01-12 12:50 +0100
Last post2016-01-12 22:20 +0100
Articles 8 — 4 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH 1/2] input: gpio-keys: add support for disable button from DT Laxman Dewangan <ldewangan@nvidia.com> - 2016-01-12 12:50 +0100
    [PATCH 2/2] input: gpio-keys: add support to name the gpio-keys Laxman Dewangan <ldewangan@nvidia.com> - 2016-01-12 12:50 +0100
      Re: [PATCH 2/2] input: gpio-keys: add support to name the gpio-keys Rob Herring <robh@kernel.org> - 2016-01-12 15:50 +0100
        Re: [PATCH 2/2] input: gpio-keys: add support to name the gpio-keys Laxman Dewangan <ldewangan@nvidia.com> - 2016-01-12 16:10 +0100
          Re: [PATCH 2/2] input: gpio-keys: add support to name the gpio-keys Rob Herring <robh@kernel.org> - 2016-01-12 16:30 +0100
            Re: [PATCH 2/2] input: gpio-keys: add support to name the gpio-keys Laxman Dewangan <ldewangan@nvidia.com> - 2016-01-12 16:40 +0100
              Re: [PATCH 2/2] input: gpio-keys: add support to name the gpio-keys Linus Walleij <linus.walleij@linaro.org> - 2016-01-14 10:20 +0100
    Re: [PATCH 1/2] input: gpio-keys: add support for disable button  from DT Dmitry Torokhov <dmitry.torokhov@gmail.com> - 2016-01-12 22:20 +0100

#1307306 — [PATCH 1/2] input: gpio-keys: add support for disable button from DT

FromLaxman Dewangan <ldewangan@nvidia.com>
Date2016-01-12 12:50 +0100
Subject[PATCH 1/2] input: gpio-keys: add support for disable button from DT
Message-ID<qQ5Cx-jP-1@gated-at.bofh.it>
Add support to disable the button from DT via status property
if given button is not supporting on given platforms.

This will help to re-use the existing dtsi file with status
enable/disable across platforms.

Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
---
 drivers/input/keyboard/gpio_keys.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/input/keyboard/gpio_keys.c b/drivers/input/keyboard/gpio_keys.c
index bef317f..cf068cb 100644
--- a/drivers/input/keyboard/gpio_keys.c
+++ b/drivers/input/keyboard/gpio_keys.c
@@ -632,6 +632,14 @@ gpio_keys_get_devtree_pdata(struct device *dev)
 	for_each_child_of_node(node, pp) {
 		enum of_gpio_flags flags;
 
+		/* Ignore the button if status of node is disabled */
+		error = of_device_is_available(pp);
+		if (!error) {
+			dev_info(dev, "Button %s is ignored\n", pp->name);
+			pdata->nbuttons--;
+			continue;
+		}
+
 		button = &pdata->buttons[i++];
 
 		button->gpio = of_get_gpio_flags(pp, 0, &flags);
-- 
2.1.4

[toc] | [next] | [standalone]


#1307308 — [PATCH 2/2] input: gpio-keys: add support to name the gpio-keys

FromLaxman Dewangan <ldewangan@nvidia.com>
Date2016-01-12 12:50 +0100
Subject[PATCH 2/2] input: gpio-keys: add support to name the gpio-keys
Message-ID<qQ5Cy-jP-5@gated-at.bofh.it>
In reply to#1307306
Add support from DT to name the gpio-keys driver to have
desired key name for this input system.

This helps userspace code to get name and perform proper
event to key mapping in some of cases. In android, the
user space map the key code to application code using
key character layout and for this it uses the name of
input system.

Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
---
 Documentation/devicetree/bindings/input/gpio-keys.txt | 1 +
 drivers/input/keyboard/gpio_keys.c                    | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/Documentation/devicetree/bindings/input/gpio-keys.txt b/Documentation/devicetree/bindings/input/gpio-keys.txt
index cf1333d..2e6bcd2 100644
--- a/Documentation/devicetree/bindings/input/gpio-keys.txt
+++ b/Documentation/devicetree/bindings/input/gpio-keys.txt
@@ -4,6 +4,7 @@ Required properties:
 	- compatible = "gpio-keys";
 
 Optional properties:
+	- gpio-keys,name: String, name of the gpio-keys input system.
 	- autorepeat: Boolean, Enable auto repeat feature of Linux input
 	  subsystem.
 
diff --git a/drivers/input/keyboard/gpio_keys.c b/drivers/input/keyboard/gpio_keys.c
index cf068cb..c95dc3b 100644
--- a/drivers/input/keyboard/gpio_keys.c
+++ b/drivers/input/keyboard/gpio_keys.c
@@ -628,6 +628,8 @@ gpio_keys_get_devtree_pdata(struct device *dev)
 
 	pdata->rep = !!of_get_property(node, "autorepeat", NULL);
 
+	of_property_read_string(node, "gpio-keys,name", &pdata->name);
+
 	i = 0;
 	for_each_child_of_node(node, pp) {
 		enum of_gpio_flags flags;
-- 
2.1.4

[toc] | [prev] | [next] | [standalone]


#1307501 — Re: [PATCH 2/2] input: gpio-keys: add support to name the gpio-keys

FromRob Herring <robh@kernel.org>
Date2016-01-12 15:50 +0100
SubjectRe: [PATCH 2/2] input: gpio-keys: add support to name the gpio-keys
Message-ID<qQ8qK-2kQ-29@gated-at.bofh.it>
In reply to#1307308
On Tue, Jan 12, 2016 at 05:02:50PM +0530, Laxman Dewangan wrote:
> Add support from DT to name the gpio-keys driver to have
> desired key name for this input system.
> 
> This helps userspace code to get name and perform proper
> event to key mapping in some of cases. In android, the
> user space map the key code to application code using
> key character layout and for this it uses the name of
> input system.

Why is specifying the key code not enough?

> Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
> ---
>  Documentation/devicetree/bindings/input/gpio-keys.txt | 1 +
>  drivers/input/keyboard/gpio_keys.c                    | 2 ++
>  2 files changed, 3 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/input/gpio-keys.txt b/Documentation/devicetree/bindings/input/gpio-keys.txt
> index cf1333d..2e6bcd2 100644
> --- a/Documentation/devicetree/bindings/input/gpio-keys.txt
> +++ b/Documentation/devicetree/bindings/input/gpio-keys.txt
> @@ -4,6 +4,7 @@ Required properties:
>  	- compatible = "gpio-keys";
>  
>  Optional properties:
> +	- gpio-keys,name: String, name of the gpio-keys input system.

gpio-keys is not a vendor.

Would "label" work for you instead?

Either way, I'm concerned this doesn't work for other key bindings 
which have multiple keys.

>  	- autorepeat: Boolean, Enable auto repeat feature of Linux input
>  	  subsystem.
>  

[toc] | [prev] | [next] | [standalone]


#1307521 — Re: [PATCH 2/2] input: gpio-keys: add support to name the gpio-keys

FromLaxman Dewangan <ldewangan@nvidia.com>
Date2016-01-12 16:10 +0100
SubjectRe: [PATCH 2/2] input: gpio-keys: add support to name the gpio-keys
Message-ID<qQ8K7-2Id-37@gated-at.bofh.it>
In reply to#1307501
On Tuesday 12 January 2016 08:13 PM, Rob Herring wrote:
> On Tue, Jan 12, 2016 at 05:02:50PM +0530, Laxman Dewangan wrote:
>> Add support from DT to name the gpio-keys driver to have
>> desired key name for this input system.
>>
>> This helps userspace code to get name and perform proper
>> event to key mapping in some of cases. In android, the
>> user space map the key code to application code using
>> key character layout and for this it uses the name of
>> input system.
> Why is specifying the key code not enough?

This is the name for input system instead of individual keys.
In android system, the key mapping is done in user space. By having name 
offers to specifying the customized key character layout instead of 
generic one form android which is fall-back.


>
>> Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
>> ---
>>   Documentation/devicetree/bindings/input/gpio-keys.txt | 1 +
>>   drivers/input/keyboard/gpio_keys.c                    | 2 ++
>>   2 files changed, 3 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/input/gpio-keys.txt b/Documentation/devicetree/bindings/input/gpio-keys.txt
>> index cf1333d..2e6bcd2 100644
>> --- a/Documentation/devicetree/bindings/input/gpio-keys.txt
>> +++ b/Documentation/devicetree/bindings/input/gpio-keys.txt
>> @@ -4,6 +4,7 @@ Required properties:
>>   	- compatible = "gpio-keys";
>>   
>>   Optional properties:
>> +	- gpio-keys,name: String, name of the gpio-keys input system.
> gpio-keys is not a vendor.
>
> Would "label" work for you instead?

"label" means node name?

>
> Either way, I'm concerned this doesn't work for other key bindings
> which have multiple keys.
>
>

This is not for the individual keys, its for input system like 
/sys/class/input/input0/name.

[toc] | [prev] | [next] | [standalone]


#1307535 — Re: [PATCH 2/2] input: gpio-keys: add support to name the gpio-keys

FromRob Herring <robh@kernel.org>
Date2016-01-12 16:30 +0100
SubjectRe: [PATCH 2/2] input: gpio-keys: add support to name the gpio-keys
Message-ID<qQ93r-2Pd-11@gated-at.bofh.it>
In reply to#1307521
On Tue, Jan 12, 2016 at 8:55 AM, Laxman Dewangan <ldewangan@nvidia.com> wrote:
>
> On Tuesday 12 January 2016 08:13 PM, Rob Herring wrote:
>>
>> On Tue, Jan 12, 2016 at 05:02:50PM +0530, Laxman Dewangan wrote:
>>>
>>> Add support from DT to name the gpio-keys driver to have
>>> desired key name for this input system.
>>>
>>> This helps userspace code to get name and perform proper
>>> event to key mapping in some of cases. In android, the
>>> user space map the key code to application code using
>>> key character layout and for this it uses the name of
>>> input system.
>>
>> Why is specifying the key code not enough?
>
>
> This is the name for input system instead of individual keys.
> In android system, the key mapping is done in user space. By having name
> offers to specifying the customized key character layout instead of generic
> one form android which is fall-back.

Okay, got it.

>>> Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
>>> ---
>>>   Documentation/devicetree/bindings/input/gpio-keys.txt | 1 +
>>>   drivers/input/keyboard/gpio_keys.c                    | 2 ++
>>>   2 files changed, 3 insertions(+)
>>>
>>> diff --git a/Documentation/devicetree/bindings/input/gpio-keys.txt
>>> b/Documentation/devicetree/bindings/input/gpio-keys.txt
>>> index cf1333d..2e6bcd2 100644
>>> --- a/Documentation/devicetree/bindings/input/gpio-keys.txt
>>> +++ b/Documentation/devicetree/bindings/input/gpio-keys.txt
>>> @@ -4,6 +4,7 @@ Required properties:
>>>         - compatible = "gpio-keys";
>>>     Optional properties:
>>> +       - gpio-keys,name: String, name of the gpio-keys input system.
>>
>> gpio-keys is not a vendor.
>>
>> Would "label" work for you instead?
>
>
> "label" means node name?

No, the standard label property. See gpio-leds for an example.

>> Either way, I'm concerned this doesn't work for other key bindings
>> which have multiple keys.
>>
>>
>
> This is not for the individual keys, its for input system like
> /sys/class/input/input0/name.

So label is exactly for this purpose of defining user meaningful names.

Rob

[toc] | [prev] | [next] | [standalone]


#1307560 — Re: [PATCH 2/2] input: gpio-keys: add support to name the gpio-keys

FromLaxman Dewangan <ldewangan@nvidia.com>
Date2016-01-12 16:40 +0100
SubjectRe: [PATCH 2/2] input: gpio-keys: add support to name the gpio-keys
Message-ID<qQ9d8-2Sx-21@gated-at.bofh.it>
In reply to#1307535
On Tuesday 12 January 2016 08:53 PM, Rob Herring wrote:
> On Tue, Jan 12, 2016 at 8:55 AM, Laxman Dewangan <ldewangan@nvidia.com> wrote:
>> On Tuesday 12 January 2016 08:13 PM, Rob Herring wrote:
>>> On Tue, Jan 12, 2016 at 05:02:50PM +0530, Laxman Dewangan wrote:

> So label is exactly for this purpose of defining user meaningful names.
>
Yes, I can use the label for name. I will update the patch.

Just for understanding, is "label" is better property name to pass the 
specific name?

[toc] | [prev] | [next] | [standalone]


#1309107 — Re: [PATCH 2/2] input: gpio-keys: add support to name the gpio-keys

FromLinus Walleij <linus.walleij@linaro.org>
Date2016-01-14 10:20 +0100
SubjectRe: [PATCH 2/2] input: gpio-keys: add support to name the gpio-keys
Message-ID<qQMeu-4Y2-23@gated-at.bofh.it>
In reply to#1307560
On Tue, Jan 12, 2016 at 4:24 PM, Laxman Dewangan <ldewangan@nvidia.com> wrote:
> On Tuesday 12 January 2016 08:53 PM, Rob Herring wrote:
>> On Tue, Jan 12, 2016 at 8:55 AM, Laxman Dewangan <ldewangan@nvidia.com>
>> wrote:
>>>
>>> On Tuesday 12 January 2016 08:13 PM, Rob Herring wrote:
>>>>
>>>> On Tue, Jan 12, 2016 at 05:02:50PM +0530, Laxman Dewangan wrote:
>
>
>> So label is exactly for this purpose of defining user meaningful names.
>>
> Yes, I can use the label for name. I will update the patch.
>
> Just for understanding, is "label" is better property name to pass the
> specific name?

Yes, look at this from
arch/arm64/boot/dts/arm/juno-motherboard.dtsi:

                        gpio_keys {
                                compatible = "gpio-keys";
                                #address-cells = <1>;
                                #size-cells = <0>;

                                button@1 {
                                        debounce_interval = <50>;
                                        wakeup-source;
                                        linux,code = <116>;
                                        label = "POWER";
                                        gpios = <&iofpga_gpio0 0 0x4>;
                                };
                                button@2 {
                                        debounce_interval = <50>;
                                        wakeup-source;
                                        linux,code = <102>;
                                        label = "HOME";
                                        gpios = <&iofpga_gpio0 1 0x4>;
                                };
(...)

Currently these names (POWER, HOME etc) appear nicely in
/proc/interrupts, so I guess the same should be used for input?

Yours,
Linus Walleij

[toc] | [prev] | [next] | [standalone]


#1307839 — Re: [PATCH 1/2] input: gpio-keys: add support for disable button from DT

FromDmitry Torokhov <dmitry.torokhov@gmail.com>
Date2016-01-12 22:20 +0100
SubjectRe: [PATCH 1/2] input: gpio-keys: add support for disable button from DT
Message-ID<qQewa-6zc-7@gated-at.bofh.it>
In reply to#1307306
On Tue, Jan 12, 2016 at 05:02:49PM +0530, Laxman Dewangan wrote:
> Add support to disable the button from DT via status property
> if given button is not supporting on given platforms.
> 
> This will help to re-use the existing dtsi file with status
> enable/disable across platforms.
> 
> Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
> ---
>  drivers/input/keyboard/gpio_keys.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/drivers/input/keyboard/gpio_keys.c b/drivers/input/keyboard/gpio_keys.c
> index bef317f..cf068cb 100644
> --- a/drivers/input/keyboard/gpio_keys.c
> +++ b/drivers/input/keyboard/gpio_keys.c
> @@ -632,6 +632,14 @@ gpio_keys_get_devtree_pdata(struct device *dev)
>  	for_each_child_of_node(node, pp) {
>  		enum of_gpio_flags flags;
>  
> +		/* Ignore the button if status of node is disabled */
> +		error = of_device_is_available(pp);
> +		if (!error) {
> +			dev_info(dev, "Button %s is ignored\n", pp->name);

I'd rather have it as dev_dbg() please.

> +			pdata->nbuttons--;
> +			continue;
> +		}
> +
>  		button = &pdata->buttons[i++];
>  
>  		button->gpio = of_get_gpio_flags(pp, 0, &flags);
> -- 
> 2.1.4
> 

-- 
Dmitry

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web