[PATCH v5] dt-bindings: mfd: rockchip,rk805: Convert pinctrl to DT schema

Rob Herring (Arm) robh at kernel.org
Tue Oct 6 08:52:16 PDT 2026


On Wed, 23 Sep 2026 16:30:01 +0800, Quchaosheng wrote:
> pinctrl-rk805.txt describes the pinmux controller that is part of the
> Rockchip RK805 PMIC. The PMIC itself is already described by
> rockchip,rk805.yaml, so the pinmux part belongs there as well: the
> pinctrl node is a child of the PMIC node, not a separate device.
> 
> Fold the pinmux description into rockchip,rk805.yaml and drop the
> standalone text binding.
> 
> While doing so, add the missing child node schema. The rockchip,rk805.yaml
> schema ends with 'additionalProperties: false' but did not describe the pin
> configuration child nodes at all, so a valid pinmux node like the one shown
> in pinctrl-rk805.txt was rejected:
> 
>     pmic at 18 (rockchip,rk805): 'rk805-default-pins' does not match any of
>     the regexes: '^pinctrl-[0-9]+$'
> 
> The pin configuration nodes require 'pins'; without it a node that names
> no pin is accepted silently, while the text binding it replaces listed
> 'pins' as required. The RK805 exposes two output-only GPIOs, so 'pins' is
> an enum of gpio0 and gpio1 and a typo such as "gpio2" is caught.
> 
> The nodes may be direct children of the PMIC, or sit one level deeper
> inside a "pinmux" grouping node, which is the layout the example of the
> text binding used. pinctrl-bindings.txt allows the configuration nodes to
> be grandchildren of the pin controller, and the driver reaches both
> layouts: pinconf_generic_dt_node_to_map() parses the referenced node and
> then walks its children. The example shows both.
> 
> The example also regains the gpio-controller and #gpio-cells lines that the
> example of the text binding had.
> 
> Reported-by: Sashiko <sashiko-bot at kernel.org>
> Link: https://sashiko.dev/#/patchset/20260923034245.396417-1-quchaosheng000406@163.com?part=1
> Link: https://sashiko.dev/#/patchset/20260923062746.516666-1-quchaosheng000406@163.com?part=1
> Link: https://sashiko.dev/#/patchset/20260923074337.575122-1-quchaosheng000406@163.com?part=1
> Assisted-by: LLM
> Signed-off-by: Quchaosheng <quchaosheng000406 at 163.com>
> ---
> Changes in v5:
> - The child nodes of the "pinmux" node were matched with a patternProperties
>   entry guarded by "if: type: object". That has no "else", so a non-object
>   property of the grouping node, a misspelled "typo = <1>;" for instance,
>   matched the pattern and passed. Match them with additionalProperties
>   against the same definition instead. dtschema puts phandle and status into
>   the allowed properties there, so the grouping node keeps the phandle that
>   pinctrl-0 points at, and every other property has to be a pin
>   configuration node.
> 
> Changes in v4:
> - Describe the pin configuration nodes both as direct children and inside a
>   "pinmux" grouping node. Only the flat form was described, so the layout
>   used by the example of the text binding this replaces was still rejected:
> 
>     pmic at 18 (rockchip,rk805): 'pinmux' does not match any of the regexes:
>       '-pins$', '^pinctrl-[0-9]+$'
> 
>   The nodes are now one definition referenced from both places, and the
>   example shows the flat node and a "pinmux" node holding one.
> - Name the binding in the summary, as
>   Documentation/devicetree/bindings/submitting-patches.rst shows for a
>   conversion ("dt-bindings: iio: adc: adi,ad7476: Convert to DT schema").
> 
> Changes in v3:
> - Capitalize the summary phrase. dt-bindings: mfd: titles are capitalized
>   after the subsystem prefix (Add 61, Convert 20 against convert 6).
> - Add gpio-controller and #gpio-cells to the example, which the text
>   binding's example had and the conversion dropped.
> - gpio-controller and #gpio-cells are deliberately *not* added to the
>   required list. rv1108-evb, rv1108-elgin-r1 and rk3328-a1 do not set
>   them, so requiring them breaks three in-tree boards:
> 
>     rv1108-evb.dtb: pmic at 18 (rockchip,rk805): 'gpio-controller' is a required property
> 
>   No rk8xx PMIC schema requires the pair, and gpio.yaml already enforces
>   that they appear together ("'#gpio-cells' is a dependency of
>   'gpio-controller'"). The pinctrl driver calls devm_gpiochip_add_data()
>   unconditionally, so the property is not what makes the GPIO controller
>   work either.
> 
> Changes in v2:
> - Require 'pins' in the pin configuration nodes. Without it a node that
>   names no pin passes validation, while the text binding listed 'pins'
>   as required.
> ---
>  .../bindings/mfd/rockchip,rk805.yaml          | 60 +++++++++++++++++-
>  .../bindings/pinctrl/pinctrl-rk805.txt        | 63 -------------------
>  2 files changed, 59 insertions(+), 64 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/pinctrl/pinctrl-rk805.txt
> 

Reviewed-by: Rob Herring (Arm) <robh at kernel.org>




More information about the linux-arm-kernel mailing list