xref: /freebsd/sys/contrib/device-tree/Bindings/net/can/c_can.txt (revision 7ef62cebc2f965b0f640263e179276928885e33d)
1Bosch C_CAN/D_CAN controller Device Tree Bindings
2-------------------------------------------------
3
4Required properties:
5- compatible		: Should be "bosch,c_can" for C_CAN controllers and
6			  "bosch,d_can" for D_CAN controllers.
7			  Can be "ti,dra7-d_can", "ti,am3352-d_can" or
8			  "ti,am4372-d_can".
9- reg			: physical base address and size of the C_CAN/D_CAN
10			  registers map
11- interrupts		: property with a value describing the interrupt
12			  number
13
14The following are mandatory properties for DRA7x, AM33xx and AM43xx SoCs only:
15- ti,hwmods		: Must be "d_can<n>" or "c_can<n>", n being the
16			  instance number
17
18The following are mandatory properties for Keystone 2 66AK2G SoCs only:
19- power-domains		: Should contain a phandle to a PM domain provider node
20			  and an args specifier containing the DCAN device id
21			  value. This property is as per the binding,
22			  Documentation/devicetree/bindings/soc/ti/sci-pm-domain.yaml
23- clocks		: CAN functional clock phandle. This property is as per the
24			  binding,
25			  Documentation/devicetree/bindings/clock/ti,sci-clk.yaml
26
27Optional properties:
28- syscon-raminit	: Handle to system control region that contains the
29			  RAMINIT register, register offset to the RAMINIT
30			  register and the CAN instance number (0 offset).
31
32Note: "ti,hwmods" field is used to fetch the base address and irq
33resources from TI, omap hwmod data base during device registration.
34Future plan is to migrate hwmod data base contents into device tree
35blob so that, all the required data will be used from device tree dts
36file.
37
38Example:
39
40Step1: SoC common .dtsi file
41
42	dcan1: d_can@481d0000 {
43		compatible = "bosch,d_can";
44		reg = <0x481d0000 0x2000>;
45		interrupts = <55>;
46		interrupt-parent = <&intc>;
47		status = "disabled";
48	};
49
50(or)
51
52	dcan1: d_can@481d0000 {
53		compatible = "bosch,d_can";
54		ti,hwmods = "d_can1";
55		reg = <0x481d0000 0x2000>;
56		interrupts = <55>;
57		interrupt-parent = <&intc>;
58		status = "disabled";
59	};
60
61Step 2: board specific .dts file
62
63	&dcan1 {
64		status = "okay";
65	};
66