1c9ccf3a3SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2c9ccf3a3SEmmanuel Vadot%YAML 1.2 3c9ccf3a3SEmmanuel Vadot--- 4c9ccf3a3SEmmanuel Vadot$id: http://devicetree.org/schemas/net/can/xilinx,can.yaml# 5c9ccf3a3SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6c9ccf3a3SEmmanuel Vadot 7c9ccf3a3SEmmanuel Vadottitle: 8*0e8011faSEmmanuel Vadot Xilinx CAN and CANFD controller 9c9ccf3a3SEmmanuel Vadot 10c9ccf3a3SEmmanuel Vadotmaintainers: 11c9ccf3a3SEmmanuel Vadot - Appana Durga Kedareswara rao <appana.durga.rao@xilinx.com> 12c9ccf3a3SEmmanuel Vadot 13c9ccf3a3SEmmanuel Vadotproperties: 14c9ccf3a3SEmmanuel Vadot compatible: 15c9ccf3a3SEmmanuel Vadot enum: 16c9ccf3a3SEmmanuel Vadot - xlnx,zynq-can-1.0 17c9ccf3a3SEmmanuel Vadot - xlnx,axi-can-1.00.a 18c9ccf3a3SEmmanuel Vadot - xlnx,canfd-1.0 19c9ccf3a3SEmmanuel Vadot - xlnx,canfd-2.0 20c9ccf3a3SEmmanuel Vadot 21c9ccf3a3SEmmanuel Vadot reg: 22c9ccf3a3SEmmanuel Vadot maxItems: 1 23c9ccf3a3SEmmanuel Vadot 24c9ccf3a3SEmmanuel Vadot interrupts: 25c9ccf3a3SEmmanuel Vadot maxItems: 1 26c9ccf3a3SEmmanuel Vadot 27c9ccf3a3SEmmanuel Vadot clocks: 28c9ccf3a3SEmmanuel Vadot minItems: 1 29c9ccf3a3SEmmanuel Vadot maxItems: 2 30c9ccf3a3SEmmanuel Vadot 31c9ccf3a3SEmmanuel Vadot clock-names: 32c9ccf3a3SEmmanuel Vadot maxItems: 2 33c9ccf3a3SEmmanuel Vadot 34c9ccf3a3SEmmanuel Vadot power-domains: 35c9ccf3a3SEmmanuel Vadot maxItems: 1 36c9ccf3a3SEmmanuel Vadot 37c9ccf3a3SEmmanuel Vadot tx-fifo-depth: 38fac71e4eSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 39c9ccf3a3SEmmanuel Vadot description: CAN Tx fifo depth (Zynq, Axi CAN). 40c9ccf3a3SEmmanuel Vadot 41c9ccf3a3SEmmanuel Vadot rx-fifo-depth: 42fac71e4eSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 43c9ccf3a3SEmmanuel Vadot description: CAN Rx fifo depth (Zynq, Axi CAN, CAN FD in sequential Rx mode) 44c9ccf3a3SEmmanuel Vadot 45c9ccf3a3SEmmanuel Vadot tx-mailbox-count: 46fac71e4eSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 47c9ccf3a3SEmmanuel Vadot description: CAN Tx mailbox buffer count (CAN FD) 48c9ccf3a3SEmmanuel Vadot 49aa1a8ff2SEmmanuel Vadot resets: 50aa1a8ff2SEmmanuel Vadot maxItems: 1 51aa1a8ff2SEmmanuel Vadot 5201950c46SEmmanuel Vadot xlnx,has-ecc: 5301950c46SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/flag 5401950c46SEmmanuel Vadot description: CAN TX_OL, TX_TL and RX FIFOs have ECC support(AXI CAN) 5501950c46SEmmanuel Vadot 56c9ccf3a3SEmmanuel Vadotrequired: 57c9ccf3a3SEmmanuel Vadot - compatible 58c9ccf3a3SEmmanuel Vadot - reg 59c9ccf3a3SEmmanuel Vadot - interrupts 60c9ccf3a3SEmmanuel Vadot - clocks 61c9ccf3a3SEmmanuel Vadot - clock-names 62c9ccf3a3SEmmanuel Vadot 63c9ccf3a3SEmmanuel VadotunevaluatedProperties: false 64c9ccf3a3SEmmanuel Vadot 65c9ccf3a3SEmmanuel VadotallOf: 66c9ccf3a3SEmmanuel Vadot - $ref: can-controller.yaml# 67c9ccf3a3SEmmanuel Vadot - if: 68c9ccf3a3SEmmanuel Vadot properties: 69c9ccf3a3SEmmanuel Vadot compatible: 70c9ccf3a3SEmmanuel Vadot contains: 71c9ccf3a3SEmmanuel Vadot enum: 72c9ccf3a3SEmmanuel Vadot - xlnx,zynq-can-1.0 73c9ccf3a3SEmmanuel Vadot 74c9ccf3a3SEmmanuel Vadot then: 75c9ccf3a3SEmmanuel Vadot properties: 76c9ccf3a3SEmmanuel Vadot clock-names: 77c9ccf3a3SEmmanuel Vadot items: 78c9ccf3a3SEmmanuel Vadot - const: can_clk 79c9ccf3a3SEmmanuel Vadot - const: pclk 80c9ccf3a3SEmmanuel Vadot required: 81c9ccf3a3SEmmanuel Vadot - tx-fifo-depth 82c9ccf3a3SEmmanuel Vadot - rx-fifo-depth 83c9ccf3a3SEmmanuel Vadot 84c9ccf3a3SEmmanuel Vadot - if: 85c9ccf3a3SEmmanuel Vadot properties: 86c9ccf3a3SEmmanuel Vadot compatible: 87c9ccf3a3SEmmanuel Vadot contains: 88c9ccf3a3SEmmanuel Vadot enum: 89c9ccf3a3SEmmanuel Vadot - xlnx,axi-can-1.00.a 90c9ccf3a3SEmmanuel Vadot 91c9ccf3a3SEmmanuel Vadot then: 92c9ccf3a3SEmmanuel Vadot properties: 93c9ccf3a3SEmmanuel Vadot clock-names: 94c9ccf3a3SEmmanuel Vadot items: 95c9ccf3a3SEmmanuel Vadot - const: can_clk 96c9ccf3a3SEmmanuel Vadot - const: s_axi_aclk 97c9ccf3a3SEmmanuel Vadot required: 98c9ccf3a3SEmmanuel Vadot - tx-fifo-depth 99c9ccf3a3SEmmanuel Vadot - rx-fifo-depth 100c9ccf3a3SEmmanuel Vadot 101c9ccf3a3SEmmanuel Vadot - if: 102c9ccf3a3SEmmanuel Vadot properties: 103c9ccf3a3SEmmanuel Vadot compatible: 104c9ccf3a3SEmmanuel Vadot contains: 105c9ccf3a3SEmmanuel Vadot enum: 106c9ccf3a3SEmmanuel Vadot - xlnx,canfd-1.0 107c9ccf3a3SEmmanuel Vadot - xlnx,canfd-2.0 108c9ccf3a3SEmmanuel Vadot 109c9ccf3a3SEmmanuel Vadot then: 110c9ccf3a3SEmmanuel Vadot properties: 111c9ccf3a3SEmmanuel Vadot clock-names: 112c9ccf3a3SEmmanuel Vadot items: 113c9ccf3a3SEmmanuel Vadot - const: can_clk 114c9ccf3a3SEmmanuel Vadot - const: s_axi_aclk 115c9ccf3a3SEmmanuel Vadot required: 116c9ccf3a3SEmmanuel Vadot - tx-mailbox-count 117c9ccf3a3SEmmanuel Vadot - rx-fifo-depth 118c9ccf3a3SEmmanuel Vadot 119c9ccf3a3SEmmanuel Vadotexamples: 120c9ccf3a3SEmmanuel Vadot - | 121c9ccf3a3SEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 122c9ccf3a3SEmmanuel Vadot 123c9ccf3a3SEmmanuel Vadot can@e0008000 { 124c9ccf3a3SEmmanuel Vadot compatible = "xlnx,zynq-can-1.0"; 125c9ccf3a3SEmmanuel Vadot reg = <0xe0008000 0x1000>; 126c9ccf3a3SEmmanuel Vadot clocks = <&clkc 19>, <&clkc 36>; 127c9ccf3a3SEmmanuel Vadot clock-names = "can_clk", "pclk"; 128c9ccf3a3SEmmanuel Vadot interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; 129c9ccf3a3SEmmanuel Vadot interrupt-parent = <&intc>; 130c9ccf3a3SEmmanuel Vadot tx-fifo-depth = <0x40>; 131c9ccf3a3SEmmanuel Vadot rx-fifo-depth = <0x40>; 132c9ccf3a3SEmmanuel Vadot }; 133c9ccf3a3SEmmanuel Vadot 134c9ccf3a3SEmmanuel Vadot - | 135c9ccf3a3SEmmanuel Vadot can@40000000 { 136c9ccf3a3SEmmanuel Vadot compatible = "xlnx,axi-can-1.00.a"; 137c9ccf3a3SEmmanuel Vadot reg = <0x40000000 0x10000>; 138c9ccf3a3SEmmanuel Vadot clocks = <&clkc 0>, <&clkc 1>; 139c9ccf3a3SEmmanuel Vadot clock-names = "can_clk", "s_axi_aclk"; 140c9ccf3a3SEmmanuel Vadot interrupt-parent = <&intc>; 141c9ccf3a3SEmmanuel Vadot interrupts = <GIC_SPI 59 IRQ_TYPE_EDGE_RISING>; 142c9ccf3a3SEmmanuel Vadot tx-fifo-depth = <0x40>; 143c9ccf3a3SEmmanuel Vadot rx-fifo-depth = <0x40>; 14401950c46SEmmanuel Vadot xlnx,has-ecc; 145c9ccf3a3SEmmanuel Vadot }; 146c9ccf3a3SEmmanuel Vadot 147c9ccf3a3SEmmanuel Vadot - | 148c9ccf3a3SEmmanuel Vadot can@40000000 { 149c9ccf3a3SEmmanuel Vadot compatible = "xlnx,canfd-1.0"; 150c9ccf3a3SEmmanuel Vadot reg = <0x40000000 0x2000>; 151c9ccf3a3SEmmanuel Vadot clocks = <&clkc 0>, <&clkc 1>; 152c9ccf3a3SEmmanuel Vadot clock-names = "can_clk", "s_axi_aclk"; 153c9ccf3a3SEmmanuel Vadot interrupt-parent = <&intc>; 154c9ccf3a3SEmmanuel Vadot interrupts = <GIC_SPI 59 IRQ_TYPE_EDGE_RISING>; 155c9ccf3a3SEmmanuel Vadot tx-mailbox-count = <0x20>; 156c9ccf3a3SEmmanuel Vadot rx-fifo-depth = <0x20>; 157c9ccf3a3SEmmanuel Vadot }; 158c9ccf3a3SEmmanuel Vadot 159c9ccf3a3SEmmanuel Vadot - | 160c9ccf3a3SEmmanuel Vadot can@ff060000 { 161c9ccf3a3SEmmanuel Vadot compatible = "xlnx,canfd-2.0"; 162c9ccf3a3SEmmanuel Vadot reg = <0xff060000 0x6000>; 163c9ccf3a3SEmmanuel Vadot clocks = <&clkc 0>, <&clkc 1>; 164c9ccf3a3SEmmanuel Vadot clock-names = "can_clk", "s_axi_aclk"; 165c9ccf3a3SEmmanuel Vadot interrupt-parent = <&intc>; 166c9ccf3a3SEmmanuel Vadot interrupts = <GIC_SPI 59 IRQ_TYPE_EDGE_RISING>; 167c9ccf3a3SEmmanuel Vadot tx-mailbox-count = <0x20>; 168c9ccf3a3SEmmanuel Vadot rx-fifo-depth = <0x40>; 169c9ccf3a3SEmmanuel Vadot }; 170