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