All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/3] dt-bindings: PCI: uniphier: Fix endpoint descriptions
@ 2022-04-07  1:22 ` Kunihiko Hayashi
  0 siblings, 0 replies; 12+ messages in thread
From: Kunihiko Hayashi @ 2022-04-07  1:22 UTC (permalink / raw)
  To: Jingoo Han, Gustavo Pimentel, Bjorn Helgaas, Rob Herring,
	Krzysztof Kozlowski
  Cc: Masami Hiramatsu, linux-pci, devicetree, linux-arm-kernel,
	linux-kernel, Kunihiko Hayashi

This series fixes dt-schema descriptions for PCI endpoint controller
implemented in UniPhier SoCs.

Changes since v1:
- Fix "config" in the Patch 1 commit message to "addr_space"

Kunihiko Hayashi (3):
  dt-bindings: PCI: designware-ep: Increase maxItems of reg and
    reg-names
  dt-bindings: PCI: uniphier-ep: Clean up reg, clocks, resets, and their
    names using compatible string
  ARM: dts: uniphier: Remove compatible "snps,dw-pcie-ep" from Pro5
    pcie-ep node

 .../bindings/pci/snps,dw-pcie-ep.yaml         |  4 +-
 .../pci/socionext,uniphier-pcie-ep.yaml       | 84 ++++++++++++-------
 arch/arm/boot/dts/uniphier-pro5.dtsi          |  3 +-
 3 files changed, 59 insertions(+), 32 deletions(-)

-- 
2.25.1


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

* [PATCH v2 0/3] dt-bindings: PCI: uniphier: Fix endpoint descriptions
@ 2022-04-07  1:22 ` Kunihiko Hayashi
  0 siblings, 0 replies; 12+ messages in thread
From: Kunihiko Hayashi @ 2022-04-07  1:22 UTC (permalink / raw)
  To: Jingoo Han, Gustavo Pimentel, Bjorn Helgaas, Rob Herring,
	Krzysztof Kozlowski
  Cc: Masami Hiramatsu, linux-pci, devicetree, linux-arm-kernel,
	linux-kernel, Kunihiko Hayashi

This series fixes dt-schema descriptions for PCI endpoint controller
implemented in UniPhier SoCs.

Changes since v1:
- Fix "config" in the Patch 1 commit message to "addr_space"

Kunihiko Hayashi (3):
  dt-bindings: PCI: designware-ep: Increase maxItems of reg and
    reg-names
  dt-bindings: PCI: uniphier-ep: Clean up reg, clocks, resets, and their
    names using compatible string
  ARM: dts: uniphier: Remove compatible "snps,dw-pcie-ep" from Pro5
    pcie-ep node

 .../bindings/pci/snps,dw-pcie-ep.yaml         |  4 +-
 .../pci/socionext,uniphier-pcie-ep.yaml       | 84 ++++++++++++-------
 arch/arm/boot/dts/uniphier-pro5.dtsi          |  3 +-
 3 files changed, 59 insertions(+), 32 deletions(-)

-- 
2.25.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* [PATCH v2 1/3] dt-bindings: PCI: designware-ep: Increase maxItems of reg and reg-names
  2022-04-07  1:22 ` Kunihiko Hayashi
@ 2022-04-07  1:22   ` Kunihiko Hayashi
  -1 siblings, 0 replies; 12+ messages in thread
From: Kunihiko Hayashi @ 2022-04-07  1:22 UTC (permalink / raw)
  To: Jingoo Han, Gustavo Pimentel, Bjorn Helgaas, Rob Herring,
	Krzysztof Kozlowski
  Cc: Masami Hiramatsu, linux-pci, devicetree, linux-arm-kernel,
	linux-kernel, Kunihiko Hayashi

UniPhier PCIe EP controller has up to 5 register mappings (dbi, dbi2, link,
addr_space and atu), so maxItems of "reg" and "reg-names" should allow 5.

Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
---
 Documentation/devicetree/bindings/pci/snps,dw-pcie-ep.yaml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/pci/snps,dw-pcie-ep.yaml b/Documentation/devicetree/bindings/pci/snps,dw-pcie-ep.yaml
