RE: [PATCH v3] dt-bindings: can: xilinx_can: Convert Xilinx CAN binding to YAML

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Krzysztof,

> -----Original Message-----
> From: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxxxxx>
> Sent: Thursday, March 10, 2022 10:25 PM
> To: Amit Kumar Kumar Mahapatra <akumarma@xxxxxxxxxx>;
> wg@xxxxxxxxxxxxxx; mkl@xxxxxxxxxxxxxx; kuba@xxxxxxxxxx;
> robh+dt@xxxxxxxxxx; Appana Durga Kedareswara Rao
> <appanad@xxxxxxxxxx>
> Cc: linux-can@xxxxxxxxxxxxxxx; netdev@xxxxxxxxxxxxxxx;
> devicetree@xxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx; Michal Simek <michals@xxxxxxxxxx>; git
> <git@xxxxxxxxxx>; Amit Kumar Kumar Mahapatra <akumarma@xxxxxxxxxx>
> Subject: Re: [PATCH v3] dt-bindings: can: xilinx_can: Convert Xilinx CAN
> binding to YAML
> 
> On 10/03/2022 16:39, Amit Kumar Mahapatra wrote:
> > Convert Xilinx CAN binding documentation to YAML.
> >
> > Signed-off-by: Amit Kumar Mahapatra <amit.kumar-
> mahapatra@xxxxxxxxxx>
> > ---
> > BRANCH: yaml
> >
> > Changes in v2:
> >  - Added reference to can-controller.yaml
> >  - Added example node for canfd-2.0
> >
> > Changes in v3:
> >  - Changed yaml file name from xilinx_can.yaml to xilinx,can.yaml
> >  - Added "power-domains" to fix dts_check warnings
> >  - Grouped "clock-names" and "clocks" together
> >  - Added type $ref for all non-standard fields
> >  - Defined compatible strings as enum
> >  - Used defines,instead of hard-coded values, for GIC interrupts
> >  - Droped unused labels in examples
> >  - Droped description for standard feilds
> > ---
> >  .../bindings/net/can/xilinx,can.yaml          | 161 ++++++++++++++++++
> >  .../bindings/net/can/xilinx_can.txt           |  61 -------
> >  2 files changed, 161 insertions(+), 61 deletions(-)  create mode
> > 100644 Documentation/devicetree/bindings/net/can/xilinx,can.yaml
> >  delete mode 100644
> > Documentation/devicetree/bindings/net/can/xilinx_can.txt
> >
> > diff --git a/Documentation/devicetree/bindings/net/can/xilinx,can.yaml
> > b/Documentation/devicetree/bindings/net/can/xilinx,can.yaml
> > new file mode 100644
> > index 000000000000..78398826677d
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/net/can/xilinx,can.yaml
> > @@ -0,0 +1,161 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/net/can/xilinx,can.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title:
> > +  Xilinx Axi CAN/Zynq CANPS controller
> > +
> > +maintainers:
> > +  - Appana Durga Kedareswara rao <appana.durga.rao@xxxxxxxxxx>
> > +
> > +properties:
> > +  compatible:
> > +    enum:
> > +      - xlnx,zynq-can-1.0
> > +      - xlnx,axi-can-1.00.a
> > +      - xlnx,canfd-1.0
> > +      - xlnx,canfd-2.0
> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +  interrupts:
> > +    maxItems: 1
> > +
> > +  clocks:
> > +    minItems: 1
> > +    maxItems: 2
> > +
> > +  clock-names:
> > +    maxItems: 2
> > +
> > +  power-domains:
> > +    maxItems: 1
> > +
> > +  tx-fifo-depth:
> > +    $ref: "/schemas/types.yaml#/definitions/uint32"
> > +    description: CAN Tx fifo depth (Zynq, Axi CAN).
> > +
> > +  rx-fifo-depth:
> > +    $ref: "/schemas/types.yaml#/definitions/uint32"
> > +    description: CAN Rx fifo depth (Zynq, Axi CAN, CAN FD in
> > + sequential Rx mode)
> > +
> > +  tx-mailbox-count:
> > +    $ref: "/schemas/types.yaml#/definitions/uint32"
> > +    description: CAN Tx mailbox buffer count (CAN FD)
> 
> I asked about vendor prefix and I think I did not get an answer from you
> about skipping it. Do you think it is not needed?

