Devicetree
 help / color / mirror / Atom feed
* [PATCH v4] spi: dt-bindings: microchip,pic32mzda-spi: Convert to DT schema
@ 2026-08-14  8:32 Udaya Kiran Challa
  2026-08-14  9:21 ` sashiko-bot
  2026-08-14 14:54 ` Mark Brown
  0 siblings, 2 replies; 3+ messages in thread
From: Udaya Kiran Challa @ 2026-08-14  8:32 UTC (permalink / raw)
  To: broonie, robh, krzk+dt, conor+dt
  Cc: skhan, me, linux-spi, devicetree, linux-kernel,
	Udaya Kiran Challa, Krzysztof Kozlowski

Convert Microchip PIC32 SPI controller devicetree binding
from legacy text format to DT schema.

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Udaya Kiran Challa <challauday369@gmail.com>
---
Changelog:
Changes since v3:
- Change maintainer to SPI subsystem maintainer

Link to v3: https://lore.kernel.org/all/20260617101009.148851-1-challauday369@gmail.com/

Changes since v2:
- Add cs-gpios to required property

Link to v2: https://lore.kernel.org/all/20260615115311.515404-1-challauday369@gmail.com/

Changes since v1:
- Rename schema file to microchip,pic32mzda-spi.yaml
- Update subject prefix to match SPI DT binding conventions

Link to v1:https://lore.kernel.org/all/20260614175005.435826-1-challauday369@gmail.com/
---
 .../bindings/spi/microchip,pic32mzda-spi.yaml | 82 +++++++++++++++++++
 .../bindings/spi/microchip,spi-pic32.txt      | 34 --------
 2 files changed, 82 insertions(+), 34 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/spi/microchip,pic32mzda-spi.yaml
 delete mode 100644 Documentation/devicetree/bindings/spi/microchip,spi-pic32.txt

diff --git a/Documentation/devicetree/bindings/spi/microchip,pic32mzda-spi.yaml b/Documentation/devicetree/bindings/spi/microchip,pic32mzda-spi.yaml
new file mode 100644
index 000000000000..2ef3480fa63e
--- /dev/null
+++ b/Documentation/devicetree/bindings/spi/microchip,pic32mzda-spi.yaml
@@ -0,0 +1,82 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/spi/microchip,pic32mzda-spi.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip PIC32MZDA SPI Controller
+
+maintainers:
+  - Mark Brown <broonie@kernel.org>
+
+allOf:
+  - $ref: spi-controller.yaml#
+
+properties:
+  compatible:
+    const: microchip,pic32mzda-spi
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    items:
+      - description: Fault interrupt
+      - description: Receive interrupt
+      - description: Transmit interrupt
+
+  interrupt-names:
+    items:
+      - const: fault
+      - const: rx
+      - const: tx
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    items:
+      - const: mck0
+
+  cs-gpios:
+    maxItems: 1
+
+  dmas:
+    items:
+      - description: RX DMA channel
+      - description: TX DMA channel
+
+  dma-names:
+    items:
+      - const: spi-rx
+      - const: spi-tx
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - interrupt-names
+  - clocks
+  - clock-names
+  - cs-gpios
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/gpio/gpio.h>
+
+    spi@1f821000 {
+        compatible = "microchip,pic32mzda-spi";
+        reg = <0x1f821000 0x200>;
+        interrupts = <109 IRQ_TYPE_LEVEL_HIGH>,
+                     <110 IRQ_TYPE_LEVEL_HIGH>,
+                     <111 IRQ_TYPE_LEVEL_HIGH>;
+        interrupt-names = "fault", "rx", "tx";
+        clocks = <&PBCLK2>;
+        clock-names = "mck0";
+        cs-gpios = <&gpio3 4 GPIO_ACTIVE_LOW>;
+        dmas = <&dma 134>, <&dma 135>;
+        dma-names = "spi-rx", "spi-tx";
+    };
diff --git a/Documentation/devicetree/bindings/spi/microchip,spi-pic32.txt b/Documentation/devicetree/bindings/spi/microchip,spi-pic32.txt
deleted file mode 100644
index 79de379f4dc0..000000000000
--- a/Documentation/devicetree/bindings/spi/microchip,spi-pic32.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-Microchip PIC32 SPI Master controller
-
-Required properties:
-- compatible: Should be "microchip,pic32mzda-spi".
-- reg: Address and length of register space for the device.
-- interrupts: Should contain all three spi interrupts in sequence
-              of <fault-irq>, <receive-irq>, <transmit-irq>.
-- interrupt-names: Should be "fault", "rx", "tx" in order.
-- clocks: Phandle of the clock generating SPI clock on the bus.
-- clock-names: Should be "mck0".
-- cs-gpios: Specifies the gpio pins to be used for chipselects.
-            See: Documentation/devicetree/bindings/spi/spi-bus.txt
-
-Optional properties:
-- dmas: Two or more DMA channel specifiers following the convention outlined
-        in Documentation/devicetree/bindings/dma/dma.txt
-- dma-names: Names for the dma channels. There must be at least one channel
-             named "spi-tx" for transmit and named "spi-rx" for receive.
-
-Example:
-
-spi1: spi@1f821000 {
-        compatible = "microchip,pic32mzda-spi";
-        reg = <0x1f821000 0x200>;
-        interrupts = <109 IRQ_TYPE_LEVEL_HIGH>,
-                     <110 IRQ_TYPE_LEVEL_HIGH>,
-                     <111 IRQ_TYPE_LEVEL_HIGH>;
-        interrupt-names = "fault", "rx", "tx";
-        clocks = <&PBCLK2>;
-        clock-names = "mck0";
-        cs-gpios = <&gpio3 4 GPIO_ACTIVE_LOW>;
-        dmas = <&dma 134>, <&dma 135>;
-        dma-names = "spi-rx", "spi-tx";
-};
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v4] spi: dt-bindings: microchip,pic32mzda-spi: Convert to DT schema
  2026-08-14  8:32 [PATCH v4] spi: dt-bindings: microchip,pic32mzda-spi: Convert to DT schema Udaya Kiran Challa
