* [PATCH] dt-bindings: pinctrl: intel: Update to use generic bindings
@ 2019-12-18 6:20 Rahul Tanwar
2020-01-06 23:21 ` Linus Walleij
2020-01-13 17:38 ` Rob Herring
0 siblings, 2 replies; 4+ messages in thread
From: Rahul Tanwar @ 2019-12-18 6:20 UTC (permalink / raw)
To: linus.walleij, robh+dt, mark.rutland
Cc: linux-gpio, devicetree, linux-kernel, yixin.zhu, qi-ming.wu,
cheol.yong.kim, Rahul Tanwar
Kernel 5.5 adds generic pin mux & cfg node schema. Update pinctrl bindings
for LGM to use these newly added schemas. Also, rename filename to match
the compatible string.
Signed-off-by: Rahul Tanwar <rahul.tanwar@linux.intel.com>
---
.../devicetree/bindings/pinctrl/intel,lgm-io.yaml | 76 ++++++++++++++
.../bindings/pinctrl/intel,lgm-pinctrl.yaml | 116 ---------------------
2 files changed, 76 insertions(+), 116 deletions(-)
create mode 100644 Documentation/devicetree/bindings/pinctrl/intel,lgm-io.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/intel,lgm-pinctrl.yaml
diff --git a/Documentation/devicetree/bindings/pinctrl/intel,lgm-io.yaml b/Documentation/devicetree/bindings/pinctrl/intel,lgm-io.yaml
new file mode 100644
index 000000000000..a386fb520510
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/intel,lgm-io.yaml
@@ -0,0 +1,76 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/bindings/pinctrl/intel,lgm-io.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Intel Lightning Mountain SoC pinmux & GPIO controller binding
+
+maintainers:
+ - Rahul Tanwar <rahul.tanwar@linux.intel.com>
+
+description: |
+ Pinmux & GPIO controller controls pin multiplexing & configuration including
+ GPIO function selection & GPIO attributes configuration.
+
+allOf:
+ - $ref: pincfg-node.yaml#
+ - $ref: pinmux-node.yaml#
+
+properties:
+ compatible:
+ const: intel,lgm-io
+
+ 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: true
+ group: true
+ pins: true
+ pinmux: true
+ bias-pull-up: true
+ bias-pull-down: true
+ drive-strength: true
+ slew-rate: true
+ drive-open-drain: true
+ output-enable: true
+
+ required:
+ - function
+ - group
+
+ additionalProperties: false
+
+required:
+ - compatible
+ - reg
+
+additionalProperties: false
+
+examples:
+ # Pinmux controller node
+ - |
+ pinctrl: pinctrl@e2880000 {
+ compatible = "intel,lgm-io";
+ reg = <0xe2880000 0x100000>;
+
+ uart0-pins {
+ pins = <64>, /* UART_RX0 */
+ <65>; /* UART_TX0 */
+ function = "CONSOLE_UART0";
+ pinmux = <1>,
+ <1>;
+ groups = "CONSOLE_UART0";
+ };
+ };
+
+...
diff --git a/Documentation/devicetree/bindings/pinctrl/intel,lgm-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/intel,lgm-pinctrl.yaml
deleted file mode 100644
index 240d429f773b..000000000000
--- a/Documentation/devicetree/bindings/pinctrl/intel,lgm-pinctrl.yaml
+++ /dev/null
@@ -1,116 +0,0 @@
-# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
-%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@linux.intel.com>
-
-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-io
-
- 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.
-
- groups:
- $ref: /schemas/types.yaml#/definitions/string-array
- description:
- An array of strings identifying the list of groups.
-
- 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:
- description: |
- Selects the drive strength for the specified pins in mA.
- 0: 2 mA
- 1: 4 mA
- 2: 8 mA
- 3: 12 mA
- allOf:
- - $ref: /schemas/types.yaml#/definitions/uint32
- - enum: [0, 1, 2, 3]
-
- slew-rate:
- type: boolean
- description: |
- Sets slew rate for specified pins.
- 0: slow slew
- 1: fast slew
-
- drive-open-drain:
- type: boolean
-
- output-enable:
- type: boolean
-
- required:
- - function
- - groups
-
- additionalProperties: false
-
-required:
- - compatible
- - reg
-
-additionalProperties: false
-
-examples:
- # Pinmux controller node
- - |
- pinctrl: pinctrl@e2880000 {
- compatible = "intel,lgm-pinctrl";
- reg = <0xe2880000 0x100000>;
-
- uart0-pins {
- pins = <64>, /* UART_RX0 */
- <65>; /* UART_TX0 */
- function = "CONSOLE_UART0";
- pinmux = <1>,
- <1>;
- groups = "CONSOLE_UART0";
- };
- };
-
-...
--
2.11.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] dt-bindings: pinctrl: intel: Update to use generic bindings
2019-12-18 6:20 [PATCH] dt-bindings: pinctrl: intel: Update to use generic bindings Rahul Tanwar
@ 2020-01-06 23:21 ` Linus Walleij
2020-01-13 17:38 ` Rob Herring
1 sibling, 0 replies; 4+ messages in thread
From: Linus Walleij @ 2020-01-06 23:21 UTC (permalink / raw)
To: Rahul Tanwar
Cc: Rob Herring, Mark Rutland, open list:GPIO SUBSYSTEM,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
linux-kernel, yixin.zhu, qi-ming.wu, cheol.yong.kim
On Wed, Dec 18, 2019 at 7:20 AM Rahul Tanwar
<rahul.tanwar@linux.intel.com> wrote:
> Kernel 5.5 adds generic pin mux & cfg node schema. Update pinctrl bindings
> for LGM to use these newly added schemas. Also, rename filename to match
> the compatible string.
>
> Signed-off-by: Rahul Tanwar <rahul.tanwar@linux.intel.com>
Thanks a lot for fixing this Rahul!
Patch applied.
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] dt-bindings: pinctrl: intel: Update to use generic bindings
2019-12-18 6:20 [PATCH] dt-bindings: pinctrl: intel: Update to use generic bindings Rahul Tanwar
2020-01-06 23:21 ` Linus Walleij
@ 2020-01-13 17:38 ` Rob Herring
2020-01-13 21:25 ` Linus Walleij
1 sibling, 1 reply; 4+ messages in thread
From: Rob Herring @ 2020-01-13 17:38 UTC (permalink / raw)
To: Rahul Tanwar
Cc: Linus Walleij, Mark Rutland, open list:GPIO SUBSYSTEM,
devicetree, linux-kernel, yixin zhu, qi-ming.wu, cheol.yong.kim
On Wed, Dec 18, 2019 at 12:20 AM Rahul Tanwar
<rahul.tanwar@linux.intel.com> wrote:
>
> Kernel 5.5 adds generic pin mux & cfg node schema. Update pinctrl bindings
> for LGM to use these newly added schemas. Also, rename filename to match
> the compatible string.
>
> Signed-off-by: Rahul Tanwar <rahul.tanwar@linux.intel.com>
> ---
> .../devicetree/bindings/pinctrl/intel,lgm-io.yaml | 76 ++++++++++++++
> .../bindings/pinctrl/intel,lgm-pinctrl.yaml | 116 ---------------------
> 2 files changed, 76 insertions(+), 116 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/pinctrl/intel,lgm-io.yaml
> delete mode 100644 Documentation/devicetree/bindings/pinctrl/intel,lgm-pinctrl.yaml
Pretty sure I've said on multiple occasions to run 'make
dt_binding_check'... Linux-next is broken by this (and others).
> diff --git a/Documentation/devicetree/bindings/pinctrl/intel,lgm-io.yaml b/Documentation/devicetree/bindings/pinctrl/intel,lgm-io.yaml
> new file mode 100644
> index 000000000000..a386fb520510
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/pinctrl/intel,lgm-io.yaml
> @@ -0,0 +1,76 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/bindings/pinctrl/intel,lgm-io.yaml#
Drop 'bindings' from the path.
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Intel Lightning Mountain SoC pinmux & GPIO controller binding
> +
> +maintainers:
> + - Rahul Tanwar <rahul.tanwar@linux.intel.com>
> +
> +description: |
> + Pinmux & GPIO controller controls pin multiplexing & configuration including
> + GPIO function selection & GPIO attributes configuration.
> +
> +allOf:
> + - $ref: pincfg-node.yaml#
> + - $ref: pinmux-node.yaml#
This 'allOf' is at the wrong level...
> +
> +properties:
> + compatible:
> + const: intel,lgm-io
> +
> + reg:
> + maxItems: 1
> +
> +# Client device subnode's properties
> +patternProperties:
> + '-pins$':
> + type: object
...It should be here.
> + description:
> + Pinctrl node's client devices use subnodes for desired pin configuration.
> + Client device subnodes use below standard properties.
> +
> + properties:
> + function: true
> + group: true
> + pins: true
> + pinmux: true
> + bias-pull-up: true
> + bias-pull-down: true
> + drive-strength: true
> + slew-rate: true
> + drive-open-drain: true
> + output-enable: true
> +
> + required:
> + - function
> + - group
> +
> + additionalProperties: false
> +
> +required:
> + - compatible
> + - reg
> +
> +additionalProperties: false
> +
> +examples:
> + # Pinmux controller node
> + - |
> + pinctrl: pinctrl@e2880000 {
> + compatible = "intel,lgm-io";
> + reg = <0xe2880000 0x100000>;
> +
> + uart0-pins {
> + pins = <64>, /* UART_RX0 */
> + <65>; /* UART_TX0 */
> + function = "CONSOLE_UART0";
> + pinmux = <1>,
> + <1>;
> + groups = "CONSOLE_UART0";
'groups' is not a defined property. Should be 'group'.
> + };
> + };
> +
> +...
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] dt-bindings: pinctrl: intel: Update to use generic bindings
2020-01-13 17:38 ` Rob Herring
@ 2020-01-13 21:25 ` Linus Walleij
0 siblings, 0 replies; 4+ messages in thread
From: Linus Walleij @ 2020-01-13 21:25 UTC (permalink / raw)
To: Rob Herring
Cc: Rahul Tanwar, Mark Rutland, open list:GPIO SUBSYSTEM,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
linux-kernel, yixin zhu, qi-ming.wu, cheol.yong.kim
On Mon, Jan 13, 2020 at 6:38 PM Rob Herring <robh+dt@kernel.org> wrote:
> > +$id: http://devicetree.org/schemas/bindings/pinctrl/intel,lgm-io.yaml#
>
> Drop 'bindings' from the path.
I fixed this.
> > +allOf:
> > + - $ref: pincfg-node.yaml#
> > + - $ref: pinmux-node.yaml#
>
> This 'allOf' is at the wrong level...
(...)
> > +# Client device subnode's properties
> > +patternProperties:
> > + '-pins$':
> > + type: object
>
> ...It should be here.
I moved this.
> > + properties:
> > + function: true
> > + group: true
This should have both groups and group.
> > + pins: true
> > + pinmux: true
> > + bias-pull-up: true
> > + bias-pull-down: true
> > + drive-strength: true
> > + slew-rate: true
> > + drive-open-drain: true
> > + output-enable: true
> > +
> > + required:
> > + - function
> > + - group
This should have groups as compulsory.
> > + uart0-pins {
> > + pins = <64>, /* UART_RX0 */
> > + <65>; /* UART_TX0 */
> > + function = "CONSOLE_UART0";
> > + pinmux = <1>,
> > + <1>;
> > + groups = "CONSOLE_UART0";
>
> 'groups' is not a defined property. Should be 'group'.
Actually not in this case.
There was an error in commit 3af50e548019f6ee26d0ed4340f4ab980f884696
"dt-bindings: pinctrl: Convert generic pin mux and config properties to schema"
A function has a 1-to-many relationship to groups so it should be "groups"
for the multiplexing (pluralis).
A pin config on the other hand, such as "set slewrate for all the pins in
this pin group" has a 1-to-1 relationship to a group (singularis).
I am trying to fix it all up in one patch.
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2020-01-13 21:25 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-18 6:20 [PATCH] dt-bindings: pinctrl: intel: Update to use generic bindings Rahul Tanwar
2020-01-06 23:21 ` Linus Walleij
2020-01-13 17:38 ` Rob Herring
2020-01-13 21:25 ` Linus Walleij
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).