index e59059ab5be0..03f97e7c4089 100644
--- a/Documentation/devicetree/bindings/pci/snps,dw-pcie-ep.yaml
+++ b/Documentation/devicetree/bindings/pci/snps,dw-pcie-ep.yaml
@@ -28,11 +28,11 @@ properties:
       versions.
       For designware core version >= 4.80, it may contain ATU address space.
     minItems: 2
-    maxItems: 4
+    maxItems: 5
 
   reg-names:
     minItems: 2
-    maxItems: 4
+    maxItems: 5
     items:
       enum: [dbi, dbi2, config, atu, addr_space, link, atu_dma, appl]
 
-- 
2.25.1


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

* [PATCH v2 1/3] dt-bindings: PCI: designware-ep: Increase maxItems of reg and reg-names
@ 2022-04-07  1:22   ` Kunihiko Hayashi
  0 siblings, 0 replies; 12+ messages in thread
From: Kunihiko Hayashi @ 2022-04-07  1:22 UTC (permalink / raw)
  To: Jingoo Han, Gustavo Pimentel, Bjorn Helgaas, Rob Herring,
	Krzysztof Kozlowski
  Cc: Masami Hiramatsu, linux-pci, devicetree, linux-arm-kernel,
	linux-kernel, Kunihiko Hayashi

UniPhier PCIe EP controller has up to 5 register mappings (dbi, dbi2, link,
addr_space and atu), so maxItems of "reg" and "reg-names" should allow 5.

Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
---
 Documentation/devicetree/bindings/pci/snps,dw-pcie-ep.yaml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/pci/snps,dw-pcie-ep.yaml b/Documentation/devicetree/bindings/pci/snps,dw-pcie-ep.yaml
index e59059ab5be0..03f97e7c4089 100644
--- a/Documentation/devicetree/bindings/pci/snps,dw-pcie-ep.yaml
+++ b/Documentation/devicetree/bindings/pci/snps,dw-pcie-ep.yaml
@@ -28,11 +28,11 @@ properties:
       versions.
       For designware core version >= 4.80, it may contain ATU address space.
     minItems: 2
-    maxItems: 4
+    maxItems: 5
 
   reg-names:
     minItems: 2
-    maxItems: 4
+    maxItems: 5
     items:
       enum: [dbi, dbi2, config, atu, addr_space, link, atu_dma, appl]
 
-- 
2.25.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* [PATCH v2 2/3] dt-bindings: PCI: uniphier-ep: Clean up reg, clocks, resets, and their names using compatible string
  2022-04-07  1:22 ` Kunihiko Hayashi
