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>; }; ```