1*8a5e7d19SGeert Uytterhoeven# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*8a5e7d19SGeert Uytterhoeven%YAML 1.2 3*8a5e7d19SGeert Uytterhoeven--- 4*8a5e7d19SGeert Uytterhoeven$id: http://devicetree.org/schemas/net/can/renesas,rcar-canfd.yaml# 5*8a5e7d19SGeert Uytterhoeven$schema: http://devicetree.org/meta-schemas/core.yaml# 6*8a5e7d19SGeert Uytterhoeven 7*8a5e7d19SGeert Uytterhoeventitle: Renesas R-Car CAN FD Controller 8*8a5e7d19SGeert Uytterhoeven 9*8a5e7d19SGeert Uytterhoevenmaintainers: 10*8a5e7d19SGeert Uytterhoeven - Fabrizio Castro <fabrizio.castro.jz@renesas.com> 11*8a5e7d19SGeert Uytterhoeven 12*8a5e7d19SGeert UytterhoevenallOf: 13*8a5e7d19SGeert Uytterhoeven - $ref: can-controller.yaml# 14*8a5e7d19SGeert Uytterhoeven 15*8a5e7d19SGeert Uytterhoevenproperties: 16*8a5e7d19SGeert Uytterhoeven compatible: 17*8a5e7d19SGeert Uytterhoeven oneOf: 18*8a5e7d19SGeert Uytterhoeven - items: 19*8a5e7d19SGeert Uytterhoeven - enum: 20*8a5e7d19SGeert Uytterhoeven - renesas,r8a774a1-canfd # RZ/G2M 21*8a5e7d19SGeert Uytterhoeven - renesas,r8a774b1-canfd # RZ/G2N 22*8a5e7d19SGeert Uytterhoeven - renesas,r8a774c0-canfd # RZ/G2E 23*8a5e7d19SGeert Uytterhoeven - renesas,r8a774e1-canfd # RZ/G2H 24*8a5e7d19SGeert Uytterhoeven - renesas,r8a7795-canfd # R-Car H3 25*8a5e7d19SGeert Uytterhoeven - renesas,r8a7796-canfd # R-Car M3-W 26*8a5e7d19SGeert Uytterhoeven - renesas,r8a77965-canfd # R-Car M3-N 27*8a5e7d19SGeert Uytterhoeven - renesas,r8a77970-canfd # R-Car V3M 28*8a5e7d19SGeert Uytterhoeven - renesas,r8a77980-canfd # R-Car V3H 29*8a5e7d19SGeert Uytterhoeven - renesas,r8a77990-canfd # R-Car E3 30*8a5e7d19SGeert Uytterhoeven - renesas,r8a77995-canfd # R-Car D3 31*8a5e7d19SGeert Uytterhoeven - const: renesas,rcar-gen3-canfd # R-Car Gen3 and RZ/G2 32*8a5e7d19SGeert Uytterhoeven 33*8a5e7d19SGeert Uytterhoeven reg: 34*8a5e7d19SGeert Uytterhoeven maxItems: 1 35*8a5e7d19SGeert Uytterhoeven 36*8a5e7d19SGeert Uytterhoeven interrupts: 37*8a5e7d19SGeert Uytterhoeven items: 38*8a5e7d19SGeert Uytterhoeven - description: Channel interrupt 39*8a5e7d19SGeert Uytterhoeven - description: Global interrupt 40*8a5e7d19SGeert Uytterhoeven 41*8a5e7d19SGeert Uytterhoeven clocks: 42*8a5e7d19SGeert Uytterhoeven maxItems: 3 43*8a5e7d19SGeert Uytterhoeven 44*8a5e7d19SGeert Uytterhoeven clock-names: 45*8a5e7d19SGeert Uytterhoeven items: 46*8a5e7d19SGeert Uytterhoeven - const: fck 47*8a5e7d19SGeert Uytterhoeven - const: canfd 48*8a5e7d19SGeert Uytterhoeven - const: can_clk 49*8a5e7d19SGeert Uytterhoeven 50*8a5e7d19SGeert Uytterhoeven power-domains: 51*8a5e7d19SGeert Uytterhoeven maxItems: 1 52*8a5e7d19SGeert Uytterhoeven 53*8a5e7d19SGeert Uytterhoeven resets: 54*8a5e7d19SGeert Uytterhoeven maxItems: 1 55*8a5e7d19SGeert Uytterhoeven 56*8a5e7d19SGeert Uytterhoeven renesas,no-can-fd: 57*8a5e7d19SGeert Uytterhoeven $ref: /schemas/types.yaml#/definitions/flag 58*8a5e7d19SGeert Uytterhoeven description: 59*8a5e7d19SGeert Uytterhoeven The controller can operate in either CAN FD only mode (default) or 60*8a5e7d19SGeert Uytterhoeven Classical CAN only mode. The mode is global to both the channels. 61*8a5e7d19SGeert Uytterhoeven Specify this property to put the controller in Classical CAN only mode. 62*8a5e7d19SGeert Uytterhoeven 63*8a5e7d19SGeert Uytterhoeven assigned-clocks: 64*8a5e7d19SGeert Uytterhoeven description: 65*8a5e7d19SGeert Uytterhoeven Reference to the CANFD clock. The CANFD clock is a div6 clock and can be 66*8a5e7d19SGeert Uytterhoeven used by both CAN (if present) and CAN FD controllers at the same time. 67*8a5e7d19SGeert Uytterhoeven It needs to be scaled to maximum frequency if any of these controllers 68*8a5e7d19SGeert Uytterhoeven use it. 69*8a5e7d19SGeert Uytterhoeven 70*8a5e7d19SGeert Uytterhoeven assigned-clock-rates: 71*8a5e7d19SGeert Uytterhoeven description: Maximum frequency of the CANFD clock. 72*8a5e7d19SGeert Uytterhoeven 73*8a5e7d19SGeert UytterhoevenpatternProperties: 74*8a5e7d19SGeert Uytterhoeven "^channel[01]$": 75*8a5e7d19SGeert Uytterhoeven type: object 76*8a5e7d19SGeert Uytterhoeven description: 77*8a5e7d19SGeert Uytterhoeven The controller supports two channels and each is represented as a child 78*8a5e7d19SGeert Uytterhoeven node. Each child node supports the "status" property only, which 79*8a5e7d19SGeert Uytterhoeven is used to enable/disable the respective channel. 80*8a5e7d19SGeert Uytterhoeven 81*8a5e7d19SGeert Uytterhoevenrequired: 82*8a5e7d19SGeert Uytterhoeven - compatible 83*8a5e7d19SGeert Uytterhoeven - reg 84*8a5e7d19SGeert Uytterhoeven - interrupts 85*8a5e7d19SGeert Uytterhoeven - clocks 86*8a5e7d19SGeert Uytterhoeven - clock-names 87*8a5e7d19SGeert Uytterhoeven - power-domains 88*8a5e7d19SGeert Uytterhoeven - resets 89*8a5e7d19SGeert Uytterhoeven - assigned-clocks 90*8a5e7d19SGeert Uytterhoeven - assigned-clock-rates 91*8a5e7d19SGeert Uytterhoeven - channel0 92*8a5e7d19SGeert Uytterhoeven - channel1 93*8a5e7d19SGeert Uytterhoeven 94*8a5e7d19SGeert UytterhoevenunevaluatedProperties: false 95*8a5e7d19SGeert Uytterhoeven 96*8a5e7d19SGeert Uytterhoevenexamples: 97*8a5e7d19SGeert Uytterhoeven - | 98*8a5e7d19SGeert Uytterhoeven #include <dt-bindings/clock/r8a7795-cpg-mssr.h> 99*8a5e7d19SGeert Uytterhoeven #include <dt-bindings/interrupt-controller/arm-gic.h> 100*8a5e7d19SGeert Uytterhoeven #include <dt-bindings/power/r8a7795-sysc.h> 101*8a5e7d19SGeert Uytterhoeven 102*8a5e7d19SGeert Uytterhoeven canfd: can@e66c0000 { 103*8a5e7d19SGeert Uytterhoeven compatible = "renesas,r8a7795-canfd", 104*8a5e7d19SGeert Uytterhoeven "renesas,rcar-gen3-canfd"; 105*8a5e7d19SGeert Uytterhoeven reg = <0xe66c0000 0x8000>; 106*8a5e7d19SGeert Uytterhoeven interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>, 107*8a5e7d19SGeert Uytterhoeven <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 108*8a5e7d19SGeert Uytterhoeven clocks = <&cpg CPG_MOD 914>, 109*8a5e7d19SGeert Uytterhoeven <&cpg CPG_CORE R8A7795_CLK_CANFD>, 110*8a5e7d19SGeert Uytterhoeven <&can_clk>; 111*8a5e7d19SGeert Uytterhoeven clock-names = "fck", "canfd", "can_clk"; 112*8a5e7d19SGeert Uytterhoeven assigned-clocks = <&cpg CPG_CORE R8A7795_CLK_CANFD>; 113*8a5e7d19SGeert Uytterhoeven assigned-clock-rates = <40000000>; 114*8a5e7d19SGeert Uytterhoeven power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 115*8a5e7d19SGeert Uytterhoeven resets = <&cpg 914>; 116*8a5e7d19SGeert Uytterhoeven 117*8a5e7d19SGeert Uytterhoeven channel0 { 118*8a5e7d19SGeert Uytterhoeven }; 119*8a5e7d19SGeert Uytterhoeven 120*8a5e7d19SGeert Uytterhoeven channel1 { 121*8a5e7d19SGeert Uytterhoeven }; 122*8a5e7d19SGeert Uytterhoeven }; 123