@ 2022-04-07  1:22   ` Kunihiko Hayashi
  -1 siblings, 0 replies; 12+ messages in thread
From: Kunihiko Hayashi @ 2022-04-07  1:22 UTC (permalink / raw)
  To: Jingoo Han, Gustavo Pimentel, Bjorn Helgaas, Rob Herring,
	Krzysztof Kozlowski
  Cc: Masami Hiramatsu, linux-pci, devicetree, linux-arm-kernel,
	linux-kernel, Kunihiko Hayashi

Instead of "oneOf:" choices, use "allOf:" and "if:" to define reg, clocks,
resets, and their names that can be taken by the compatible string.

The order of their names doesn't change here.

Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
---
 .../pci/socionext,uniphier-pcie-ep.yaml       | 84 ++++++++++++-------
 1 file changed, 56 insertions(+), 28 deletions(-)

diff --git a/Documentation/devicetree/bindings/pci/socionext,uniphier-pcie-ep.yaml b/Documentation/devicetree/bindings/pci/socionext,uniphier-pcie-ep.yaml
index 437e61618d06..49a5b2ca266c 100644
--- a/Documentation/devicetree/bindings/pci/socionext,uniphier-pcie-ep.yaml
+++ b/Documentation/devicetree/bindings/pci/socionext,uniphier-pcie-ep.yaml
@@ -15,9 +15,6 @@ description: |
 maintainers:
   - Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
 
-allOf:
-  - $ref: /schemas/pci/snps,dw-pcie-ep.yaml#
-
 properties:
   compatible:
     enum:
@@ -28,41 +25,19 @@ properties:
     minItems: 4
     maxItems: 5
 
-  reg-names:
-    oneOf:
-      - items:
-          - const: dbi
-          - const: dbi2
-          - const: link
-          - const: addr_space
-      - items:
-          - const: dbi
-          - const: dbi2
-          - const: link
-          - const: addr_space
-          - const: atu
+  reg-names: true
 
   clocks:
     minItems: 1
     maxItems: 2
 
-  clock-names:
-    oneOf:
-      - items:              # for Pro5
-          - const: gio
-          - const: link
-      - const: link         # for NX1
+  clock-names: true
 
   resets:
     minItems: 1
     maxItems: 2
 
-  reset-names:
-    oneOf:
-      - items:              # for Pro5
-          - const: gio
-          - const: link
-      - const: link         # for NX1
+  reset-names: true
 
   num-ib-windows:
     const: 16
@@ -78,6 +53,59 @@ properties:
   phy-names:
     const: pcie-phy
 
+allOf:
+  - $ref: /schemas/pci/snps,dw-pcie-ep.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: socionext,uniphier-pro5-pcie-ep
+    then:
+      properties:
+        reg:
+          minItems: 4
+          maxItems: 4
+        reg-names:
+          items:
+            - const: dbi
+            - const: dbi2
+            - const: link
+            - const: addr_space
+        clocks:
+          minItems: 2
+          maxItems: 2
+        clock-names:
+          items:
+            - const: gio
+            - const: link
+        resets:
+          minItems: 2
+          maxItems: 2
+        reset-names:
+          items:
+            - const: gio
+            - const: link
+    else:
+      properties:
+        reg:
+          minItems: 4
+          maxItems: 5
+        reg-names:
+          items:
+            - const: dbi
+            - const: dbi2
+            - const: link
+            - const: addr_space
+            - const: atu
+        clocks:
+          maxItems: 1
+        clock-names:
+          const: link
+        resets:
+          maxItems: 1
+        reset-names:
+          const: link
+
 required:
   - compatible
   - reg
-- 
2.25.1


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

* [PATCH v2 2/3] dt-bindings: PCI: uniphier-ep: Clean up reg, clocks, resets, and their names using compatible string
@ 2022-04-07  1:22   ` Kunihiko Hayashi
  0 siblings, 0 replies; 12+ messages in thread
From: Kunihiko Hayashi @ 2022-04-07  1:22 UTC (permalink / raw)
  To: Jingoo Han, Gustavo Pimentel, Bjorn Helgaas, Rob Herring,
	Krzysztof Kozlowski
  Cc: Masami Hiramatsu, linux-pci, devicetree, linux-arm-kernel,
	linux-kernel, Kunihiko Hayashi

Instead of "oneOf:" choices, use "allOf:" and "if:" to define reg, clocks,
resets, and their names that can be taken by the compatible string.

The order of their names doesn't change here.

Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
---
 .../pci/socionext,uniphier-pcie-ep.yaml       | 84 ++++++++++++-------
 1 file changed, 56 insertions(+), 28 deletions(-)

diff --git a/Documentation/devicetree/bindings/pci/socionext,uniphier-pcie-ep.yaml b/Documentation/devicetree/bindings/pci/socionext,uniphier-pcie-ep.yaml
index 437e61618d06..49a5b2ca266c 100644
--- a/Documentation/devicetree/bindings/pci/socionext,uniphier-pcie-ep.yaml
+++ b/Documentation/devicetree/bindings/pci/socionext,uniphier-pcie-ep.yaml
@@ -15,9 +15,6 @@ description: |
 maintainers:
   - Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
 
-allOf:
-  - $ref: /schemas/pci/snps,dw-pcie-ep.yaml#
-
 properties:
   compatible:
     enum:
@@ -28,41 +25,19 @@ properties:
     minItems: 4
     maxItems: 5
 
-  reg-names:
-    oneOf:
-      - items:
-          - const: dbi
-          - const: dbi2
-          - const: link
-          - const: addr_space
-      - items:
-          - const: dbi
-          - const: dbi2
-          - const: link
-          - const: addr_space
-          - const: atu
+  reg-names: true
 
   clocks:
     minItems: 1
     maxItems: 2
 
-  clock-names:
-    oneOf:
-      - items:              # for Pro5
-          - const: gio
-          - const: link
-      - const: link         # for NX1
+  clock-names: true
 
   resets:
     minItems: 1
     maxItems: 2
 
-  reset-names:
-    oneOf:
-      - items:              # for Pro5
-          - const: gio
-          - const: link
-      - const: link         # for NX1
+  reset-names: true
 
   num-ib-windows:
     const: 16
@@ -78,6 +53,59 @@ properties:
   phy-names:
     const: pcie-phy
 
