Re: [PATCH v3 2/3] dt-bindings: pps: pps-gpio: document optional pinctrl states
From: Rob Herring
Date: Thu Sep 17 2026 - 13:27:24 EST
On Thu, Sep 17, 2026 at 07:56:10AM +0000, Eliav Farber wrote:
> When the PPS input GPIO is routed through a pin controller, a board may
> need to mux those pins to a different function while pps-gpio is not
> driving PPS (for example after the driver is unbound or across a kexec).
>
> Document the optional "default" and "inactive" pinctrl-names and show
> both in the example. The "default" state selects the PPS/GPIO function
> and is applied by the driver core before probe; the optional "inactive"
> state, when present, describes the mux to restore when the driver is
> unbound or the system is shut down. The driver looks the states up by
> name, so "inactive" may appear in any position; it only requires that a
> "default" state also exists.
>
> Signed-off-by: Eliav Farber <farbere@xxxxxxxxxx>
> ---
> Changes in v3:
> - Do not constrain pinctrl-names to a fixed ["default", "inactive"]
> tuple. The driver looks the states up by name, so "inactive" may
> appear in any position and other states may coexist; only require
> (via "contains") that a "default" state exists, and reword the
> description accordingly
>
> Changes in v2:
> - Rename the released state from "idle" to "inactive"
>
> .../devicetree/bindings/pps/pps-gpio.yaml | 16 +++++++++++++++-
> 1 file changed, 15 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/pps/pps-gpio.yaml b/Documentation/devicetree/bindings/pps/pps-gpio.yaml
> index 383a838744eb..db6ecb17cb54 100644
> --- a/Documentation/devicetree/bindings/pps/pps-gpio.yaml
> +++ b/Documentation/devicetree/bindings/pps/pps-gpio.yaml
> @@ -28,6 +28,19 @@ properties:
> description: Indicates a falling edge assert, when present. Rising edge if absent.
> type: boolean
>
> + pinctrl-names:
> + description:
> + When the PPS input is muxed through a pin controller, the standard
> + "default" state selects the PPS/GPIO function and is applied by the
> + driver core before probe. If a state named "inactive" is also present,
> + it is selected when the driver is unbound or the system is shut down,
> + handing the pins back to their alternate function. The "inactive"
> + state, if used, requires a "default" state; its position among the
> + names does not matter.
Don't express in prose what can be defined in schema.
> + minItems: 1
> + contains:
> + const: default
minItems: 1
items:
- const: default
- const: inactive
And yes, position does matter. pinctrl-0 was already implicitly defined
as 'default'. You can't change it to pinctrl-1 now.
Rob