Re: [PATCH 1/2] dt-bindings: input: gpio-keys: add pinctrl states

From: Krzysztof Kozlowski

Date: Wed Sep 16 2026 - 03:24:50 EST


On Tue, Sep 15, 2026 at 12:41:03PM -0500, Kendall Willis wrote:
> On 19:07-20260915, Krzysztof Kozlowski wrote:
> > On 15/09/2026 19:05, Krzysztof Kozlowski wrote:
> > > On 15/09/2026 18:48, Kendall Willis wrote:
> > >> On 12:13-20260914, Krzysztof Kozlowski wrote:
> > >>> On Sat, Sep 12, 2026 at 04:33:53PM -0500, Kendall Willis wrote:
> > >>>> Document pinctrl properties on the gpio-keys device node. By using the
> > >>>> wakeup pinctrl state, the pins are able to wakeup the system from a
> > >>>> low-power state. The default pinctrl state describes the default pin
> > >>>> configuration.
> > >>>>
> > >>>> Signed-off-by: Kendall Willis <k-willis@xxxxxx>
> > >>>> ---
> > >>>> Documentation/devicetree/bindings/input/gpio-keys.yaml | 16 ++++++++++++++++
> > >>>> 1 file changed, 16 insertions(+)
> > >>>>
> > >>>> diff --git a/Documentation/devicetree/bindings/input/gpio-keys.yaml b/Documentation/devicetree/bindings/input/gpio-keys.yaml
> > >>>> index cc78c2152921308fe0cad3e29ca78a5fad08f066..b554933e93412d8b6c2ec401dc1e1eeff57d4190 100644
> > >>>> --- a/Documentation/devicetree/bindings/input/gpio-keys.yaml
> > >>>> +++ b/Documentation/devicetree/bindings/input/gpio-keys.yaml
> > >>>> @@ -22,6 +22,22 @@ properties:
> > >>>>
> > >>>> poll-interval: true
> > >>>>
> > >>>> + pinctrl-0:
> > >>>> + description: Default pinctrl state
> > >>>> +
> > >>>> + pinctrl-1:
> > >>>> + description: Wakeup pinctrl state
> > >>>> +
> > >>>> + pinctrl-names:
> > >>>> + description:
> > >>>> + When present should contain at least "default" describing the default pin
> > >>>> + states. The second state called "wakeup" describes the pins in their
> > >>>> + wakeup configuration required to exit sleep states.
> > >>>> + minItems: 1
> > >>>> + items:
> > >>>> + - const: default
> > >>>> + - const: wakeup
> > >>>
> > >>> This will introduce new warnings, which should be being fixed in this
> > >>> patchset (e.g. at91-kizbox3-hs.dts).
> > >>>
> > >>
> > >> Will fix the binding to work with current device trees.
> > >>
> > >>> But nevertheless, isn't second state the sleep state? How can you
> > >>> configure pins for the wakeup state - like being in the wakeup? You
> > >>> configure the pins for given state, which will be a system suspend, so
> > >>> sleep?
> > >>>
> > >>
> > >> The sleep state usually refers to putting the pins in a state to save
> > >> power. The wakeup pinctrl state is for putting the pins in a state to
> > >> allow wakeup from suspend for that device. Both 'sleep' and 'wakeup'
> > >> are for system suspend, but they fill different functions. The CAN
> > >> subsystem also uses the 'wakeup' state in addition to the 'sleep' state
> > >> [1].
> > >
> > > So you mean sleep would be a separate state? But then aren't both
> > > exactly the same states? IOW, if device is wakeup-source, it will have
> > > for "sleep" state pin configuration allowing to wakeup.
>
> The 'sleep' and 'wakeup' pin states are both used for suspend. They
> would just be used separately since only one could be used at a time.
> The reason 'wakeup' is separated out is because it is more specific for
> allowing wakeup from the device.

If they cannot be used together, then it is the same state.

We do not define pinctrl states as XOR of "active-high-drive-str" or
"active-no-pull-up" or "active-whatever-other-mode", because these are
defined by the actual values of pincfg of one, single "active" config.

>
> >
> > And about CAN, I see no use of both sleep and wakeup:
> > git grep pinctrl-names | grep wakeup
> >
> > So if you use existing code as reason for this change, then existing
> > code tells they are the same.
> >
>
> Yes, as of now both are not being used at the same time. I was more

Then it is simply sleep.

Best regards,
Krzysztof