+allOf:
+  - $ref: /schemas/pci/snps,dw-pcie-ep.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: socionext,uniphier-pro5-pcie-ep
+    then:
+      properties:
+        reg:
+          minItems: 4
+          maxItems: 4
+        reg-names:
+          items:
+            - const: dbi
+            - const: dbi2
+            - const: link
+            - const: addr_space
+        clocks:
+          minItems: 2
+          maxItems: 2
+        clock-names:
+          items:
+            - const: gio
+            - const: link
+        resets:
+          minItems: 2
+          maxItems: 2
+        reset-names:
+          items:
+            - const: gio
+            - const: link
+    else:
+      properties:
+        reg:
+          minItems: 4
+          maxItems: 5
+        reg-names:
+          items:
+            - const: dbi
+            - const: dbi2
+            - const: link
+            - const: addr_space
+            - const: atu
+        clocks:
+          maxItems: 1
+        clock-names:
+          const: link
+        resets:
+          maxItems: 1
+        reset-names:
+          const: link
+
 required:
   - compatible
   - reg
-- 
2.25.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* [PATCH v2 3/3] ARM: dts: uniphier: Remove compatible "snps,dw-pcie-ep" from Pro5 pcie-ep node
  2022-04-07  1:22 ` Kunihiko Hayashi
@ 2022-04-07  1:22   ` Kunihiko Hayashi
  -1 siblings, 0 replies; 12+ messages in thread
From: Kunihiko Hayashi @ 2022-04-07  1:22 UTC (permalink / raw)
  To: Jingoo Han, Gustavo Pimentel, Bjorn Helgaas, Rob Herring,
	Krzysztof Kozlowski
  Cc: Masami Hiramatsu, linux-pci, devicetree, linux-arm-kernel,
	linux-kernel, Kunihiko Hayashi

UniPhier PCIe endpoint controller doesn't use "snps,dw-pcie-ep" compatible,
so this is no longer needed. Remove the compatible string from the pcie-ep
node to fix the following warning.

  uniphier-pro5-epcore.dtb: pcie@66000000: compatible: ['socionext,uniphier-pro5-pcie-ep', 'snps,dw-pcie-ep'] is too long
      From schema: Documentation/devicetree/bindings/pci/socionext,uniphier-pcie-ep.yaml

Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
---
 arch/arm/boot/dts/uniphier-pro5.dtsi | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/arch/arm/boot/dts/uniphier-pro5.dtsi b/arch/arm/boot/dts/uniphier-pro5.dtsi
