| Xilinx Axi CAN/Zynq CANPS controller Device Tree Bindings |
| --------------------------------------------------------- |
| |
| Required properties: |
| - compatible : Should be: |
| - "xlnx,zynq-can-1.0" for Zynq CAN controllers |
| - "xlnx,axi-can-1.00.a" for Axi CAN controllers |
| - "xlnx,canfd-1.0" for CAN FD controllers |
| - reg : Physical base address and size of the controller |
| registers map. |
| - interrupts : Property with a value describing the interrupt |
| number. |
| - clock-names : List of input clock names |
| - "can_clk", "pclk" (For CANPS), |
| - "can_clk", "s_axi_aclk" (For AXI CAN and CAN FD). |
| (See clock bindings for details). |
| - clocks : Clock phandles (see clock bindings for details). |
| - tx-fifo-depth : Can Tx fifo depth (Zynq, Axi CAN). |
| - rx-fifo-depth : Can Rx fifo depth (Zynq, Axi CAN, CAN FD in |
| sequential Rx mode). |
| - tx-mailbox-count : Can Tx mailbox buffer count (CAN FD). |
| - rx-mailbox-count : Can Rx mailbox buffer count (CAN FD in mailbox Rx |
| mode). |
| |
| |
| Example: |
| |
| For Zynq CANPS Dts file: |
| zynq_can_0: can@e0008000 { |
| compatible = "xlnx,zynq-can-1.0"; |
| clocks = <&clkc 19>, <&clkc 36>; |
| clock-names = "can_clk", "pclk"; |
| reg = <0xe0008000 0x1000>; |
| interrupts = <0 28 4>; |
| interrupt-parent = <&intc>; |
| tx-fifo-depth = <0x40>; |
| rx-fifo-depth = <0x40>; |
| }; |
| For Axi CAN Dts file: |
| axi_can_0: axi-can@40000000 { |
| compatible = "xlnx,axi-can-1.00.a"; |
| clocks = <&clkc 0>, <&clkc 1>; |
| clock-names = "can_clk","s_axi_aclk" ; |
| reg = <0x40000000 0x10000>; |
| interrupt-parent = <&intc>; |
| interrupts = <0 59 1>; |
| tx-fifo-depth = <0x40>; |
| rx-fifo-depth = <0x40>; |
| }; |
| For CAN FD Dts file: |
| canfd_0: canfd@40000000 { |
| compatible = "xlnx,canfd-1.0"; |
| clocks = <&clkc 0>, <&clkc 1>; |
| clock-names = "can_clk", "s_axi_aclk"; |
| reg = <0x40000000 0x2000>; |
| interrupt-parent = <&intc>; |
| interrupts = <0 59 1>; |
| tx-mailbox-count = <0x20>; |
| rx-fifo-depth = <0x20>; |
| }; |