Loading Documentation/devicetree/bindings/net/can/xilinx_can.txt 0 → 100644 +44 −0 Original line number Diff line number Diff line Xilinx Axi CAN/Zynq CANPS controller Device Tree Bindings --------------------------------------------------------- Required properties: - compatible : Should be "xlnx,zynq-can-1.0" for Zynq CAN controllers and "xlnx,axi-can-1.00.a" for Axi CAN controllers. - reg : Physical base address and size of the Axi CAN/Zynq CANPS registers map. - interrupts : Property with a value describing the interrupt number. - interrupt-parent : Must be core interrupt controller - clock-names : List of input clock names - "can_clk", "pclk" (For CANPS), "can_clk" , "s_axi_aclk"(For AXI CAN) (See clock bindings for details). - clocks : Clock phandles (see clock bindings for details). - tx-fifo-depth : Can Tx fifo depth. - rx-fifo-depth : Can Rx fifo depth. 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>; }; drivers/net/can/Kconfig +8 −0 Original line number Diff line number Diff line Loading @@ -129,6 +129,14 @@ config CAN_RCAR To compile this driver as a module, choose M here: the module will be called rcar_can. config CAN_XILINXCAN tristate "Xilinx CAN" depends on ARCH_ZYNQ || MICROBLAZE || COMPILE_TEST depends on COMMON_CLK && HAS_IOMEM ---help--- Xilinx CAN driver. This driver supports both soft AXI CAN IP and Zynq CANPS IP. source "drivers/net/can/mscan/Kconfig" source "drivers/net/can/sja1000/Kconfig" Loading drivers/net/can/Makefile +1 −0 Original line number Diff line number Diff line Loading @@ -26,5 +26,6 @@ obj-$(CONFIG_CAN_FLEXCAN) += flexcan.o obj-$(CONFIG_PCH_CAN) += pch_can.o obj-$(CONFIG_CAN_GRCAN) += grcan.o obj-$(CONFIG_CAN_RCAR) += rcar_can.o obj-$(CONFIG_CAN_XILINXCAN) += xilinx_can.o ccflags-$(CONFIG_CAN_DEBUG_DEVICES) := -DDEBUG Loading
Documentation/devicetree/bindings/net/can/xilinx_can.txt 0 → 100644 +44 −0 Original line number Diff line number Diff line Xilinx Axi CAN/Zynq CANPS controller Device Tree Bindings --------------------------------------------------------- Required properties: - compatible : Should be "xlnx,zynq-can-1.0" for Zynq CAN controllers and "xlnx,axi-can-1.00.a" for Axi CAN controllers. - reg : Physical base address and size of the Axi CAN/Zynq CANPS registers map. - interrupts : Property with a value describing the interrupt number. - interrupt-parent : Must be core interrupt controller - clock-names : List of input clock names - "can_clk", "pclk" (For CANPS), "can_clk" , "s_axi_aclk"(For AXI CAN) (See clock bindings for details). - clocks : Clock phandles (see clock bindings for details). - tx-fifo-depth : Can Tx fifo depth. - rx-fifo-depth : Can Rx fifo depth. 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>; };
drivers/net/can/Kconfig +8 −0 Original line number Diff line number Diff line Loading @@ -129,6 +129,14 @@ config CAN_RCAR To compile this driver as a module, choose M here: the module will be called rcar_can. config CAN_XILINXCAN tristate "Xilinx CAN" depends on ARCH_ZYNQ || MICROBLAZE || COMPILE_TEST depends on COMMON_CLK && HAS_IOMEM ---help--- Xilinx CAN driver. This driver supports both soft AXI CAN IP and Zynq CANPS IP. source "drivers/net/can/mscan/Kconfig" source "drivers/net/can/sja1000/Kconfig" Loading
drivers/net/can/Makefile +1 −0 Original line number Diff line number Diff line Loading @@ -26,5 +26,6 @@ obj-$(CONFIG_CAN_FLEXCAN) += flexcan.o obj-$(CONFIG_PCH_CAN) += pch_can.o obj-$(CONFIG_CAN_GRCAN) += grcan.o obj-$(CONFIG_CAN_RCAR) += rcar_can.o obj-$(CONFIG_CAN_XILINXCAN) += xilinx_can.o ccflags-$(CONFIG_CAN_DEBUG_DEVICES) := -DDEBUG