[PATCH] dt-bindings: net: can: atmel: Convert to json schema

Charan Pedumuru posted 1 patch 2 months, 2 weeks ago
There is a newer version of this series
.../bindings/net/can/atmel,at91sam9263-can.yaml    | 67 ++++++++++++++++++++++
.../devicetree/bindings/net/can/atmel-can.txt      | 15 -----
2 files changed, 67 insertions(+), 15 deletions(-)
[PATCH] dt-bindings: net: can: atmel: Convert to json schema
Posted by Charan Pedumuru 2 months, 2 weeks ago
Convert atmel-can documentation to yaml format

Signed-off-by: Charan Pedumuru <charan.pedumuru@microchip.com>
---
 .../bindings/net/can/atmel,at91sam9263-can.yaml    | 67 ++++++++++++++++++++++
 .../devicetree/bindings/net/can/atmel-can.txt      | 15 -----
 2 files changed, 67 insertions(+), 15 deletions(-)

diff --git a/Documentation/devicetree/bindings/net/can/atmel,at91sam9263-can.yaml b/Documentation/devicetree/bindings/net/can/atmel,at91sam9263-can.yaml
new file mode 100644
index 000000000000..269af4c993a7
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/can/atmel,at91sam9263-can.yaml
@@ -0,0 +1,67 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/can/atmel,at91sam9263-can.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Atmel CAN Controller
+
+maintainers:
+  - Nicolas Ferre <nicolas.ferre@microchip.com>
+
+properties:
+  compatible:
+    oneOf:
+      - enum:
+          - atmel,at91sam9263-can
+          - atmel,at91sam9x5-can
+          - microchip,sam9x60-can
+      - items:
+          - enum:
+              - microchip,sam9x60-can
+          - const: atmel,at91sam9x5-can
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    items:
+      - const: can_clk
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+allOf:
+  - $ref: can-controller.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - microchip,sam9x60-can
+    then:
+      required:
+        - compatible
+        - reg
+        - interrupts
+        - clocks
+        - clock-names
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    can0: can@f000c000 {
+          compatible = "atmel,at91sam9x5-can";
+          reg = <0xf000c000 0x300>;
+          interrupts = <30 IRQ_TYPE_LEVEL_HIGH 3>;
+    };
diff --git a/Documentation/devicetree/bindings/net/can/atmel-can.txt b/Documentation/devicetree/bindings/net/can/atmel-can.txt
deleted file mode 100644
index 218a3b3eb27e..000000000000
--- a/Documentation/devicetree/bindings/net/can/atmel-can.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-* AT91 CAN *
-
-Required properties:
-  - compatible: Should be "atmel,at91sam9263-can", "atmel,at91sam9x5-can" or
-    "microchip,sam9x60-can"
-  - reg: Should contain CAN controller registers location and length
-  - interrupts: Should contain IRQ line for the CAN controller
-
-Example:
-
-	can0: can@f000c000 {
-		compatible = "atmel,at91sam9x5-can";
-		reg = <0xf000c000 0x300>;
-		interrupts = <40 4 5>
-	};

---
base-commit: 32ffa5373540a8d1c06619f52d019c6cdc948bb4
change-id: 20240912-can-8eb7f8e7566d

Best regards,
-- 
Charan Pedumuru <charan.pedumuru@microchip.com>
Re: [PATCH] dt-bindings: net: can: atmel: Convert to json schema
Posted by Marc Kleine-Budde 2 months, 2 weeks ago
On 12.09.2024 11:19:16, Charan Pedumuru wrote:
> Convert atmel-can documentation to yaml format
> 
> Signed-off-by: Charan Pedumuru <charan.pedumuru@microchip.com>
> ---
>  .../bindings/net/can/atmel,at91sam9263-can.yaml    | 67 ++++++++++++++++++++++
>  .../devicetree/bindings/net/can/atmel-can.txt      | 15 -----
>  2 files changed, 67 insertions(+), 15 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/net/can/atmel,at91sam9263-can.yaml b/Documentation/devicetree/bindings/net/can/atmel,at91sam9263-can.yaml
> new file mode 100644
> index 000000000000..269af4c993a7
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/can/atmel,at91sam9263-can.yaml
> @@ -0,0 +1,67 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/net/can/atmel,at91sam9263-can.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Atmel CAN Controller
> +
> +maintainers:
> +  - Nicolas Ferre <nicolas.ferre@microchip.com>
> +
> +properties:
> +  compatible:
> +    oneOf:
> +      - enum:
> +          - atmel,at91sam9263-can
> +          - atmel,at91sam9x5-can
> +          - microchip,sam9x60-can

