Skip to content

Commit

Permalink
can: rcar_canfd: Add Classical CAN only mode support
Browse files Browse the repository at this point in the history
The controller can operate in one of the two global modes
 - CAN FD only mode (default)
 - Classical CAN (CAN2.0) only mode

This patch adds support for Classical CAN only mode. It can be enabled
by defining the optional device tree property "renesas,no-can-fd" of this
node.

Note: R-Car Gen3 h/w manual v0.51E shows bit6 of RSCFDnCFDGCFG as
reserved, which is incorrect. This bit is same as RSCFDnGCFG.

Signed-off-by: Ramesh Shanmugasundaram <ramesh.shanmugasundaram@bp.renesas.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
  • Loading branch information
Ramesh Shanmugasundaram authored and Marc Kleine-Budde committed Jun 23, 2016
1 parent 2781ff5 commit 6f4c2ee
Show file tree
Hide file tree
Showing 2 changed files with 255 additions and 121 deletions.
21 changes: 14 additions & 7 deletions Documentation/devicetree/bindings/net/can/rcar_canfd.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,12 @@ 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
-------

Expand Down Expand Up @@ -63,12 +69,13 @@ SoC common .dtsi file:

Board specific .dts file:

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

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

channel1 {
status = "okay";
Expand All @@ -79,9 +86,9 @@ 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";
pinctrl-0 = <&canfd0_pins &can_clk_pins>;
pinctrl-names = "default";
status = "okay";

channel0 {
status = "okay";
Expand Down
Loading

0 comments on commit 6f4c2ee

Please sign in to comment.