[PATCH] dt-bindings: net: can: fsl,mpc5xxx-mscan: Convert to DT schema
From: Quchaosheng <hidden>
Date: 2026-09-14 03:02:32
Also in:
linux-devicetree
Subsystem:
can network drivers, open firmware and flattened device tree bindings, the rest · Maintainers:
Marc Kleine-Budde, Vincent Mailhol, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Linus Torvalds
Convert the Freescale MPC5xxx MSCAN controller binding from free-form text to DT schema, and reference the common can-controller.yaml schema. The original text described the two compatible strings and their clock source properties in separate sections. This is expressed with a single enum for compatible, and the allowed values of fsl,mscan-clock-source are constrained to the strings the driver accepts: the driver compares against "ip", "sys" and "ref" and rejects anything else. The clocks and clock-names properties are documented as well. The driver looks up the "ipg", "ips", "sys", "ref" and "mclk" clocks by name, and the existing device trees provide exactly those. They were not described by the old text. The note that the MPC5121 Rev. 1 processor is not supported is kept from the original text. unevaluatedProperties is used rather than additionalProperties so that properties provided by can-controller.yaml, such as termination-gpios, remain usable. Signed-off-by: Quchaosheng <redacted> --- .../bindings/net/can/fsl,mpc5xxx-mscan.yaml | 87 +++++++++++++++++++ .../bindings/net/can/mpc5xxx-mscan.txt | 53 ----------- 2 files changed, 87 insertions(+), 53 deletions(-) create mode 100644 Documentation/devicetree/bindings/net/can/fsl,mpc5xxx-mscan.yaml delete mode 100644 Documentation/devicetree/bindings/net/can/mpc5xxx-mscan.txt
diff --git a/Documentation/devicetree/bindings/net/can/fsl,mpc5xxx-mscan.yaml b/Documentation/devicetree/bindings/net/can/fsl,mpc5xxx-mscan.yaml
new file mode 100644
index 000000000..108f225f9
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/can/fsl,mpc5xxx-mscan.yaml@@ -0,0 +1,87 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/net/can/fsl,mpc5xxx-mscan.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Freescale MPC5xxx MSCAN controller + +maintainers: + - Marc Kleine-Budde <mkl@pengutronix.de> + +description: + The MSCAN controller found on Freescale MPC5200 and MPC5121 SoCs. Note that + the MPC5121 Rev. 1 processor is not supported. + +allOf: + - $ref: can-controller.yaml# + +properties: + compatible: + enum: + - fsl,mpc5200-mscan + - fsl,mpc5121-mscan + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + clocks: + description: + Clocks the controller needs. On MPC5121 the driver looks up "ipg", + "ips", "sys", "ref" and "mclk" by name. + maxItems: 5 + + clock-names: + items: + - const: ipg + - const: ips + - const: sys + - const: ref + - const: mclk + + fsl,mscan-clock-source: + description: + Clock source used for the controller. Valid values are "ip" for the IP + bus clock, "ref" for the reference clock (XTAL) and "sys" for the + system clock. "sys" is only available on MPC5121. When the property is + absent, an optimal clock source based on the system clock is selected, + falling back to the reference clock. + enum: [ip, ref, sys] + + fsl,mscan-clock-divider: + description: + Additional clock divider for the reference and system clock sources. + Defaults to 1 when not specified. + $ref: /schemas/types.yaml#/definitions/uint32 + default: 1 + +required: + - compatible + - reg + - interrupts + +unevaluatedProperties: false + +examples: + - | + #include <dt-bindings/interrupt-controller/irq.h> + + can@1300 { + compatible = "fsl,mpc5121-mscan"; + reg = <0x1300 0x80>; + interrupts = <12 IRQ_TYPE_LEVEL_LOW>; + interrupt-parent = <&ipic>; + }; + + can@1380 { + compatible = "fsl,mpc5121-mscan"; + reg = <0x1380 0x80>; + interrupts = <13 IRQ_TYPE_LEVEL_LOW>; + interrupt-parent = <&ipic>; + fsl,mscan-clock-source = "ref"; + fsl,mscan-clock-divider = <3>; + }; +...
diff --git a/Documentation/devicetree/bindings/net/can/mpc5xxx-mscan.txt b/Documentation/devicetree/bindings/net/can/mpc5xxx-mscan.txt
deleted file mode 100644
index 2fa4fcd38..000000000
--- a/Documentation/devicetree/bindings/net/can/mpc5xxx-mscan.txt
+++ /dev/null@@ -1,53 +0,0 @@ -CAN Device Tree Bindings ------------------------- - -(c) 2006-2009 Secret Lab Technologies Ltd -Grant Likely <grant.likely@secretlab.ca> - -fsl,mpc5200-mscan nodes ------------------------ -In addition to the required compatible-, reg- and interrupt-properties, you can -also specify which clock source shall be used for the controller: - -- fsl,mscan-clock-source : a string describing the clock source. Valid values - are: "ip" for ip bus clock - "ref" for reference clock (XTAL) - "ref" is default in case this property is not - present. - -fsl,mpc5121-mscan nodes ------------------------ -In addition to the required compatible-, reg- and interrupt-properties, you can -also specify which clock source and divider shall be used for the controller: - -- fsl,mscan-clock-source : a string describing the clock source. Valid values - are: "ip" for ip bus clock - "ref" for reference clock - "sys" for system clock - If this property is not present, an optimal CAN - clock source and frequency based on the system - clock will be selected. If this is not possible, - the reference clock will be used. - -- fsl,mscan-clock-divider: for the reference and system clock, an additional - clock divider can be specified. By default, a - value of 1 is used. - -Note that the MPC5121 Rev. 1 processor is not supported. - -Examples: - can@1300 { - compatible = "fsl,mpc5121-mscan"; - interrupts = <12 0x8>; - interrupt-parent = <&ipic>; - reg = <0x1300 0x80>; - }; - - can@1380 { - compatible = "fsl,mpc5121-mscan"; - interrupts = <13 0x8>; - interrupt-parent = <&ipic>; - reg = <0x1380 0x80>; - fsl,mscan-clock-source = "ref"; - fsl,mscan-clock-divider = <3>; - };
--
2.43.0