The driver doesn't have a compatible for "microchip,sam9x60-can".

> +      - items:
> +          - enum:
> +              - microchip,sam9x60-can
> +          - const: atmel,at91sam9x5-can
> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  clocks:
> +    maxItems: 1
> +
> +  clock-names:
> +    items:
> +      - const: can_clk
> +
> +required:
> +  - compatible
> +  - reg
> +  - interrupts
> +
> +allOf:
> +  - $ref: can-controller.yaml#
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            enum:
> +              - microchip,sam9x60-can
> +    then:
> +      required:
> +        - compatible
> +        - reg
> +        - interrupts
> +        - clocks
> +        - clock-names

AFAICS clock-names is required for all compatibles.

> +
> +unevaluatedProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +    can0: can@f000c000 {

I think unused labels should be removed.

> +          compatible = "atmel,at91sam9x5-can";
> +          reg = <0xf000c000 0x300>;
> +          interrupts = <30 IRQ_TYPE_LEVEL_HIGH 3>;
> +    };
> diff --git a/Documentation/devicetree/bindings/net/can/atmel-can.txt b/Documentation/devicetree/bindings/net/can/atmel-can.txt
> deleted file mode 100644
> index 218a3b3eb27e..000000000000
> --- a/Documentation/devicetree/bindings/net/can/atmel-can.txt
> +++ /dev/null
> @@ -1,15 +0,0 @@
> -* AT91 CAN *
> -
> -Required properties:
> -  - compatible: Should be "atmel,at91sam9263-can", "atmel,at91sam9x5-can" or
> -    "microchip,sam9x60-can"
> -  - reg: Should contain CAN controller registers location and length
> -  - interrupts: Should contain IRQ line for the CAN controller
> -
> -Example:
> -
> -	can0: can@f000c000 {
> -		compatible = "atmel,at91sam9x5-can";
> -		reg = <0xf000c000 0x300>;
> -		interrupts = <40 4 5>
> -	};
> 
> ---
> base-commit: 32ffa5373540a8d1c06619f52d019c6cdc948bb4
> change-id: 20240912-can-8eb7f8e7566d
> 
> Best regards,
> -- 
> Charan Pedumuru <charan.pedumuru@microchip.com>
> 
> 
> 

Marc

