Message ID | 1452665657-9412-1-git-send-email-ldewangan@nvidia.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
On Wed, Jan 13, 2016 at 11:44:16AM +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> > --- > Changes from V1: > - Converted print to dev_dbg. > > 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..08bada8 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_dbg(dev, "Button %s is ignored\n", pp->name); > + pdata->nbuttons--; Looking at this some more, maybe we should be using of_get_available_child_count() when calculating pdata->nbuttons (and do not decrement it here) and maybe even use for_each_available_child_of_node() in this loop and forego manual check. > + continue; > + } > + > button = &pdata->buttons[i++]; > > button->gpio = of_get_gpio_flags(pp, 0, &flags); > -- > 2.1.4 > Thanks.
On Wednesday 13 January 2016 12:36 PM, Dmitry Torokhov wrote: > On Wed, Jan 13, 2016 at 11:44:16AM +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> >> --- >> Changes from V1: >> - Converted print to dev_dbg. >> >> 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..08bada8 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_dbg(dev, "Button %s is ignored\n", pp->name); >> + pdata->nbuttons--; > Looking at this some more, maybe we should be using > of_get_available_child_count() when calculating pdata->nbuttons (and do > not decrement it here) and maybe even use > for_each_available_child_of_node() in this loop and forego manual check. > yes, that is better option here. I was not knowing these APIs. Thanks for information. I will make another patch for this. Thanks, Laxman -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/input/keyboard/gpio_keys.c b/drivers/input/keyboard/gpio_keys.c index bef317f..08bada8 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_dbg(dev, "Button %s is ignored\n", pp->name); + pdata->nbuttons--; + continue; + } + button = &pdata->buttons[i++]; button->gpio = of_get_gpio_flags(pp, 0, &flags);
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> --- Changes from V1: - Converted print to dev_dbg. drivers/input/keyboard/gpio_keys.c | 8 ++++++++ 1 file changed, 8 insertions(+)