Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dt-bindings: pinctrl: convert controller description to the json-schema

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>

authored by

Rafał Miłecki and committed by
Linus Walleij
896568e5 f3e3e637

+46 -40
+1 -40
Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
··· 97 97 }; 98 98 99 99 == Pin controller devices == 100 - Required properties: See the pin controller driver specific documentation 101 100 102 - Optional properties: 103 - #pinctrl-cells: Number of pin control cells in addition to the index within the 104 - pin controller device instance 105 - 106 - pinctrl-use-default: Boolean. Indicates that the OS can use the boot default 107 - pin configuration. This allows using an OS that does not have a 108 - driver for the pin controller. This property can be set either 109 - globally for the pin controller or in child nodes for individual 110 - pin group control. 111 - 112 - Pin controller devices should contain the pin configuration nodes that client 113 - devices reference. 114 - 115 - For example: 116 - 117 - pincontroller { 118 - ... /* Standard DT properties for the device itself elided */ 119 - 120 - state_0_node_a { 121 - ... 122 - }; 123 - state_1_node_a { 124 - ... 125 - }; 126 - state_1_node_b { 127 - ... 128 - }; 129 - } 130 - 131 - The contents of each of those pin configuration child nodes is defined 132 - entirely by the binding for the individual pin controller device. There 133 - exists no common standard for this content. The pinctrl framework only 134 - provides generic helper bindings that the pin controller driver can use. 135 - 136 - The pin configuration nodes need not be direct children of the pin controller 137 - device; they may be grandchildren, for example. Whether this is legal, and 138 - whether there is any interaction between the child and intermediate parent 139 - nodes, is again defined entirely by the binding for the individual pin 140 - controller device. 101 + See pinctrl.yaml 141 102 142 103 == Generic pin multiplexing node content == 143 104
+45
Documentation/devicetree/bindings/pinctrl/pinctrl.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/pinctrl/pinctrl.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Pin controller device 8 + 9 + maintainers: 10 + - Linus Walleij <linus.walleij@linaro.org> 11 + - Rafał Miłecki <rafal@milecki.pl> 12 + 13 + description: | 14 + Pin controller devices should contain the pin configuration nodes that client 15 + devices reference. 16 + 17 + The contents of each of those pin configuration child nodes is defined 18 + entirely by the binding for the individual pin controller device. There 19 + exists no common standard for this content. The pinctrl framework only 20 + provides generic helper bindings that the pin controller driver can use. 21 + 22 + The pin configuration nodes need not be direct children of the pin controller 23 + device; they may be grandchildren, for example. Whether this is legal, and 24 + whether there is any interaction between the child and intermediate parent 25 + nodes, is again defined entirely by the binding for the individual pin 26 + controller device. 27 + 28 + properties: 29 + $nodename: 30 + pattern: "^(pinctrl|pinmux)(@[0-9a-f]+)?$" 31 + 32 + "#pinctrl-cells": 33 + description: > 34 + Number of pin control cells in addition to the index within the pin 35 + controller device instance. 36 + 37 + pinctrl-use-default: 38 + type: boolean 39 + description: > 40 + Indicates that the OS can use the boot default pin configuration. This 41 + allows using an OS that does not have a driver for the pin controller. 42 + This property can be set either globally for the pin controller or in 43 + child nodes for individual pin group control. 44 + 45 + additionalProperties: true