Renesas R-Car CAN FD controller Device Tree Bindings
----------------------------------------------------

Required properties:
- compatible: Must contain one or more of the following:
  - "renesas,rcar-gen3-canfd" for R-Car Gen3 and RZ/G2 compatible controllers.
  - "renesas,r8a774c0-canfd" for R8A774C0 (RZ/G2E) compatible controller.
  - "renesas,r8a7795-canfd" for R8A7795 (R-Car H3) compatible controller.
  - "renesas,r8a7796-canfd" for R8A7796 (R-Car M3-W) compatible controller.
  - "renesas,r8a77965-canfd" for R8A77965 (R-Car M3-N) compatible controller.
  - "renesas,r8a77970-canfd" for R8A77970 (R-Car V3M) compatible controller.
  - "renesas,r8a77980-canfd" for R8A77980 (R-Car V3H) compatible controller.
  - "renesas,r8a77990-canfd" for R8A77990 (R-Car E3) compatible controller.

  When compatible with the generic version, nodes must list the
  SoC-specific version corresponding to the platform first, followed by the
  family-specific and/or generic versions.

- reg: physical base address and size of the R-Car CAN FD register map.
- interrupts: interrupt specifiers for the Channel & Global interrupts
- clocks: phandles and clock specifiers for 3 clock inputs.
- clock-names: 3 clock input name strings: "fck", "canfd", "can_clk".
- pinctrl-0: pin control group to be used for this controller.
- pinctrl-names: must be "default".

Required child nodes:
The controller supports two channels and each is represented as a child node.
The name of the child nodes are "channel0" and "channel1" respectively. Each
child node supports the "status" property only, which is used to
enable/disable the respective channel.

Required properties for "renesas,r8a774c0-canfd", "renesas,r8a7795-canfd",
"renesas,r8a7796-canfd", "renesas,r8a77965-canfd", and "renesas,r8a77990-canfd"
compatible:
In R8A774C0, R8A7795, R8A7796, R8A77965, and R8A77990 SoCs, canfd clock is a
div6 clock and can be used by both CAN and CAN FD controller at the same time.
It needs to be scaled to maximum frequency if any of these controllers use it.
This is done using the below properties:

- assigned-clocks: phandle of canfd clock.
- assigned-clock-rates: maximum frequency of this clock.

Optional property:
The controller can operate in either CAN FD only mode (default) or
Classical CAN only mode. The mode is global to both the channels. In order to
enable the later, define the following optional property.
 - renesas,no-can-fd: puts the controller in Classical CAN only mode.

Example
-------

SoC common .dtsi file:

		canfd: can@e66c0000 {
			compatible = "renesas,r8a7795-canfd",
				     "renesas,rcar-gen3-canfd";
			reg = <0 0xe66c0000 0 0x8000>;
			interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>,
				   <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&cpg CPG_MOD 914>,
			       <&cpg CPG_CORE R8A7795_CLK_CANFD>,
			       <&can_clk>;
			clock-names = "fck", "canfd", "can_clk";
			assigned-clocks = <&cpg CPG_CORE R8A7795_CLK_CANFD>;
			assigned-clock-rates = <40000000>;
			power-domains = <&cpg>;
			status = "disabled";

			channel0 {
				status = "disabled";
			};

			channel1 {
				status = "disabled";
			};
		};

Board specific .dts file:

E.g. below enables Channel 1 alone in the board in Classical CAN only mode.

&canfd {
	pinctrl-0 = <&canfd1_pins>;
	pinctrl-names = "default";
	renesas,no-can-fd;
	status = "okay";

	channel1 {
		status = "okay";
	};
};

E.g. below enables Channel 0 alone in the board using External clock
as fCAN clock.

&canfd {
	pinctrl-0 = <&canfd0_pins &can_clk_pins>;
	pinctrl-names = "default";
	status = "okay";

	channel0 {
		status = "okay";
	};
};
