Bosch MCAN controller Device Tree Bindings 
 | 
------------------------------------------------- 
 | 
  
 | 
Required properties: 
 | 
- compatible        : Should be "bosch,m_can" for M_CAN controllers 
 | 
- reg            : physical base address and size of the M_CAN 
 | 
              registers map and Message RAM 
 | 
- reg-names        : Should be "m_can" and "message_ram" 
 | 
- interrupts        : Should be the interrupt number of M_CAN interrupt 
 | 
              line 0 and line 1, could be same if sharing 
 | 
              the same interrupt. 
 | 
- interrupt-names    : Should contain "int0" and "int1" 
 | 
- clocks        : Clocks used by controller, should be host clock 
 | 
              and CAN clock. 
 | 
- clock-names        : Should contain "hclk" and "cclk" 
 | 
- pinctrl-<n>        : Pinctrl states as described in bindings/pinctrl/pinctrl-bindings.txt 
 | 
- pinctrl-names     : Names corresponding to the numbered pinctrl states 
 | 
- bosch,mram-cfg    : Message RAM configuration data. 
 | 
              Multiple M_CAN instances can share the same Message 
 | 
              RAM and each element(e.g Rx FIFO or Tx Buffer and etc) 
 | 
              number in Message RAM is also configurable, 
 | 
              so this property is telling driver how the shared or 
 | 
              private Message RAM are used by this M_CAN controller. 
 | 
  
 | 
              The format should be as follows: 
 | 
              <offset sidf_elems xidf_elems rxf0_elems rxf1_elems 
 | 
               rxb_elems txe_elems txb_elems> 
 | 
              The 'offset' is an address offset of the Message RAM 
 | 
              where the following elements start from. This is 
 | 
              usually set to 0x0 if you're using a private Message 
 | 
              RAM. The remain cells are used to specify how many 
 | 
              elements are used for each FIFO/Buffer. 
 | 
  
 | 
              M_CAN includes the following elements according to user manual: 
 | 
              11-bit Filter    0-128 elements / 0-128 words 
 | 
              29-bit Filter    0-64 elements / 0-128 words 
 | 
              Rx FIFO 0    0-64 elements / 0-1152 words 
 | 
              Rx FIFO 1    0-64 elements / 0-1152 words 
 | 
              Rx Buffers    0-64 elements / 0-1152 words 
 | 
              Tx Event FIFO    0-32 elements / 0-64 words 
 | 
              Tx Buffers    0-32 elements / 0-576 words 
 | 
  
 | 
              Please refer to 2.4.1 Message RAM Configuration in 
 | 
              Bosch M_CAN user manual for details. 
 | 
  
 | 
Optional Subnode: 
 | 
- can-transceiver    : Can-transceiver subnode describing maximum speed 
 | 
              that can be used for CAN/CAN-FD modes. See 
 | 
              Documentation/devicetree/bindings/net/can/can-transceiver.txt 
 | 
              for details. 
 | 
Example: 
 | 
SoC dtsi: 
 | 
m_can1: can@20e8000 { 
 | 
    compatible = "bosch,m_can"; 
 | 
    reg = <0x020e8000 0x4000>, <0x02298000 0x4000>; 
 | 
    reg-names = "m_can", "message_ram"; 
 | 
    interrupts = <0 114 0x04>, 
 | 
             <0 114 0x04>; 
 | 
    interrupt-names = "int0", "int1"; 
 | 
    clocks = <&clks IMX6SX_CLK_CANFD>, 
 | 
         <&clks IMX6SX_CLK_CANFD>; 
 | 
    clock-names = "hclk", "cclk"; 
 | 
    bosch,mram-cfg = <0x0 0 0 32 0 0 0 1>; 
 | 
}; 
 | 
  
 | 
Board dts: 
 | 
&m_can1 { 
 | 
    pinctrl-names = "default"; 
 | 
    pinctrl-0 = <&pinctrl_m_can1>; 
 | 
    status = "enabled"; 
 | 
  
 | 
    can-transceiver { 
 | 
        max-bitrate = <5000000>; 
 | 
    }; 
 | 
}; 
 |