index 3525125832dd..d79f94689ca2 100644
--- a/arch/arm/boot/dts/uniphier-pro5.dtsi
+++ b/arch/arm/boot/dts/uniphier-pro5.dtsi
@@ -614,8 +614,7 @@ usb1_ssphy0: ss-phy@380 {
 		};
 
 		pcie_ep: pcie-ep@66000000 {
-			compatible = "socionext,uniphier-pro5-pcie-ep",
-				     "snps,dw-pcie-ep";
+			compatible = "socionext,uniphier-pro5-pcie-ep";
 			status = "disabled";
 			reg-names = "dbi", "dbi2", "link", "addr_space";
 			reg = <0x66000000 0x1000>, <0x66001000 0x1000>,
-- 
2.25.1


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

* [PATCH v2 3/3] ARM: dts: uniphier: Remove compatible "snps, dw-pcie-ep" from Pro5 pcie-ep node
@ 2022-04-07  1:22   ` Kunihiko Hayashi
  0 siblings, 0 replies; 12+ messages in thread
From: Kunihiko Hayashi @ 2022-04-07  1:22 UTC (permalink / raw)
  To: Jingoo Han, Gustavo Pimentel, Bjorn Helgaas, Rob Herring,
	Krzysztof Kozlowski
  Cc: Masami Hiramatsu, linux-pci, devicetree, linux-arm-kernel,
	linux-kernel, Kunihiko Hayashi

UniPhier PCIe endpoint controller doesn't use "snps,dw-pcie-ep" compatible,
so this is no longer needed. Remove the compatible string from the pcie-ep
node to fix the following warning.

  uniphier-pro5-epcore.dtb: pcie@66000000: compatible: ['socionext,uniphier-pro5-pcie-ep', 'snps,dw-pcie-ep'] is too long
      From schema: Documentation/devicetree/bindings/pci/socionext,uniphier-pcie-ep.yaml

Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
---
 arch/arm/boot/dts/uniphier-pro5.dtsi | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/arch/arm/boot/dts/uniphier-pro5.dtsi b/arch/arm/boot/dts/uniphier-pro5.dtsi
index 3525125832dd..d79f94689ca2 100644
--- a/arch/arm/boot/dts/uniphier-pro5.dtsi
+++ b/arch/arm/boot/dts/uniphier-pro5.dtsi
@@ -614,8 +614,7 @@ usb1_ssphy0: ss-phy@380 {
 		};
 
 		pcie_ep: pcie-ep@66000000 {
-			compatible = "socionext,uniphier-pro5-pcie-ep",
-				     "snps,dw-pcie-ep";
+			compatible = "socionext,uniphier-pro5-pcie-ep";
 			status = "disabled";
 			reg-names = "dbi", "dbi2", "link", "addr_space";
 			reg = <0x66000000 0x1000>, <0x66001000 0x1000>,
-- 
2.25.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* Re: [PATCH v2 2/3] dt-bindings: PCI: uniphier-ep: Clean up reg, clocks, resets, and their names using compatible string
  2022-04-07  1:22   ` Kunihiko Hayashi
@ 2022-04-12 22:05     ` Rob Herring
  -1 siblings, 0 replies; 12+ messages in thread
From: Rob Herring @ 2022-04-12 22:05 UTC (permalink / raw)
  To: Kunihiko Hayashi
  Cc: Jingoo Han, Gustavo Pimentel, Bjorn Helgaas, Krzysztof Kozlowski,
	Masami Hiramatsu, linux-pci, devicetree, linux-arm-kernel,
	linux-kernel

On Thu, Apr 07, 2022 at 10:22:32AM +0900, Kunihiko Hayashi wrote:
> Instead of "oneOf:" choices, use "allOf:" and "if:" to define reg, clocks,
> resets, and their names that can be taken by the compatible string.
> 
> The order of their names doesn't change here.
> 
> Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
> ---
>  .../pci/socionext,uniphier-pcie-ep.yaml       | 84 ++++++++++++-------
>  1 file changed, 56 insertions(+), 28 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/pci/socionext,uniphier-pcie-ep.yaml b/Documentation/devicetree/bindings/pci/socionext,uniphier-pcie-ep.yaml
> index 437e61618d06..49a5b2ca266c 100644
> --- a/Documentation/devicetree/bindings/pci/socionext,uniphier-pcie-ep.yaml
> +++ b/Documentation/devicetree/bindings/pci/socionext,uniphier-pcie-ep.yaml
> @@ -15,9 +15,6 @@ description: |
>  maintainers:
>    - Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
>  
> -allOf:
> -  - $ref: /schemas/pci/snps,dw-pcie-ep.yaml#
> -
>  properties:
>    compatible:
>      enum:
> @@ -28,41 +25,19 @@ properties:
>      minItems: 4
>      maxItems: 5
>  
> -  reg-names:
> -    oneOf:
> -      - items:
> -          - const: dbi
> -          - const: dbi2
> -          - const: link
> -          - const: addr_space
> -      - items:
> -          - const: dbi
> -          - const: dbi2
> -          - const: link
> -          - const: addr_space
> -          - const: atu

This could be just:

      minItems: 4
      items:
        - const: dbi
        - const: dbi2
        - const: link
        - const: addr_space
        - const: atu

Then the if/then can have just 'minItems: 5' or 'maxItems: 4' for each 
case. I prefer the if/then schemas to be minimal.

> +  reg-names: true
>  
>    clocks:
>      minItems: 1
>      maxItems: 2
>  
> -  clock-names:
> -    oneOf:
> -      - items:              # for Pro5
> -          - const: gio
> -          - const: link
> -      - const: link         # for NX1
> +  clock-names: true
>  
>    resets:
>      minItems: 1
>      maxItems: 2
>  
> -  reset-names:
> -    oneOf:
> -      - items:              # for Pro5
> -          - const: gio
> -          - const: link
> -      - const: link         # for NX1
> +  reset-names: true
>  
>    num-ib-windows:
>      const: 16
> @@ -78,6 +53,59 @@ properties:
>    phy-names:
>      const: pcie-phy
>  
> +allOf:
> +  - $ref: /schemas/pci/snps,dw-pcie-ep.yaml#
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: socionext,uniphier-pro5-pcie-ep
> +    then:
> +      properties:
> +        reg:
> +          minItems: 4
> +          maxItems: 4
> +        reg-names:
> +          items:
> +            - const: dbi
> +            - const: dbi2
> +            - const: link
> +            - const: addr_space
> +        clocks:
> +          minItems: 2
> +          maxItems: 2
> +        clock-names:
> +          items:
> +            - const: gio
> +            - const: link
> +        resets:
> +          minItems: 2
> +          maxItems: 2
> +        reset-names:
> +          items:
> +            - const: gio
> +            - const: link
> +    else:
> +      properties:
> +        reg:
> +          minItems: 4
> +          maxItems: 5
> +        reg-names:
> +          items:
> +            - const: dbi
> +            - const: dbi2
> +            - const: link
> +            - const: addr_space
> +            - const: atu
> +        clocks:
> +          maxItems: 1
> +        clock-names:
> +          const: link
> +        resets:
> +          maxItems: 1
> +        reset-names:
> +          const: link
> +
>  required:
>    - compatible
>    - reg
> -- 
> 2.25.1
> 
> 

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* Re: [PATCH v2 2/3] dt-bindings: PCI: uniphier-ep: Clean up reg, clocks, resets, and their names using compatible string
@ 2022-04-12 22:05     ` Rob Herring
  0 siblings, 0 replies; 12+ messages in thread
From: Rob Herring @ 2022-04-12 22:05 UTC (permalink / raw)
  To: Kunihiko Hayashi
  Cc: Jingoo Han, Gustavo Pimentel, Bjorn Helgaas, Krzysztof Kozlowski,
	Masami Hiramatsu, linux-pci, devicetree, linux-arm-kernel,
	linux-kernel

On Thu, Apr 07, 2022 at 10:22:32AM +0900, Kunihiko Hayashi wrote:
> Instead of "oneOf:" choices, use "allOf:" and "if:" to define reg, clocks,
> resets, and their names that can be taken by the compatible string.
> 
> The order of their names doesn't change here.
> 
> Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
> ---
>  .../pci/socionext,uniphier-pcie-ep.yaml       | 84 ++++++++++++-------
>  1 file changed, 56 insertions(+), 28 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/pci/socionext,uniphier-pcie-ep.yaml b/Documentation/devicetree/bindings/pci/socionext,uniphier-pcie-ep.yaml
> index 437e61618d06..49a5b2ca266c 100644
> --- a/Documentation/devicetree/bindings/pci/socionext,uniphier-pcie-ep.yaml
> +++ b/Documentation/devicetree/bindings/pci/socionext,uniphier-pcie-ep.yaml
> @@ -15,9 +15,6 @@ description: |
>  maintainers:
>    - Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
>  
> -allOf:
> -  - $ref: /schemas/pci/snps,dw-pcie-ep.yaml#
> -
>  properties:
>    compatible:
>      enum:
> @@ -28,41 +25,19 @@ properties:
>      minItems: 4
>      maxItems: 5
>  
> -  reg-names:
> -    oneOf:
> -      - items:
> -          - const: dbi
> -          - const: dbi2
> -          - const: link
> -          - const: addr_space
> -      - items:
> -          - const: dbi
> -          - const: dbi2
> -          - const: link
> -          - const: addr_space
> -          - const: atu

This could be just:

      minItems: 4
      items:
        - const: dbi
        - const: dbi2
        - const: link
        - const: addr_space
        - const: atu

Then the if/then can have just 'minItems: 5' or 'maxItems: 4' for each 
case. I prefer the if/then schemas to be minimal.

> +  reg-names: true
>  
>    clocks:
>      minItems: 1
>      maxItems: 2
>  
> -  clock-names:
> -    oneOf:
> -      - items:              # for Pro5
> -          - const: gio
> -          - const: link
> -      - const: link         # for NX1
> +  clock-names: true
>  
>    resets:
>      minItems: 1
>      maxItems: 2
>  
> -  reset-names:
> -    oneOf:
> -      - items:              # for Pro5
> -          - const: gio
> -          - const: link
> -      - const: link         # for NX1
> +  reset-names: true
>  
>    num-ib-windows:
>      const: 16
> @@ -78,6 +53,59 @@ properties:
>    phy-names:
>      const: pcie-phy
>  
> +allOf:
> +  - $ref: /schemas/pci/snps,dw-pcie-ep.yaml#
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: socionext,uniphier-pro5-pcie-ep
> +    then:
> +      properties:
> +        reg:
> +          minItems: 4
> +          maxItems: 4
> +        reg-names:
> +          items:
> +            - const: dbi
> +            - const: dbi2
> +            - const: link
> +            - const: addr_space
> +        clocks:
> +          minItems: 2
> +          maxItems: 2
> +        clock-names:
> +          items:
> +            - const: gio
> +            - const: link
> +        resets:
> +          minItems: 2
> +          maxItems: 2
> +        reset-names:
> +          items:
> +            - const: gio
> +            - const: link
> +    else:
> +      properties:
> +        reg:
> +          minItems: 4
> +          maxItems: 5
> +        reg-names:
> +          items:
> +            - const: dbi
> +            - const: dbi2
> +            - const: link
> +            - const: addr_space
> +            - const: atu
> +        clocks:
> +          maxItems: 1
> +        clock-names:
> +          const: link
> +        resets:
> +          maxItems: 1
> +        reset-names:
> +          const: link
> +
>  required:
>    - compatible
>    - reg
> -- 
> 2.25.1
> 
> 

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

* Re: [PATCH v2 2/3] dt-bindings: PCI: uniphier-ep: Clean up reg, clocks, resets, and their names using compatible string
  2022-04-12 22:05     ` Rob Herring
@ 2022-04-15  0:55       ` Kunihiko Hayashi
  -1 siblings, 0 replies; 12+ messages in thread
From: Kunihiko Hayashi @ 2022-04-15  0:55 UTC (permalink / raw)
  To: Rob Herring
  Cc: Jingoo Han, Gustavo Pimentel, Bjorn Helgaas, Krzysztof Kozlowski,
	Masami Hiramatsu, linux-pci, devicetree, linux-arm-kernel,
	linux-kernel

Hi Rob,

On 2022/04/13 7:05, Rob Herring wrote:
> On Thu, Apr 07, 2022 at 10:22:32AM +0900, Kunihiko Hayashi wrote:
>> Instead of "oneOf:" choices, use "allOf:" and "if:" to define reg,
> clocks,
>> resets, and their names that can be taken by the compatible string.
>>
>> The order of their names doesn't change here.
>>
>> Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
>> ---
>>   .../pci/socionext,uniphier-pcie-ep.yaml       | 84 ++++++++++++-------
>>   1 file changed, 56 insertions(+), 28 deletions(-)
>>
>> diff --git
> a/Documentation/devicetree/bindings/pci/socionext,uniphier-pcie-ep.yaml
> b/Documentation/devicetree/bindings/pci/socionext,uniphier-pcie-ep.yaml
>> index 437e61618d06..49a5b2ca266c 100644
>> ---
> a/Documentation/devicetree/bindings/pci/socionext,uniphier-pcie-ep.yaml
>> +++
> b/Documentation/devicetree/bindings/pci/socionext,uniphier-pcie-ep.yaml
>> @@ -15,9 +15,6 @@ description: |
>>   maintainers:
>>     - Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
>>   
>> -allOf:
>> -  - $ref: /schemas/pci/snps,dw-pcie-ep.yaml#
>> -
>>   properties:
>>     compatible:
>>       enum:
>> @@ -28,41 +25,19 @@ properties:
>>       minItems: 4
>>       maxItems: 5
>>   
>> -  reg-names:
>> -    oneOf:
>> -      - items:
>> -          - const: dbi
>> -          - const: dbi2
>> -          - const: link
>> -          - const: addr_space
>> -      - items:
>> -          - const: dbi
>> -          - const: dbi2
>> -          - const: link
>> -          - const: addr_space
>> -          - const: atu
> 
> This could be just:
> 
>        minItems: 4
>        items:
>          - const: dbi
>          - const: dbi2
>          - const: link
>          - const: addr_space
>          - const: atu
> 
> Then the if/then can have just 'minItems: 5' or 'maxItems: 4' for each
> case. I prefer the if/then schemas to be minimal.

I've got it. It means writing a common description, and writing
only the constraints in if/then. I'll rewrite it next.

Thank you,

---
Best Regards
Kunihiko Hayashi

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

* Re: [PATCH v2 2/3] dt-bindings: PCI: uniphier-ep: Clean up reg, clocks, resets, and their names using compatible string
@ 2022-04-15  0:55       ` Kunihiko Hayashi
  0 siblings, 0 replies; 12+ messages in thread
From: Kunihiko Hayashi @ 2022-04-15  0:55 UTC (permalink / raw)
  To: Rob Herring
  Cc: Jingoo Han, Gustavo Pimentel, Bjorn Helgaas, Krzysztof Kozlowski,
	Masami Hiramatsu, linux-pci, devicetree, linux-arm-kernel,
	linux-kernel

Hi Rob,

On 2022/04/13 7:05, Rob Herring wrote:
> On Thu, Apr 07, 2022 at 10:22:32AM +0900, Kunihiko Hayashi wrote:
>> Instead of "oneOf:" choices, use "allOf:" and "if:" to define reg,
> clocks,
>> resets, and their names that can be taken by the compatible string.
>>
>> The order of their names doesn't change here.
>>
>> Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
>> ---
>>   .../pci/socionext,uniphier-pcie-ep.yaml       | 84 ++++++++++++-------
>>   1 file changed, 56 insertions(+), 28 deletions(-)
>>
>> diff --git
> a/Documentation/devicetree/bindings/pci/socionext,uniphier-pcie-ep.yaml
> b/Documentation/devicetree/bindings/pci/socionext,uniphier-pcie-ep.yaml
>> index 437e61618d06..49a5b2ca266c 100644
>> ---
> a/Documentation/devicetree/bindings/pci/socionext,uniphier-pcie-ep.yaml
>> +++
> b/Documentation/devicetree/bindings/pci/socionext,uniphier-pcie-ep.yaml
>> @@ -15,9 +15,6 @@ description: |
>>   maintainers:
>>     - Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
>>   
>> -allOf:
>> -  - $ref: /schemas/pci/snps,dw-pcie-ep.yaml#
>> -
>>   properties:
>>     compatible:
>>       enum:
>> @@ -28,41 +25,19 @@ properties:
>>       minItems: 4
>>       maxItems: 5
>>   
>> -  reg-names:
>> -    oneOf:
>> -      - items:
>> -          - const: dbi
>> -          - const: dbi2
>> -          - const: link
>> -          - const: addr_space
>> -      - items:
>> -          - const: dbi
>> -          - const: dbi2
>> -          - const: link
>> -          - const: addr_space
>> -          - const: atu
> 
> This could be just:
> 
>        minItems: 4
>        items:
>          - const: dbi
>          - const: dbi2
>          - const: link
>          - const: addr_space
>          - const: atu
> 
> Then the if/then can have just 'minItems: 5' or 'maxItems: 4' for each
> case. I prefer the if/then schemas to be minimal.

I've got it. It means writing a common description, and writing
only the constraints in if/then. I'll rewrite it next.

Thank you,

---
Best Regards
Kunihiko Hayashi

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

end of thread, other threads:[~2022-04-15  0:57 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-07  1:22 [PATCH v2 0/3] dt-bindings: PCI: uniphier: Fix endpoint descriptions Kunihiko Hayashi
2022-04-07  1:22 ` Kunihiko Hayashi
2022-04-07  1:22 ` [PATCH v2 1/3] dt-bindings: PCI: designware-ep: Increase maxItems of reg and reg-names Kunihiko Hayashi
2022-04-07  1:22   ` Kunihiko Hayashi
2022-04-07  1:22 ` [PATCH v2 2/3] dt-bindings: PCI: uniphier-ep: Clean up reg, clocks, resets, and their names using compatible string Kunihiko Hayashi
2022-04-07  1:22   ` Kunihiko Hayashi
2022-04-12 22:05   ` Rob Herring
2022-04-12 22:05     ` Rob Herring
2022-04-15  0:55     ` Kunihiko Hayashi
2022-04-15  0:55       ` Kunihiko Hayashi
2022-04-07  1:22 ` [PATCH v2 3/3] ARM: dts: uniphier: Remove compatible "snps,dw-pcie-ep" from Pro5 pcie-ep node Kunihiko Hayashi
2022-04-07  1:22   ` [PATCH v2 3/3] ARM: dts: uniphier: Remove compatible "snps, dw-pcie-ep" " Kunihiko Hayashi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.