1 # SPDX-License-Identifier: (GPL-2.0-only OR BS 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 %YAML 1.2 2 %YAML 1.2 3 --- 3 --- 4 $id: http://devicetree.org/schemas/net/can/ren 4 $id: http://devicetree.org/schemas/net/can/renesas,rcar-canfd.yaml# 5 $schema: http://devicetree.org/meta-schemas/co 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 6 6 7 title: Renesas R-Car CAN FD Controller 7 title: Renesas R-Car CAN FD Controller 8 8 9 maintainers: 9 maintainers: 10 - Fabrizio Castro <fabrizio.castro.jz@renesas 10 - Fabrizio Castro <fabrizio.castro.jz@renesas.com> 11 11 12 properties: 12 properties: 13 compatible: 13 compatible: 14 oneOf: 14 oneOf: 15 - items: 15 - items: 16 - enum: 16 - enum: 17 - renesas,r8a774a1-canfd # R 17 - renesas,r8a774a1-canfd # RZ/G2M 18 - renesas,r8a774b1-canfd # R 18 - renesas,r8a774b1-canfd # RZ/G2N 19 - renesas,r8a774c0-canfd # R 19 - renesas,r8a774c0-canfd # RZ/G2E 20 - renesas,r8a774e1-canfd # R 20 - renesas,r8a774e1-canfd # RZ/G2H 21 - renesas,r8a7795-canfd # R 21 - renesas,r8a7795-canfd # R-Car H3 22 - renesas,r8a7796-canfd # R 22 - renesas,r8a7796-canfd # R-Car M3-W 23 - renesas,r8a77961-canfd # R 23 - renesas,r8a77961-canfd # R-Car M3-W+ 24 - renesas,r8a77965-canfd # R 24 - renesas,r8a77965-canfd # R-Car M3-N 25 - renesas,r8a77970-canfd # R 25 - renesas,r8a77970-canfd # R-Car V3M 26 - renesas,r8a77980-canfd # R 26 - renesas,r8a77980-canfd # R-Car V3H 27 - renesas,r8a77990-canfd # R 27 - renesas,r8a77990-canfd # R-Car E3 28 - renesas,r8a77995-canfd # R 28 - renesas,r8a77995-canfd # R-Car D3 29 - const: renesas,rcar-gen3-canfd # R 29 - const: renesas,rcar-gen3-canfd # R-Car Gen3 and RZ/G2 30 30 31 - items: 31 - items: 32 - enum: 32 - enum: 33 - renesas,r8a779a0-canfd # R 33 - renesas,r8a779a0-canfd # R-Car V3U 34 - renesas,r8a779g0-canfd # R 34 - renesas,r8a779g0-canfd # R-Car V4H 35 - renesas,r8a779h0-canfd # R 35 - renesas,r8a779h0-canfd # R-Car V4M 36 - const: renesas,rcar-gen4-canfd # R 36 - const: renesas,rcar-gen4-canfd # R-Car Gen4 37 37 38 - items: 38 - items: 39 - enum: 39 - enum: 40 - renesas,r9a07g043-canfd # R 40 - renesas,r9a07g043-canfd # RZ/G2UL and RZ/Five 41 - renesas,r9a07g044-canfd # R 41 - renesas,r9a07g044-canfd # RZ/G2{L,LC} 42 - renesas,r9a07g054-canfd # R 42 - renesas,r9a07g054-canfd # RZ/V2L 43 - const: renesas,rzg2l-canfd # R 43 - const: renesas,rzg2l-canfd # RZ/G2L family 44 44 45 reg: 45 reg: 46 maxItems: 1 46 maxItems: 1 47 47 48 interrupts: true 48 interrupts: true 49 49 50 clocks: 50 clocks: 51 maxItems: 3 51 maxItems: 3 52 52 53 clock-names: 53 clock-names: 54 items: 54 items: 55 - const: fck 55 - const: fck 56 - const: canfd 56 - const: canfd 57 - const: can_clk 57 - const: can_clk 58 58 59 power-domains: 59 power-domains: 60 maxItems: 1 60 maxItems: 1 61 61 62 resets: true 62 resets: true 63 63 64 renesas,no-can-fd: 64 renesas,no-can-fd: 65 $ref: /schemas/types.yaml#/definitions/fla 65 $ref: /schemas/types.yaml#/definitions/flag 66 description: 66 description: 67 The controller can operate in either CAN 67 The controller can operate in either CAN FD only mode (default) or 68 Classical CAN only mode. The mode is gl 68 Classical CAN only mode. The mode is global to all channels. 69 Specify this property to put the control 69 Specify this property to put the controller in Classical CAN only mode. 70 70 71 assigned-clocks: 71 assigned-clocks: 72 description: 72 description: 73 Reference to the CANFD clock. The CANFD 73 Reference to the CANFD clock. The CANFD clock is a div6 clock and can be 74 used by both CAN (if present) and CAN FD 74 used by both CAN (if present) and CAN FD controllers at the same time. 75 It needs to be scaled to maximum frequen 75 It needs to be scaled to maximum frequency if any of these controllers 76 use it. 76 use it. 77 77 78 assigned-clock-rates: 78 assigned-clock-rates: 79 description: Maximum frequency of the CANF 79 description: Maximum frequency of the CANFD clock. 80 80 81 patternProperties: 81 patternProperties: 82 "^channel[0-7]$": 82 "^channel[0-7]$": 83 type: object 83 type: object 84 description: 84 description: 85 The controller supports multiple channel 85 The controller supports multiple channels and each is represented as a 86 child node. Each channel can be enabled 86 child node. Each channel can be enabled/disabled individually. 87 87 88 properties: 88 properties: 89 phys: 89 phys: 90 maxItems: 1 90 maxItems: 1 91 91 92 additionalProperties: false 92 additionalProperties: false 93 93 94 required: 94 required: 95 - compatible 95 - compatible 96 - reg 96 - reg 97 - interrupts 97 - interrupts 98 - interrupt-names 98 - interrupt-names 99 - clocks 99 - clocks 100 - clock-names 100 - clock-names 101 - power-domains 101 - power-domains 102 - resets 102 - resets 103 - assigned-clocks 103 - assigned-clocks 104 - assigned-clock-rates 104 - assigned-clock-rates 105 - channel0 105 - channel0 106 - channel1 106 - channel1 107 107 108 allOf: 108 allOf: 109 - $ref: can-controller.yaml# 109 - $ref: can-controller.yaml# 110 110 111 - if: 111 - if: 112 properties: 112 properties: 113 compatible: 113 compatible: 114 contains: 114 contains: 115 enum: 115 enum: 116 - renesas,rzg2l-canfd 116 - renesas,rzg2l-canfd 117 then: 117 then: 118 properties: 118 properties: 119 interrupts: 119 interrupts: 120 items: 120 items: 121 - description: CAN global error in 121 - description: CAN global error interrupt 122 - description: CAN receive FIFO in 122 - description: CAN receive FIFO interrupt 123 - description: CAN0 error interrup 123 - description: CAN0 error interrupt 124 - description: CAN0 transmit inter 124 - description: CAN0 transmit interrupt 125 - description: CAN0 transmit/recei 125 - description: CAN0 transmit/receive FIFO receive completion interrupt 126 - description: CAN1 error interrup 126 - description: CAN1 error interrupt 127 - description: CAN1 transmit inter 127 - description: CAN1 transmit interrupt 128 - description: CAN1 transmit/recei 128 - description: CAN1 transmit/receive FIFO receive completion interrupt 129 129 130 interrupt-names: 130 interrupt-names: 131 items: 131 items: 132 - const: g_err 132 - const: g_err 133 - const: g_recc 133 - const: g_recc 134 - const: ch0_err 134 - const: ch0_err 135 - const: ch0_rec 135 - const: ch0_rec 136 - const: ch0_trx 136 - const: ch0_trx 137 - const: ch1_err 137 - const: ch1_err 138 - const: ch1_rec 138 - const: ch1_rec 139 - const: ch1_trx 139 - const: ch1_trx 140 140 141 resets: 141 resets: 142 maxItems: 2 142 maxItems: 2 143 143 144 reset-names: 144 reset-names: 145 items: 145 items: 146 - const: rstp_n 146 - const: rstp_n 147 - const: rstc_n 147 - const: rstc_n 148 148 149 required: 149 required: 150 - reset-names 150 - reset-names 151 else: 151 else: 152 properties: 152 properties: 153 interrupts: 153 interrupts: 154 items: 154 items: 155 - description: Channel interrupt 155 - description: Channel interrupt 156 - description: Global interrupt 156 - description: Global interrupt 157 157 158 interrupt-names: 158 interrupt-names: 159 items: 159 items: 160 - const: ch_int 160 - const: ch_int 161 - const: g_int 161 - const: g_int 162 162 163 resets: 163 resets: 164 maxItems: 1 164 maxItems: 1 165 165 166 - if: 166 - if: 167 properties: 167 properties: 168 compatible: 168 compatible: 169 contains: 169 contains: 170 const: renesas,r8a779h0-canfd 170 const: renesas,r8a779h0-canfd 171 then: 171 then: 172 patternProperties: 172 patternProperties: 173 "^channel[5-7]$": false 173 "^channel[5-7]$": false 174 else: 174 else: 175 if: 175 if: 176 not: 176 not: 177 properties: 177 properties: 178 compatible: 178 compatible: 179 contains: 179 contains: 180 const: renesas,rcar-gen4-canfd 180 const: renesas,rcar-gen4-canfd 181 then: 181 then: 182 patternProperties: 182 patternProperties: 183 "^channel[2-7]$": false 183 "^channel[2-7]$": false 184 184 185 unevaluatedProperties: false 185 unevaluatedProperties: false 186 186 187 examples: 187 examples: 188 - | 188 - | 189 #include <dt-bindings/clock/r8a7795-cpg-ms 189 #include <dt-bindings/clock/r8a7795-cpg-mssr.h> 190 #include <dt-bindings/interrupt-controller 190 #include <dt-bindings/interrupt-controller/arm-gic.h> 191 #include <dt-bindings/power/r8a7795-sysc.h 191 #include <dt-bindings/power/r8a7795-sysc.h> 192 192 193 canfd: can@e66c0000 { 193 canfd: can@e66c0000 { 194 compatible = "renesas,r8a7795-canf 194 compatible = "renesas,r8a7795-canfd", 195 "renesas,rcar-gen3-ca 195 "renesas,rcar-gen3-canfd"; 196 reg = <0xe66c0000 0x8000>; 196 reg = <0xe66c0000 0x8000>; 197 interrupts = <GIC_SPI 29 IRQ_TYPE_ 197 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>, 198 <GIC_SPI 30 IRQ_TYPE_ 198 <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 199 interrupt-names = "ch_int", "g_int 199 interrupt-names = "ch_int", "g_int"; 200 clocks = <&cpg CPG_MOD 914>, 200 clocks = <&cpg CPG_MOD 914>, 201 <&cpg CPG_CORE R8A7795_CL 201 <&cpg CPG_CORE R8A7795_CLK_CANFD>, 202 <&can_clk>; 202 <&can_clk>; 203 clock-names = "fck", "canfd", "can 203 clock-names = "fck", "canfd", "can_clk"; 204 assigned-clocks = <&cpg CPG_CORE R 204 assigned-clocks = <&cpg CPG_CORE R8A7795_CLK_CANFD>; 205 assigned-clock-rates = <40000000>; 205 assigned-clock-rates = <40000000>; 206 power-domains = <&sysc R8A7795_PD_ 206 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 207 resets = <&cpg 914>; 207 resets = <&cpg 914>; 208 208 209 channel0 { 209 channel0 { 210 }; 210 }; 211 211 212 channel1 { 212 channel1 { 213 }; 213 }; 214 }; 214 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.