On Sun, Aug 01, 2021 at 09:53:22AM +0200, Dario Binacchi wrote: > Convert the Bosch C_CAN/D_CAN controller device tree binding > documentation to json-schema. > > Document missing properties. > Remove "ti,hwmods" as it is no longer used in TI dts. > Make "clocks" required as it is used in all dts. > Correct nodename in the example. > > Signed-off-by: Dario Binacchi <dariobin@xxxxxxxxx> > > --- > > Changes in v4: > - Fix 'syscon-raminit' property to pass checks. > - Drop 'status' property from CAN node of examples. > - Replace CAN node of examples (compatible = "bosch,d_can") with a > recent version taken from socfpga.dtsi dts. > - Update the 'interrupts' property due to the examples updating. > - Add 'resets' property due to the examples updating. > > Changes in v3: > - Add type (phandle-array) and size (maxItems: 2) to syscon-raminit > property. > > Changes in v2: > - Drop Documentation references. > > .../bindings/net/can/bosch,c_can.yaml | 94 +++++++++++++++++++ > .../devicetree/bindings/net/can/c_can.txt | 65 ------------- > 2 files changed, 94 insertions(+), 65 deletions(-) > create mode 100644 Documentation/devicetree/bindings/net/can/bosch,c_can.yaml > delete mode 100644 Documentation/devicetree/bindings/net/can/c_can.txt > > diff --git a/Documentation/devicetree/bindings/net/can/bosch,c_can.yaml b/Documentation/devicetree/bindings/net/can/bosch,c_can.yaml > new file mode 100644 > index 000000000000..9f1028fe58d5 > --- /dev/null > +++ b/Documentation/devicetree/bindings/net/can/bosch,c_can.yaml > @@ -0,0 +1,94 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/net/can/bosch,c_can.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Bosch C_CAN/D_CAN controller Device Tree Bindings > + > +description: Bosch C_CAN/D_CAN controller for CAN bus > + > +maintainers: > + - Dario Binacchi <dariobin@xxxxxxxxx> > + > +allOf: > + - $ref: can-controller.yaml# > + > +properties: > + compatible: > + oneOf: > + - enum: > + - bosch,c_can > + - bosch,d_can > + - ti,dra7-d_can > + - ti,am3352-d_can > + - items: > + - enum: > + - ti,am4372-d_can > + - const: ti,am3352-d_can > + > + reg: > + maxItems: 1 > + > + interrupts: > + minItems: 1 > + maxItems: 4 Well, now you have to define what each interrupt is. > + > + power-domains: > + description: | > + Should contain a phandle to a PM domain provider node and an args > + specifier containing the DCAN device id value. It's mandatory for > + Keystone 2 66AK2G SoCs only. > + maxItems: 1 > + > + clocks: > + description: | > + CAN functional clock phandle. > + maxItems: 1 > + > + clock-names: > + maxItems: 1 > + > + syscon-raminit: > + description: | > + Handle to system control region that contains the RAMINIT register, > + register offset to the RAMINIT register and the CAN instance number (0 > + offset). > + $ref: /schemas/types.yaml#/definitions/phandle-array > + items: > + items: > + - description: The phandle to the system control region. > + - description: The register offset. > + - description: The CAN instance number. > + > + resets: > + maxItems: 1 > + > +required: > + - compatible > + - reg > + - interrupts > + - clocks > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/reset/altr,rst-mgr.h> > + > + can@ffc00000 { > + compatible = "bosch,d_can"; > + reg = <0xffc00000 0x1000>; > + interrupts = <0 131 4>, <0 132 4>, <0 133 4>, <0 134 4>; > + clocks = <&can0_clk>; > + resets = <&rst CAN0_RESET>; > + }; > + - | > + can@0 { > + compatible = "ti,am3352-d_can"; > + reg = <0x0 0x2000>; > + clocks = <&dcan1_fck>; > + clock-names = "fck"; > + syscon-raminit = <&scm_conf 0x644 1>; > + interrupts = <55>; > + };