@ 2026-08-14  9:21 ` sashiko-bot
  2026-08-14 14:54 ` Mark Brown
  1 sibling, 0 replies; 3+ messages in thread
From: sashiko-bot @ 2026-08-14  9:21 UTC (permalink / raw)
  To: Udaya Kiran Challa; +Cc: robh, devicetree, conor+dt

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] The schema incorrectly restricts `cs-gpios` to `maxItems: 1` and makes it strictly required, breaking multi-device and grounded-CS SPI bus configurations.
--

--- Patch [1]: [PATCH v4] spi: dt-bindings: microchip,pic32mzda-spi: Convert to DT schema ---
commit fca958be633f7ae75e390f0bb61a2c6c29a85193
Author: Udaya Kiran Challa <challauday369@gmail.com>

spi: dt-bindings: microchip,pic32mzda-spi: Convert to DT schema

Convert Microchip PIC32 SPI controller devicetree binding from legacy text
format to DT schema.

Link to v3: https://lore.kernel.org/all/20260617101009.148851-1-challauday369@gmail.com/
Link to v2: https://lore.kernel.org/all/20260615115311.515404-1-challauday369@gmail.com/
Link to v1: https://lore.kernel.org/all/20260614175005.435826-1-challauday369@gmail.com/

> diff --git a/Documentation/devicetree/bindings/spi/microchip,pic32mzda-spi.yaml b/Documentation/devicetree/bindings/spi/microchip,pic32mzda-spi.yaml
> new file mode 100644
> index 0000000000000..2ef3480fa63e4
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/spi/microchip,pic32mzda-spi.yaml

[ ... ]

> +  clocks:
> +    maxItems: 1
> +
> +  clock-names:
> +    items:
> +      - const: mck0
> +
> +  cs-gpios:
> +    maxItems: 1

[Severity: Medium]
Does this limit the controller to a single device? The legacy text binding
explicitly allowed multiple pins to be used for chip selects. 

The SPI core in drivers/spi/spi.c supports multiple devices by dynamically
expanding the number of chip selects if multiple GPIOs are provided. Setting
this to a maximum of one breaks valid multiplexed SPI bus configurations.

> +
> +  dmas:
> +    items:
> +      - description: RX DMA channel
> +      - description: TX DMA channel

[ ... ]

> +required:
> +  - compatible
> +  - reg
> +  - interrupts
> +  - interrupt-names
> +  - clocks
> +  - clock-names
> +  - cs-gpios

[Severity: Medium]
Should cs-gpios be strictly required? 

Making it mandatory breaks device tree backward compatibility for valid
hardware configurations where a single SPI device's chip select is permanently
tied to its active state (e.g., tied to ground). In such tied-low
configurations, no software chip select toggling is needed, so the property
is legitimately omitted from the hardware description.

> +
> +unevaluatedProperties: false
> +
> +examples:

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260814083221.34606-1-challauday369@gmail.com?part=1

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v4] spi: dt-bindings: microchip,pic32mzda-spi: Convert to DT schema
  2026-08-14  8:32 [PATCH v4] spi: dt-bindings: microchip,pic32mzda-spi: Convert to DT schema Udaya Kiran Challa
  2026-08-14  9:21 ` sashiko-bot
@ 2026-08-14 14:54 ` Mark Brown
  1 sibling, 0 replies; 3+ messages in thread
From: Mark Brown @ 2026-08-14 14:54 UTC (permalink / raw)
  To: Udaya Kiran Challa
  Cc: robh, krzk+dt, conor+dt, skhan, me, linux-spi, devicetree,
	linux-kernel, Krzysztof Kozlowski

[-- Attachment #1: Type: text/plain, Size: 321 bytes --]

On Fri, Aug 14, 2026 at 02:02:21PM +0530, Udaya Kiran Challa wrote:
> Convert Microchip PIC32 SPI controller devicetree binding
> from legacy text format to DT schema.

> +maintainers:
> +  - Mark Brown <broonie@kernel.org>

Try again!  :P  I think the DT people had some default they used for
cases like this, but ICBW?

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-08-14 14:55 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-14  8:32 [PATCH v4] spi: dt-bindings: microchip,pic32mzda-spi: Convert to DT schema Udaya Kiran Challa
2026-08-14  9:21 ` sashiko-bot
2026-08-14 14:54 ` Mark Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox