Kernel-4.18.0-80.el8_c_can

Bosch C_CAN/D_CAN controller Device Tree Bindings

Required properties:

  • compatible : Should be “bosch,c_can” for C_CAN controllers and
            "bosch,d_can" for D_CAN controllers.
            Can be "ti,dra7-d_can", "ti,am3352-d_can" or
            "ti,am4372-d_can".
    
  • reg : physical base address and size of the C_CAN/D_CAN
            registers map
    
  • interrupts : property with a value describing the interrupt
            number
    

The following are mandatory properties for DRA7x, AM33xx and AM43xx SoCs only:

  • ti,hwmods : Must be “d_can“ or “c_can“, n being the
            instance number
    

The following are mandatory properties for Keystone 2 66AK2G SoCs only:

  • power-domains : Should contain a phandle to a PM domain provider node
            and an args specifier containing the DCAN device id
            value. This property is as per the binding,
            Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt
    
  • clocks : CAN functional clock phandle. This property is as per the
            binding,
            Documentation/devicetree/bindings/clock/ti,sci-clk.txt
    

Optional properties:

  • syscon-raminit : Handle to system control region that contains the
            RAMINIT register, register offset to the RAMINIT
            register and the CAN instance number (0 offset).
    

Note: “ti,hwmods” field is used to fetch the base address and irq
resources from TI, omap hwmod data base during device registration.
Future plan is to migrate hwmod data base contents into device tree
blob so that, all the required data will be used from device tree dts
file.

Example:

Step1: SoC common .dtsi file

dcan1: d_can@481d0000 {
    compatible = "bosch,d_can";
    reg = <0x481d0000 0x2000>;
    interrupts = <55>;
    interrupt-parent = <&intc>;
    status = "disabled";
};

(or)

dcan1: d_can@481d0000 {
    compatible = "bosch,d_can";
    ti,hwmods = "d_can1";
    reg = <0x481d0000 0x2000>;
    interrupts = <55>;
    interrupt-parent = <&intc>;
    status = "disabled";
};

Step 2: board specific .dts file

&dcan1 {
    status = "okay";
};