Commit 692a0dc7 authored by Maxime Ripard's avatar Maxime Ripard Committed by Rob Herring
Browse files

dt-bindings: can: Convert Allwinner A10 CAN controller to a schema



The older Allwinner SoCs have a CAN controller that is supported in Linux,
with a matching Device Tree binding.

Now that we have the DT validation in place, let's convert the device tree
bindings for that controller over to a YAML schemas.

Signed-off-by: default avatarMaxime Ripard <mripard@kernel.org>
Signed-off-by: default avatarRob Herring <robh@kernel.org>
parent ffe9fc1f
Loading
Loading
Loading
Loading
+51 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/can/allwinner,sun4i-a10-can.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Allwinner A10 CAN Controller Device Tree Bindings

maintainers:
  - Chen-Yu Tsai <wens@csie.org>
  - Maxime Ripard <maxime.ripard@bootlin.com>

properties:
  compatible:
    oneOf:
      - items:
          - const: allwinner,sun7i-a20-can
          - const: allwinner,sun4i-a10-can
      - const: allwinner,sun4i-a10-can

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    maxItems: 1

required:
  - compatible
  - reg
  - interrupts
  - clocks

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/clock/sun7i-a20-ccu.h>

    can0: can@1c2bc00 {
        compatible = "allwinner,sun7i-a20-can",
                     "allwinner,sun4i-a10-can";
        reg = <0x01c2bc00 0x400>;
        interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&ccu CLK_APB1_CAN>;
    };

...
+0 −36
Original line number Diff line number Diff line
Allwinner A10/A20 CAN controller Device Tree Bindings
-----------------------------------------------------

Required properties:
- compatible: "allwinner,sun4i-a10-can"
- reg: physical base address and size of the Allwinner A10/A20 CAN register map.
- interrupts: interrupt specifier for the sole interrupt.
- clock: phandle and clock specifier.

Example
-------

SoC common .dtsi file:

	can0_pins_a: can0@0 {
		allwinner,pins = "PH20","PH21";
		allwinner,function = "can";
		allwinner,drive = <0>;
		allwinner,pull = <0>;
	};
...
	can0: can@1c2bc00 {
		compatible = "allwinner,sun4i-a10-can";
		reg = <0x01c2bc00 0x400>;
		interrupts = <0 26 4>;
		clocks = <&apb1_gates 4>;
		status = "disabled";
	};

Board specific .dts file:

	can0: can@1c2bc00 {
		pinctrl-names = "default";
		pinctrl-0 = <&can0_pins_a>;
		status = "okay";
	};