Skip to content

Commit

Permalink
dt-bindings: pinctrl: convert controller description to the json-schema
Browse files Browse the repository at this point in the history
This helps validating DTS and writing YAML files.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20211110165720.30242-1-zajec5@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  • Loading branch information
Rafał Miłecki authored and Linus Walleij committed Dec 2, 2021
1 parent f3e3e63 commit 896568e
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 40 deletions.
41 changes: 1 addition & 40 deletions Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
Original file line number Diff line number Diff line change
Expand Up @@ -97,47 +97,8 @@ For example:
};

== Pin controller devices ==
Required properties: See the pin controller driver specific documentation

Optional properties:
#pinctrl-cells: Number of pin control cells in addition to the index within the
pin controller device instance

pinctrl-use-default: Boolean. Indicates that the OS can use the boot default
pin configuration. This allows using an OS that does not have a
driver for the pin controller. This property can be set either
globally for the pin controller or in child nodes for individual
pin group control.

Pin controller devices should contain the pin configuration nodes that client
devices reference.

For example:

pincontroller {
... /* Standard DT properties for the device itself elided */

state_0_node_a {
...
};
state_1_node_a {
...
};
state_1_node_b {
...
};
}

The contents of each of those pin configuration child nodes is defined
entirely by the binding for the individual pin controller device. There
exists no common standard for this content. The pinctrl framework only
provides generic helper bindings that the pin controller driver can use.

The pin configuration nodes need not be direct children of the pin controller
device; they may be grandchildren, for example. Whether this is legal, and
whether there is any interaction between the child and intermediate parent
nodes, is again defined entirely by the binding for the individual pin
controller device.
See pinctrl.yaml

== Generic pin multiplexing node content ==

Expand Down
45 changes: 45 additions & 0 deletions Documentation/devicetree/bindings/pinctrl/pinctrl.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/pinctrl/pinctrl.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Pin controller device

maintainers:
- Linus Walleij <linus.walleij@linaro.org>
- Rafał Miłecki <rafal@milecki.pl>

description: |
Pin controller devices should contain the pin configuration nodes that client
devices reference.
The contents of each of those pin configuration child nodes is defined
entirely by the binding for the individual pin controller device. There
exists no common standard for this content. The pinctrl framework only
provides generic helper bindings that the pin controller driver can use.
The pin configuration nodes need not be direct children of the pin controller
device; they may be grandchildren, for example. Whether this is legal, and
whether there is any interaction between the child and intermediate parent
nodes, is again defined entirely by the binding for the individual pin
controller device.
properties:
$nodename:
pattern: "^(pinctrl|pinmux)(@[0-9a-f]+)?$"

"#pinctrl-cells":
description: >
Number of pin control cells in addition to the index within the pin
controller device instance.
pinctrl-use-default:
type: boolean
description: >
Indicates that the OS can use the boot default pin configuration. This
allows using an OS that does not have a driver for the pin controller.
This property can be set either globally for the pin controller or in
child nodes for individual pin group control.
additionalProperties: true

0 comments on commit 896568e

Please sign in to comment.