-- 
Pengutronix e.K.                 | Marc Kleine-Budde          |
Embedded Linux                   | https://www.pengutronix.de |
Vertretung Nürnberg              | Phone: +49-5121-206917-129 |
Amtsgericht Hildesheim, HRA 2686 | Fax:   +49-5121-206917-9   |
Re: [PATCH] dt-bindings: net: can: atmel: Convert to json schema
Posted by Charan.Pedumuru@microchip.com 2 months, 1 week ago
On 12/09/24 13:05, Marc Kleine-Budde wrote:
> On 12.09.2024 11:19:16, Charan Pedumuru wrote:
>> Convert atmel-can documentation to yaml format
>>
>> Signed-off-by: Charan Pedumuru<charan.pedumuru@microchip.com>
>> ---
>>   .../bindings/net/can/atmel,at91sam9263-can.yaml    | 67 ++++++++++++++++++++++
>>   .../devicetree/bindings/net/can/atmel-can.txt      | 15 -----
>>   2 files changed, 67 insertions(+), 15 deletions(-)
>>
>> diff --git a/Documentation/devicetree/bindings/net/can/atmel,at91sam9263-can.yaml b/Documentation/devicetree/bindings/net/can/atmel,at91sam9263-can.yaml
>> new file mode 100644
>> index 000000000000..269af4c993a7
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/net/can/atmel,at91sam9263-can.yaml
>> @@ -0,0 +1,67 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id:http://devicetree.org/schemas/net/can/atmel,at91sam9263-can.yaml#
>> +$schema:http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Atmel CAN Controller
>> +
>> +maintainers:
>> +  - Nicolas Ferre<nicolas.ferre@microchip.com>
>> +
>> +properties:
>> +  compatible:
>> +    oneOf:
>> +      - enum:
>> +          - atmel,at91sam9263-can
>> +          - atmel,at91sam9x5-can
>> +          - microchip,sam9x60-can
> The driver doesn't have a compatible for "microchip,sam9x60-can".
Yes, I will remove it.
>
>> +      - items:
>> +          - enum:
>> +              - microchip,sam9x60-can
>> +          - const: atmel,at91sam9x5-can
>> +
>> +  reg:
>> +    maxItems: 1
>> +
>> +  interrupts:
>> +    maxItems: 1
>> +
>> +  clocks:
>> +    maxItems: 1
>> +
>> +  clock-names:
>> +    items:
>> +      - const: can_clk
>> +
>> +required:
>> +  - compatible
>> +  - reg
>> +  - interrupts
>> +
>> +allOf:
>> +  - $ref: can-controller.yaml#
>> +  - if:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            enum:
>> +              - microchip,sam9x60-can
>> +    then:
>> +      required:
>> +        - compatible
>> +        - reg
>> +        - interrupts
>> +        - clocks
>> +        - clock-names
> AFAICS clock-names is required for all compatibles.
In our case only sam9x60 is using clock-names property.
>
>> +
>> +unevaluatedProperties: false
>> +
>> +examples:
>> +  - |
>> +    #include <dt-bindings/interrupt-controller/irq.h>
>> +    can0: can@f000c000 {
> I think unused labels should be removed.
Ok, I will remove the labels in next revision. Thanks.
>
>> +          compatible = "atmel,at91sam9x5-can";
>> +          reg = <0xf000c000 0x300>;
>> +          interrupts = <30 IRQ_TYPE_LEVEL_HIGH 3>;
>> +    };
>> diff --git a/Documentation/devicetree/bindings/net/can/atmel-can.txt b/Documentation/devicetree/bindings/net/can/atmel-can.txt
>> deleted file mode 100644
>> index 218a3b3eb27e..000000000000
>> --- a/Documentation/devicetree/bindings/net/can/atmel-can.txt
>> +++ /dev/null
>> @@ -1,15 +0,0 @@
>> -* AT91 CAN *
>> -
>> -Required properties:
>> -  - compatible: Should be "atmel,at91sam9263-can", "atmel,at91sam9x5-can" or
>> -    "microchip,sam9x60-can"
>> -  - reg: Should contain CAN controller registers location and length
>> -  - interrupts: Should contain IRQ line for the CAN controller
>> -
>> -Example:
>> -
>> -	can0: can@f000c000 {
>> -		compatible = "atmel,at91sam9x5-can";
>> -		reg = <0xf000c000 0x300>;
>> -		interrupts = <40 4 5>
>> -	};
>>
>> ---
>> base-commit: 32ffa5373540a8d1c06619f52d019c6cdc948bb4
>> change-id: 20240912-can-8eb7f8e7566d
>>
>> Best regards,
>> -- 
>> Charan Pedumuru<charan.pedumuru@microchip.com>
>>
>>
>>
> Marc

-- 
Best Regards,
Charan.

Re: [PATCH] dt-bindings: net: can: atmel: Convert to json schema
Posted by Marc Kleine-Budde 2 months, 1 week ago
On 20.09.2024 04:51:57, Charan.Pedumuru@microchip.com wrote:
> >> +allOf:
> >> +  - $ref: can-controller.yaml#
> >> +  - if:
> >> +      properties:
> >> +        compatible:
> >> +          contains:
> >> +            enum:
> >> +              - microchip,sam9x60-can
> >> +    then:
> >> +      required:
> >> +        - compatible
> >> +        - reg
> >> +        - interrupts
> >> +        - clocks
> >> +        - clock-names
> > AFAICS clock-names is required for all compatibles.
> In our case only sam9x60 is using clock-names property.

No, the driver uses "clk_get(&pdev->dev, "can_clk")", so this property
is mandatory.

regards,
Marc

