Re: [PATCH v6 2/2] dt-bindings: pinctrl: intel: Add for new SoC

From: Tanwar, Rahul
Date: Wed Nov 13 2019 - 01:05:49 EST



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