Hi Rob, Thanks for feedback. On 13/11/2019 3:14 AM, Rob Herring wrote: > On Mon, Nov 11, 2019 at 06:11:30PM +0800, Rahul Tanwar wrote: >> Add dt bindings document for pinmux & GPIO controller driver of >> Intel Lightning Mountain SoC. >> >> Signed-off-by: Rahul Tanwar <rahul.tanwar@xxxxxxxxxxxxxxx> >> --- >> .../bindings/pinctrl/intel,lgm-pinctrl.yaml | 98 ++++++++++++++++++++++ >> 1 file changed, 98 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/pinctrl/intel,lgm-pinctrl.yaml >> >> diff --git a/Documentation/devicetree/bindings/pinctrl/intel,lgm-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/intel,lgm-pinctrl.yaml >> new file mode 100644 >> index 000000000000..d54a3bda1f4f >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/pinctrl/intel,lgm-pinctrl.yaml >> @@ -0,0 +1,98 @@ >> +# SPDX-License-Identifier: GPL-2.0-only > For new bindings: > > # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) Well noted. >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/bindings/pinctrl/intel,lgm-pinctrl.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: Intel Lightning Mountain SoC pinmux & GPIO controller binding >> + >> +maintainers: >> + - Rahul Tanwar <rahul.tanwar@xxxxxxxxxxxxxxx> >> + >> +description: | >> + Pinmux & GPIO controller controls pin multiplexing & configuration including >> + GPIO function selection & GPIO attributes configuration. >> + >> + Please refer to [1] for details of the common pinctrl bindings used by the >> + client devices. >> + >> + [1] Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt >> + >> +properties: >> + compatible: >> + const: intel,lgm-pinctrl >> + >> + reg: >> + maxItems: 1 >> + >> +# Client device subnode's properties >> +patternProperties: >> + '-pins$': >> + type: object >> + description: >> + Pinctrl node's client devices use subnodes for desired pin configuration. >> + Client device subnodes use below standard properties. >> + >> + properties: >> + function: >> + $ref: /schemas/types.yaml#/definitions/string >> + description: >> + A string containing the name of the function to mux to the group. > Possible strings should be listed out here. Possible number of strings here is a huge number. I agree that it makes sense to list out the possible strings here but when the possible strings are huge, can we just omit specifying all of the strings ? I see many examples here where they only specify the string in examples. >> + >> + groups: >> + $ref: /schemas/types.yaml#/definitions/string-array >> + description: >> + An array of strings identifying the list of groups. > Possible strings should be listed out here. Same point for groups. Too many strings to list out here. >> + >> + pins: >> + $ref: /schemas/types.yaml#/definitions/uint32-array >> + description: >> + List of pins to select with this function. >> + >> + pinmux: >> + description: The applicable mux group. >> + allOf: >> + - $ref: "/schemas/types.yaml#/definitions/uint32-array" >> + >> + bias-pull-up: >> + type: boolean >> + bias-pull-down: >> + type: boolean >> + drive-strength: >> + type: boolean > Not a boolean. Need to define possible values. Agree. My mistake. Will fix it on v7. >> + slew-rate: >> + type: boolean > Not a boolean. Need to define possible values. In our case, 0 here means slow slew & 1 means fast slew. There are no other possible values. Probably, i can add it in description while keeping data type as boolean. >> + drive-open-drain: >> + type: boolean >> + output-enable: >> + type: boolean >> + >> + required: >> + - function >> + - groups > For the -pins nodes too: > > additionalProperties: false Well noted. >> + >> +required: >> + - compatible >> + - reg >> + >> +additionalProperties: false >> + >> +examples: >> + # Pinmux controller node >> + - | >> + pinctrl: pinctrl@e2880000 { >> + compatible = "intel,lgm-pinctrl"; >> + reg = <0xe2880000 0x100000>; >> + >> + # Client device subnode >> + uart0-pins: uart0 { > This fails 'make dt_binding_check'. Please fix and run that. Will run & fix it in v7. Thanks. Regards, Rahul