Sorry, I went through all your previous comments but I couldn't find the 
comment where you had asked about vendor prefix. Could you please point
me to it ?
We can add vendor prefix to non-standard fields, but we need to update 
driver to be aligned with it and deprecate original property which has been 
added in 2018 and acked by Rob and Marc at that time.
https://github.com/torvalds/linux/commit/7cb0f17f5252874ba0ecbda964e7e01587bf828e

Regards,
Amit
> 
> > +
> > +required:
> > +  - compatible
> > +  - reg
> > +  - interrupts
> > +  - clocks
> > +  - clock-names
> > +
> > +additionalProperties: false
> 
> This should be rather unevaluatedProperties:false, so you could use can-
> controller properties.
> 
> > +
> > +allOf:
> > +  - $ref: can-controller.yaml#
> > +  - if:
> > +      properties:
> > +        compatible:
> > +          contains:
> > +            enum:
> > +              - xlnx,zynq-can-1.0
> > +
> > +    then:
> > +      properties:
> > +        clock-names:
> > +          items:
> > +            - const: can_clk
> > +            - const: pclk
> > +      required:
> > +        - tx-fifo-depth
> > +        - rx-fifo-depth
> > +
> > +  - if:
> > +      properties:
> > +        compatible:
> > +          contains:
> > +            enum:
> > +              - xlnx,axi-can-1.00.a
> > +
> > +    then:
> > +      properties:
> > +        clock-names:
> > +          items:
> > +            - const: can_clk
> > +            - const: s_axi_aclk
> > +      required:
> > +        - tx-fifo-depth
> > +        - rx-fifo-depth
> > +
> > +  - if:
> > +      properties:
> > +        compatible:
> > +          contains:
> > +            enum:
> > +              - xlnx,canfd-1.0
> > +              - xlnx,canfd-2.0
> > +
> > +    then:
> > +      properties:
> > +        clock-names:
> > +          items:
> > +            - const: can_clk
> > +            - const: s_axi_aclk
> > +      required:
> > +        - tx-mailbox-count
> > +        - rx-fifo-depth
> > +
> > +examples:
> > +  - |
> > +    #include <dt-bindings/interrupt-controller/arm-gic.h>
> > +
> > +    can@e0008000 {
> > +        compatible = "xlnx,zynq-can-1.0";
> > +        clocks = <&clkc 19>, <&clkc 36>;
> > +        clock-names = "can_clk", "pclk";
> > +        reg = <0xe0008000 0x1000>;
> 
> Put reg just after compatible in all DTS examples.
> 
> > +        interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
> > +        interrupt-parent = <&intc>;
> > +        tx-fifo-depth = <0x40>;
> > +        rx-fifo-depth = <0x40>;
> > +    };
> > +
> > +  - |
> > +    can@40000000 {
> > +        compatible = "xlnx,axi-can-1.00.a";
> > +        clocks = <&clkc 0>, <&clkc 1>;
> > +        clock-names = "can_clk","s_axi_aclk" ;
> 
> Missing space after ','.
> 
> > +        reg = <0x40000000 0x10000>;
> > +        interrupt-parent = <&intc>;
> > +        interrupts = <GIC_SPI 59 IRQ_TYPE_EDGE_RISING>;
> > +        tx-fifo-depth = <0x40>;
> > +        rx-fifo-depth = <0x40>;
> > +    };
> 
> Best regards,
> Krzysztof




[Index of Archives]     [Automotive Discussions]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]     [CAN Bus]

  Powered by Linux