Re: [PATCH v4] dt-bindings: net: can: c_can: convert to json-schema
From: Rob Herring <robh@kernel.org>
Date: 2021-08-03 20:36:20
Also in:
linux-can, linux-devicetree, lkml
On Sun, Aug 01, 2021 at 09:53:22AM +0200, Dario Binacchi wrote:
quoted hunk ↗ jump to hunk
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 <redacted> --- 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.txtdiff --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@libero.it> + +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>;
+ };