-- 
Pengutronix e.K.                 | Marc Kleine-Budde          |
Embedded Linux                   | https://www.pengutronix.de |
Vertretung Nürnberg              | Phone: +49-5121-206917-129 |
Amtsgericht Hildesheim, HRA 2686 | Fax:   +49-5121-206917-9   |
Re: [PATCH] dt-bindings: net: can: atmel: Convert to json schema
Posted by Charan.Pedumuru@microchip.com 2 months ago
On 23/09/24 16:27, Marc Kleine-Budde wrote:
> On 20.09.2024 04:51:57,Charan.Pedumuru@microchip.com  wrote:
>>>> +allOf:
>>>> +  - $ref: can-controller.yaml#
>>>> +  - if:
>>>> +      properties:
>>>> +        compatible:
>>>> +          contains:
>>>> +            enum:
>>>> +              - microchip,sam9x60-can
>>>> +    then:
>>>> +      required:
>>>> +        - compatible
>>>> +        - reg
>>>> +        - interrupts
>>>> +        - clocks
>>>> +        - clock-names
>>> AFAICS clock-names is required for all compatibles.
>> In our case only sam9x60 is using clock-names property.
> No, the driver uses "clk_get(&pdev->dev, "can_clk")", so this property
> is mandatory.
Yes, what you said was correct, it was our mistake. I will remove the if 
statements and make
clocks and clock-names as default required properties. I will fix this 
in next revision.

>
> regards,
> Marc
>
> -- Pengutronix e.K. | Marc Kleine-Budde | Embedded Linux | 
> https://www.pengutronix.de | Vertretung Nürnberg | Phone: 
> +49-5121-206917-129 | Amtsgericht Hildesheim, HRA 2686 | Fax: 
> +49-5121-206917-9 |


-- 
Best Regards,
Charan.

Re: [PATCH] dt-bindings: net: can: atmel: Convert to json schema
Posted by Conor Dooley 2 months, 2 weeks ago
On Thu, Sep 12, 2024 at 11:19:16AM +0530, Charan Pedumuru wrote:
> Convert atmel-can documentation to yaml format
> 
> Signed-off-by: Charan Pedumuru <charan.pedumuru@microchip.com>

Please see the comments I left on the internal v2 of this patch.

Thanks,
Conor.

