Devicetree
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: Udaya Kiran Challa <challauday369@gmail.com>
Cc: linusw@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org,
	skhan@linuxfoundation.org, me@brighamcampbell.com,
	linux-gpio@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3] dt-bindings: pinctrl: microchip,pic32mzda-pinctrl: Convert to DT schema
Date: Tue, 21 Jul 2026 09:05:13 -0500	[thread overview]
Message-ID: <20260721140513.GA3492266-robh@kernel.org> (raw)
In-Reply-To: <20260719183431.124061-1-challauday369@gmail.com>

On Mon, Jul 20, 2026 at 12:04:31AM +0530, Udaya Kiran Challa wrote:
> Convert Microchip PIC32 Pin Controller devicetree binding
> from legacy text format to DT schema.
> 
> Signed-off-by: Udaya Kiran Challa <challauday369@gmail.com>
> ---
> Changelog:
> Changes since v2:
> - Add container node for grouped pin configuration sub-nodes
> - Correct regex patterns of direct and nested child nodes
> - Fix interrupts values in uart2 example
> 
> Link to v2:https://lore.kernel.org/all/20260707144223.120417-1-challauday369@gmail.com/
> 
> Changes since v1:
> - Add interrupts and clocks to uart2 example to satisfy uart schema validation
> - Corect regex patterns to accept standard DT node naming conventions
> - Add function property to top-level pin configuration nodes
> - Remove restrictive enum from function property to support all mux functions
> 
> Link to v1:https://lore.kernel.org/all/20260705132521.159522-1-challauday369@gmail.com/
> ---
>  .../pinctrl/microchip,pic32-pinctrl.txt       |  60 -------
>  .../pinctrl/microchip,pic32mzda-pinctrl.yaml  | 153 ++++++++++++++++++
>  2 files changed, 153 insertions(+), 60 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/pinctrl/microchip,pic32-pinctrl.txt
>  create mode 100644 Documentation/devicetree/bindings/pinctrl/microchip,pic32mzda-pinctrl.yaml
> 
> diff --git a/Documentation/devicetree/bindings/pinctrl/microchip,pic32-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/microchip,pic32-pinctrl.txt
> deleted file mode 100644
> index 51efd2085113..000000000000
> --- a/Documentation/devicetree/bindings/pinctrl/microchip,pic32-pinctrl.txt
> +++ /dev/null
> @@ -1,60 +0,0 @@
> -* Microchip PIC32 Pin Controller
> -
> -Please refer to pinctrl-bindings.txt, ../gpio/gpio.txt, and
> -../interrupt-controller/interrupts.txt for generic information regarding
> -pin controller, GPIO, and interrupt bindings.
> -
> -PIC32 'pin configuration node' is a node of a group of pins which can be
> -used for a specific device or function. This node represents configurations of
> -pins, optional function, and optional mux related configuration.
> -
> -Required properties for pin controller node:
> - - compatible: "microchip,pic32mada-pinctrl"
> - - reg: Address range of the pinctrl registers.
> - - clocks: Clock specifier (see clock bindings for details)
> -
> -Required properties for pin configuration sub-nodes:
> - - pins: List of pins to which the configuration applies.
> -
> -Optional properties for pin configuration sub-nodes:
> -----------------------------------------------------
> - - function: Mux function for the specified pins.
> - - bias-pull-up: Enable weak pull-up.
> - - bias-pull-down: Enable weak pull-down.
> - - input-enable: Set the pin as an input.
> - - output-low: Set the pin as an output level low.
> - - output-high: Set the pin as an output level high.
> - - microchip,digital: Enable digital I/O.
> - - microchip,analog: Enable analog I/O.
> -
> -Example:
> -
> -pic32_pinctrl: pinctrl@1f801400{
> -	#address-cells = <1>;
> -	#size-cells = <1>;
> -	compatible = "microchip,pic32mzda-pinctrl";
> -	reg = <0x1f801400 0x400>;
> -	clocks = <&rootclk PB1CLK>;
> -
> -	pinctrl_uart2: pinctrl_uart2 {
> -		uart2-tx {
> -			pins = "G9";
> -			function = "U2TX";
> -			microchip,digital;
> -			output-low;
> -		};
> -		uart2-rx {
> -			pins = "B0";
> -			function = "U2RX";
> -			microchip,digital;
> -			input-enable;
> -		};
> -	};
> -};
> -
> -uart2: serial@1f822200 {
> -	compatible = "microchip,pic32mzda-uart";
> -	reg = <0x1f822200 0x50>;
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&pinctrl_uart2>;
> -};
> diff --git a/Documentation/devicetree/bindings/pinctrl/microchip,pic32mzda-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/microchip,pic32mzda-pinctrl.yaml
> new file mode 100644
> index 000000000000..7a36e5ff61dd
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/pinctrl/microchip,pic32mzda-pinctrl.yaml
> @@ -0,0 +1,153 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/pinctrl/microchip,pic32mzda-pinctrl.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Microchip PIC32 Pin Controller
> +
> +maintainers:
> +  - Linus Walleij <linusw@kernel.org>
> +
> +description: |

Don't need '|' here.

> +  PIC32 pin configuration node is a node of a group of pins which can be used
> +  for a specific device or function. This node represents configurations of
> +  pins, optional function, and optional mux related configuration.
> +
> +properties:
> +  compatible:
> +    const: microchip,pic32mzda-pinctrl
> +
> +  reg:
> +    maxItems: 1
> +
> +  clocks:
> +    maxItems: 1
> +

> +  '#address-cells':
> +    const: 1
> +
> +  '#size-cells':
> +    const: 1

These 2 aren't needed. No 'reg' in the child nodes.

> +
> +patternProperties:
> +  '^(?!pinctrl_)[a-z]+[0-9]*_[a-z0-9_]+$':
> +    type: object
> +    $ref: pinmux-node.yaml#
> +
> +    properties:
> +      pins:
> +        description: |

Don't need '|' here.

> +          List of pins to which the configuration applies.
> +        items:
> +          type: string
> +        minItems: 1
> +
> +      function: true
> +
> +      bias-pull-up: true
> +      bias-pull-down: true
> +      input-enable: true
> +      output-low: true
> +      output-high: true
> +
> +      microchip,digital:
> +        description: Enable digital I/O.
> +        type: boolean
> +
> +      microchip,analog:
> +        description: Enable analog I/O.
> +        type: boolean
> +
> +    required:
> +      - pins

Put all this under a $defs entry and then do:

additionalProperties:
  oneOf:
    - additionalProperties:
        $ref: $defs/pin-node
    - $ref: $defs/pin-node

Rob

      parent reply	other threads:[~2026-07-21 14:05 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-19 18:34 [PATCH v3] dt-bindings: pinctrl: microchip,pic32mzda-pinctrl: Convert to DT schema Udaya Kiran Challa
2026-07-19 18:42 ` sashiko-bot
2026-07-21 14:05 ` Rob Herring [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260721140513.GA3492266-robh@kernel.org \
    --to=robh@kernel.org \
    --cc=challauday369@gmail.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linusw@kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=me@brighamcampbell.com \
    --cc=skhan@linuxfoundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox