mcan-linux-driver/README.md

1.2 KiB

Bosch M_CAN (CAN Controller) Device Driver

Files

  • *.c : Driver C-Source Files
  • Kconfig : Config file for menuconfig etc.
  • Makefile : Makefile for Kernel Build

Patch Kernel

  • Apply the specific commits on your kernel source tree
  • Or copy the newest m_can.c to your kernel source tree.

Compile

compile as normal Kernel Driver.

  • Driver can be compiled as an externel module.
  • Driver can be compiled statically into the kernel.
  • selectable with menuconfig

Device Tree

The following code shows a basic device tree for an M_CAN node:

/* M_CAN Device Tree Nodes */
/* Example clocks */
hclk: hclk {
	compatible = "fixed-clock";
	#clock-cells = < 0 >;
	clock-frequency = <50000000>;
};
cclk: cclk {
	compatible = "fixed-clock";
	#clock-cells = < 0 >;
	clock-frequency = <40000000>;
};

/* M_CAN device */
mcan0: can@0xff240000 {
	compatible = "bosch,m_can";
	reg = <0xff240000 0x200>,<0xff260000 0x4000>;
	reg-names = "m_can", "message_ram";
	interrupt-parent = <&intc>;
	interrupts = <0x0 40 0x4>;
	interrupt-names = "int0";
	clocks = <&hclk>, <&cclk>;
	clock-names = "hclk", "cclk";
	bosch,mram-cfg = <0x0 128 64 64 32 64 32 32>;
};