> ---
>  .../bindings/net/can/atmel,at91sam9263-can.yaml    | 67 ++++++++++++++++++++++
>  .../devicetree/bindings/net/can/atmel-can.txt      | 15 -----
>  2 files changed, 67 insertions(+), 15 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/net/can/atmel,at91sam9263-can.yaml b/Documentation/devicetree/bindings/net/can/atmel,at91sam9263-can.yaml
> new file mode 100644
> index 000000000000..269af4c993a7
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/can/atmel,at91sam9263-can.yaml
> @@ -0,0 +1,67 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/net/can/atmel,at91sam9263-can.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Atmel CAN Controller
> +
> +maintainers:
> +  - Nicolas Ferre <nicolas.ferre@microchip.com>
> +
> +properties:
> +  compatible:
> +    oneOf:
> +      - enum:
> +          - atmel,at91sam9263-can
> +          - atmel,at91sam9x5-can
> +          - microchip,sam9x60-can
> +      - items:
> +          - enum:
> +              - microchip,sam9x60-can
> +          - const: atmel,at91sam9x5-can
> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  clocks:
> +    maxItems: 1
> +
> +  clock-names:
> +    items:
> +      - const: can_clk
> +
> +required:
> +  - compatible
> +  - reg
> +  - interrupts
> +
> +allOf:
> +  - $ref: can-controller.yaml#
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            enum:
> +              - microchip,sam9x60-can
> +    then:
> +      required:
> +        - compatible
> +        - reg
> +        - interrupts
> +        - clocks
> +        - clock-names
> +
> +unevaluatedProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +    can0: can@f000c000 {
> +          compatible = "atmel,at91sam9x5-can";
> +          reg = <0xf000c000 0x300>;
> +          interrupts = <30 IRQ_TYPE_LEVEL_HIGH 3>;
> +    };
> diff --git a/Documentation/devicetree/bindings/net/can/atmel-can.txt b/Documentation/devicetree/bindings/net/can/atmel-can.txt
> deleted file mode 100644
> index 218a3b3eb27e..000000000000
> --- a/Documentation/devicetree/bindings/net/can/atmel-can.txt
> +++ /dev/null
> @@ -1,15 +0,0 @@
> -* AT91 CAN *
> -
> -Required properties:
> -  - compatible: Should be "atmel,at91sam9263-can", "atmel,at91sam9x5-can" or
> -    "microchip,sam9x60-can"
> -  - reg: Should contain CAN controller registers location and length
> -  - interrupts: Should contain IRQ line for the CAN controller
> -
> -Example:
> -
> -	can0: can@f000c000 {
> -		compatible = "atmel,at91sam9x5-can";
> -		reg = <0xf000c000 0x300>;
> -		interrupts = <40 4 5>
> -	};
> 
> ---
> base-commit: 32ffa5373540a8d1c06619f52d019c6cdc948bb4
> change-id: 20240912-can-8eb7f8e7566d
> 
> Best regards,
> -- 
> Charan Pedumuru <charan.pedumuru@microchip.com>
> 
Re: [PATCH] dt-bindings: net: can: atmel: Convert to json schema
Posted by Dharma.B@microchip.com 2 months, 2 weeks ago
On 12/09/24 11:19 am, Charan Pedumuru wrote:
> Convert atmel-can documentation to yaml format
> 
> Signed-off-by: Charan Pedumuru <charan.pedumuru@microchip.com>
Reviewed-by: Dharma Balasubiramani <dharma.b@microchip.com>
> ---
>   .../bindings/net/can/atmel,at91sam9263-can.yaml    | 67 ++++++++++++++++++++++
>   .../devicetree/bindings/net/can/atmel-can.txt      | 15 -----
>   2 files changed, 67 insertions(+), 15 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/net/can/atmel,at91sam9263-can.yaml b/Documentation/devicetree/bindings/net/can/atmel,at91sam9263-can.yaml
> new file mode 100644
> index 000000000000..269af4c993a7
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/can/atmel,at91sam9263-can.yaml
> @@ -0,0 +1,67 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/net/can/atmel,at91sam9263-can.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Atmel CAN Controller
> +
> +maintainers:
> +  - Nicolas Ferre <nicolas.ferre@microchip.com>
> +
> +properties:
> +  compatible:
> +    oneOf:
> +      - enum:
> +          - atmel,at91sam9263-can
> +          - atmel,at91sam9x5-can
> +          - microchip,sam9x60-can
> +      - items:
> +          - enum:
> +              - microchip,sam9x60-can
> +          - const: atmel,at91sam9x5-can
> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  clocks:
> +    maxItems: 1
> +
> +  clock-names:
> +    items:
> +      - const: can_clk
> +
> +required:
> +  - compatible
> +  - reg
> +  - interrupts
> +
> +allOf:
> +  - $ref: can-controller.yaml#
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            enum:
> +              - microchip,sam9x60-can
> +    then:
> +      required:
> +        - compatible
> +        - reg
> +        - interrupts
> +        - clocks
> +        - clock-names
> +
> +unevaluatedProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +    can0: can@f000c000 {
> +          compatible = "atmel,at91sam9x5-can";
> +          reg = <0xf000c000 0x300>;
> +          interrupts = <30 IRQ_TYPE_LEVEL_HIGH 3>;
> +    };
> diff --git a/Documentation/devicetree/bindings/net/can/atmel-can.txt b/Documentation/devicetree/bindings/net/can/atmel-can.txt
> deleted file mode 100644
> index 218a3b3eb27e..000000000000
> --- a/Documentation/devicetree/bindings/net/can/atmel-can.txt
> +++ /dev/null
> @@ -1,15 +0,0 @@
> -* AT91 CAN *
> -
> -Required properties:
> -  - compatible: Should be "atmel,at91sam9263-can", "atmel,at91sam9x5-can" or
> -    "microchip,sam9x60-can"
> -  - reg: Should contain CAN controller registers location and length
> -  - interrupts: Should contain IRQ line for the CAN controller
> -
> -Example:
> -
> -	can0: can@f000c000 {
> -		compatible = "atmel,at91sam9x5-can";
> -		reg = <0xf000c000 0x300>;
> -		interrupts = <40 4 5>
> -	};
> 
> ---
> base-commit: 32ffa5373540a8d1c06619f52d019c6cdc948bb4
> change-id: 20240912-can-8eb7f8e7566d
> 
> Best regards,


-- 
With Best Regards,
Dharma B.