Thread (23 messages) 23 messages, 4 authors, 2021-12-10

Re: [PATCH v2 2/3] dt-bindings: mmc: Add bindings for LiteSDCard

From: "Gabriel L. Somlo" <gsomlo@gmail.com>
Date: 2021-12-06 16:00:40
Also in: linux-mmc, lkml

Hi Geert,

On Mon, Dec 06, 2021 at 11:18:18AM +0100, Geert Uytterhoeven wrote:
On Sat, Dec 4, 2021 at 9:41 PM Gabriel Somlo [off-list ref] wrote:
quoted
LiteSDCard is a small footprint, configurable SDCard core for FPGA
based system on chips.

Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
And after reviewing the driver...
quoted
--- /dev/null
+++ b/Documentation/devicetree/bindings/mmc/litex,mmc.yaml
@@ -0,0 +1,63 @@
+# SPDX-License-Identifier: GPL-2.0-or-later OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mmc/litex,mmc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: LiteX LiteSDCard device
+
+maintainers:
+  - Gabriel Somlo <gsomlo@gmail.com>
+
+description: |
+  LiteSDCard is a small footprint, configurable SDCard core for FPGA based
+  system on chips.
+
+  The hardware source is Open Source and can be found on at
+  https://github.com/enjoy-digital/litesdcard/.
+
+allOf:
+  - $ref: mmc-controller.yaml#
+
+properties:
+  compatible:
+    const: litex,mmc
+
+  reg:
+    items:
+      - description: PHY registers
+      - description: CORE registers
+      - description: DMA Reader buffer
+      - description: DMA Writer buffer
+      - description: IRQ registers
The last one is optional...
quoted
+
+  reg-names:
+    items:
+      - const: phy
+      - const: core
+      - const: reader
+      - const: writer
+      - const: irq
Likewise.
quoted
+
+  interrupts:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
reg-names, as the driver needs it (and it's good practice anyway).
quoted
+  - interrupts
Interrupts is optional.

I tried to link it to reg{,-names}:

    if:
      not:
        required:
          - interrupts
    then:
      properties:
        reg:
          maxItems: 4
        reg-names:
          maxItems: 4

but that doesn't seem to work. Anyone with a clue?
For now I'm queueing this up for v3, unless we get more ideas:
@@ -29,7 +29,9 @@ properties:
       - description: CORE registers
       - description: DMA Reader buffer
       - description: DMA Writer buffer
-      - description: IRQ registers
+      - description: IRQ registers (optional)
+    minItems: 4
+    maxItems: 5
 
   reg-names:
     items:
@@ -37,7 +39,9 @@ properties:
       - const: core
       - const: reader
       - const: writer
-      - const: irq
+      - const: irq (optional)
+    minItems: 4
+    maxItems: 5
 
   interrupts:
     maxItems: 1
@@ -45,7 +49,7 @@ properties:
 required:
   - compatible
   - reg
-  - interrupts
+  - reg-names
Some of the *.txt formatted files in Documentation/devicetree/bindings/mmc
had an explicit "Optional" section, but all the .yaml formatted ones
just seem to assume that if it's not under `required:`, it's
implicitly optional. So I'm removing `interrupts` from `required`, and
adding `reg-names`, as you pointed out.

Thanks,
--Gabriel

 
quoted
+
+additionalProperties: false
+
+examples:
+  - |
+    mmc: mmc@12005000 {
+        compatible = "litex,mmc";
+        reg = <0x12005000 0x100>,
+              <0x12003800 0x100>,
+              <0x12003000 0x100>,
+              <0x12004800 0x100>,
+              <0x12004000 0x100>;
+        reg-names = "phy", "core", "reader", "writer", "irq";
+        interrupts = <4>;
+    };
--
2.31.1

-- 
Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help