Re: [PATCH v2] dt-bindings: gpio: fsl,qoriq-gpio: allow gpio-hog child nodes

From: Krzysztof Kozlowski

Date: Tue Aug 25 2026 - 03:10:03 EST


On 24/08/2026 23:54, Vincent Jardin via B4 Relay wrote:
> From: Vincent Jardin <vjardin@xxxxxxx>
>
> The binding sets additionalProperties: false and describes no child nodes,
> so a gpio-hog on a QorIQ/Layerscape GPIO controller is rejected by
> dtbs_check as an unmatched node name, even though the hardware and the
> kernel both support it.
>
> Hogs are not a controller feature and need nothing from the driver:
> gpio-mpc8xxx.c does not mention them at all. A hog on this controller
> works today, only the schema rejects it.
>
> QorIQ and Layerscape boards do need them. These SoCs bring board-level
> reset, enable and mux-select lines out on the SoC GPIOs, and those lines
> have to be driven to a safe level at boot before any consumer claims them,
> which is exactly what a hog is for.
>
> Some boards in the tree already express this need where they can:
> fsl-ls1088a-ten64.dts and the tqmls1012a/ls1028a boards all carry hogs, but
> on I2C GPIO expanders, because that is the only place the schema currently
> supports them. No board uses one on this controller yet, so this fixes no
> current failure.
>
> Other GPIO bindings already carry the same block. gpio-mvebu.yaml and
> gpio-davinci.yaml use the identical "^(.+-hog(-[0-9]+)?)$" object requiring
> gpio-hog.

This paragraph is redundant. Frankly speaking, half of the entire commit
msg is redundant, because it states the obvious - GPIO controller may
have hogs in device nodes and this is a GPIO controller. Efficient
commit msgs are preferred over long ones.

>
> Signed-off-by: Vincent Jardin <vjardin@xxxxxxx>
> ---
> Changes in v2:
> - Change the commit message. Drop the dmesg excerpt: those hog names come
> from my out-of-tree dev git repo and are not in the tree (Frank Li)
> - Note: the hog call path is: gpiochip_hog_lines(), called from gpiochip_add_data_with_key()
> - Explain why these QorIQ SoCs need it
> - No change to the diff
> - Link to v1: https://lore.kernel.org/r/20260824-for-upstream-dt-qoriq-gpio-hog-v1-1-d75923bcecad@xxxxxxx
> ---
> Documentation/devicetree/bindings/gpio/fsl,qoriq-gpio.yaml | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/gpio/fsl,qoriq-gpio.yaml b/Documentation/devicetree/bindings/gpio/fsl,qoriq-gpio.yaml
> index 4cb2a6b9fabfb..a6252440e099b 100644
> --- a/Documentation/devicetree/bindings/gpio/fsl,qoriq-gpio.yaml
> +++ b/Documentation/devicetree/bindings/gpio/fsl,qoriq-gpio.yaml
> @@ -63,6 +63,13 @@ properties:
> GPIO registers are used as little endian. If not
> present registers are used as big endian by default.
>
> +patternProperties:
> + "^(.+-hog(-[0-9]+)?)$":

Pattern is: "^.+-hog(-[0-9]+)?$":
(outer brackets are redundant)

With these two fixed:

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxxxxxxxx>

Best regards,
Krzysztof