1824674b5SBenjamin Gaignard# SPDX-License-Identifier: GPL-2.0 2824674b5SBenjamin Gaignard%YAML 1.2 3824674b5SBenjamin Gaignard--- 4824674b5SBenjamin Gaignard$id: http://devicetree.org/schemas/net/can/bosch,m_can.yaml# 5824674b5SBenjamin Gaignard$schema: http://devicetree.org/meta-schemas/core.yaml# 6824674b5SBenjamin Gaignard 7824674b5SBenjamin Gaignardtitle: Bosch MCAN controller Bindings 8824674b5SBenjamin Gaignard 9824674b5SBenjamin Gaignarddescription: Bosch MCAN controller for CAN bus 10824674b5SBenjamin Gaignard 11824674b5SBenjamin Gaignardmaintainers: 12824674b5SBenjamin Gaignard - Sriram Dash <sriram.dash@samsung.com> 13824674b5SBenjamin Gaignard 14824674b5SBenjamin Gaignardproperties: 15824674b5SBenjamin Gaignard compatible: 16824674b5SBenjamin Gaignard const: bosch,m_can 17824674b5SBenjamin Gaignard 18824674b5SBenjamin Gaignard reg: 19824674b5SBenjamin Gaignard items: 20824674b5SBenjamin Gaignard - description: M_CAN registers map 21824674b5SBenjamin Gaignard - description: message RAM 22824674b5SBenjamin Gaignard 23824674b5SBenjamin Gaignard reg-names: 24824674b5SBenjamin Gaignard items: 25824674b5SBenjamin Gaignard - const: m_can 26824674b5SBenjamin Gaignard - const: message_ram 27824674b5SBenjamin Gaignard 28824674b5SBenjamin Gaignard interrupts: 29824674b5SBenjamin Gaignard items: 30824674b5SBenjamin Gaignard - description: interrupt line0 31824674b5SBenjamin Gaignard - description: interrupt line1 32824674b5SBenjamin Gaignard minItems: 1 33824674b5SBenjamin Gaignard 34824674b5SBenjamin Gaignard interrupt-names: 35824674b5SBenjamin Gaignard items: 36824674b5SBenjamin Gaignard - const: int0 37824674b5SBenjamin Gaignard - const: int1 38824674b5SBenjamin Gaignard minItems: 1 39824674b5SBenjamin Gaignard 40824674b5SBenjamin Gaignard clocks: 41824674b5SBenjamin Gaignard items: 42824674b5SBenjamin Gaignard - description: peripheral clock 43824674b5SBenjamin Gaignard - description: bus clock 44824674b5SBenjamin Gaignard 45824674b5SBenjamin Gaignard clock-names: 46824674b5SBenjamin Gaignard items: 47824674b5SBenjamin Gaignard - const: hclk 48824674b5SBenjamin Gaignard - const: cclk 49824674b5SBenjamin Gaignard 50824674b5SBenjamin Gaignard bosch,mram-cfg: 51824674b5SBenjamin Gaignard description: | 52824674b5SBenjamin Gaignard Message RAM configuration data. 53824674b5SBenjamin Gaignard Multiple M_CAN instances can share the same Message RAM 54824674b5SBenjamin Gaignard and each element(e.g Rx FIFO or Tx Buffer and etc) number 55824674b5SBenjamin Gaignard in Message RAM is also configurable, so this property is 56824674b5SBenjamin Gaignard telling driver how the shared or private Message RAM are 57824674b5SBenjamin Gaignard used by this M_CAN controller. 58824674b5SBenjamin Gaignard 59824674b5SBenjamin Gaignard The format should be as follows: 60824674b5SBenjamin Gaignard <offset sidf_elems xidf_elems rxf0_elems rxf1_elems rxb_elems txe_elems txb_elems> 61824674b5SBenjamin Gaignard The 'offset' is an address offset of the Message RAM where 62824674b5SBenjamin Gaignard the following elements start from. This is usually set to 63824674b5SBenjamin Gaignard 0x0 if you're using a private Message RAM. The remain cells 64824674b5SBenjamin Gaignard are used to specify how many elements are used for each FIFO/Buffer. 65824674b5SBenjamin Gaignard 66824674b5SBenjamin Gaignard M_CAN includes the following elements according to user manual: 67824674b5SBenjamin Gaignard 11-bit Filter 0-128 elements / 0-128 words 68824674b5SBenjamin Gaignard 29-bit Filter 0-64 elements / 0-128 words 69824674b5SBenjamin Gaignard Rx FIFO 0 0-64 elements / 0-1152 words 70824674b5SBenjamin Gaignard Rx FIFO 1 0-64 elements / 0-1152 words 71824674b5SBenjamin Gaignard Rx Buffers 0-64 elements / 0-1152 words 72824674b5SBenjamin Gaignard Tx Event FIFO 0-32 elements / 0-64 words 73824674b5SBenjamin Gaignard Tx Buffers 0-32 elements / 0-576 words 74824674b5SBenjamin Gaignard 75824674b5SBenjamin Gaignard Please refer to 2.4.1 Message RAM Configuration in Bosch 76824674b5SBenjamin Gaignard M_CAN user manual for details. 773d21a460SRob Herring $ref: /schemas/types.yaml#/definitions/int32-array 78824674b5SBenjamin Gaignard items: 793d21a460SRob Herring items: 803d21a460SRob Herring - description: The 'offset' is an address offset of the Message RAM where 813d21a460SRob Herring the following elements start from. This is usually set to 0x0 if 823d21a460SRob Herring you're using a private Message RAM. 83824674b5SBenjamin Gaignard default: 0 84824674b5SBenjamin Gaignard - description: 11-bit Filter 0-128 elements / 0-128 words 85824674b5SBenjamin Gaignard minimum: 0 86824674b5SBenjamin Gaignard maximum: 128 87824674b5SBenjamin Gaignard - description: 29-bit Filter 0-64 elements / 0-128 words 88824674b5SBenjamin Gaignard minimum: 0 89824674b5SBenjamin Gaignard maximum: 64 90824674b5SBenjamin Gaignard - description: Rx FIFO 0 0-64 elements / 0-1152 words 91824674b5SBenjamin Gaignard minimum: 0 92824674b5SBenjamin Gaignard maximum: 64 93824674b5SBenjamin Gaignard - description: Rx FIFO 1 0-64 elements / 0-1152 words 94824674b5SBenjamin Gaignard minimum: 0 95824674b5SBenjamin Gaignard maximum: 64 96824674b5SBenjamin Gaignard - description: Rx Buffers 0-64 elements / 0-1152 words 97824674b5SBenjamin Gaignard minimum: 0 98824674b5SBenjamin Gaignard maximum: 64 99824674b5SBenjamin Gaignard - description: Tx Event FIFO 0-32 elements / 0-64 words 100824674b5SBenjamin Gaignard minimum: 0 101824674b5SBenjamin Gaignard maximum: 32 102824674b5SBenjamin Gaignard - description: Tx Buffers 0-32 elements / 0-576 words 103824674b5SBenjamin Gaignard minimum: 0 104824674b5SBenjamin Gaignard maximum: 32 105824674b5SBenjamin Gaignard maxItems: 1 106824674b5SBenjamin Gaignard 107*d85165b2SAswath Govindraju power-domains: 108*d85165b2SAswath Govindraju description: 109*d85165b2SAswath Govindraju Power domain provider node and an args specifier containing 110*d85165b2SAswath Govindraju the can device id value. 111*d85165b2SAswath Govindraju maxItems: 1 112*d85165b2SAswath Govindraju 113824674b5SBenjamin Gaignard can-transceiver: 114824674b5SBenjamin Gaignard $ref: can-transceiver.yaml# 115824674b5SBenjamin Gaignard 1169c0e7ccdSFaiz Abbas phys: 1179c0e7ccdSFaiz Abbas maxItems: 1 1189c0e7ccdSFaiz Abbas 119824674b5SBenjamin Gaignardrequired: 120824674b5SBenjamin Gaignard - compatible 121824674b5SBenjamin Gaignard - reg 122824674b5SBenjamin Gaignard - reg-names 123824674b5SBenjamin Gaignard - interrupts 124824674b5SBenjamin Gaignard - interrupt-names 125824674b5SBenjamin Gaignard - clocks 126824674b5SBenjamin Gaignard - clock-names 127824674b5SBenjamin Gaignard - bosch,mram-cfg 128824674b5SBenjamin Gaignard 129824674b5SBenjamin GaignardadditionalProperties: false 130824674b5SBenjamin Gaignard 131824674b5SBenjamin Gaignardexamples: 132824674b5SBenjamin Gaignard - | 133824674b5SBenjamin Gaignard #include <dt-bindings/clock/imx6sx-clock.h> 134824674b5SBenjamin Gaignard can@20e8000 { 135824674b5SBenjamin Gaignard compatible = "bosch,m_can"; 136824674b5SBenjamin Gaignard reg = <0x020e8000 0x4000>, <0x02298000 0x4000>; 137824674b5SBenjamin Gaignard reg-names = "m_can", "message_ram"; 138824674b5SBenjamin Gaignard interrupts = <0 114 0x04>, <0 114 0x04>; 139824674b5SBenjamin Gaignard interrupt-names = "int0", "int1"; 140824674b5SBenjamin Gaignard clocks = <&clks IMX6SX_CLK_CANFD>, 141824674b5SBenjamin Gaignard <&clks IMX6SX_CLK_CANFD>; 142824674b5SBenjamin Gaignard clock-names = "hclk", "cclk"; 143824674b5SBenjamin Gaignard bosch,mram-cfg = <0x0 0 0 32 0 0 0 1>; 144824674b5SBenjamin Gaignard 145824674b5SBenjamin Gaignard can-transceiver { 146824674b5SBenjamin Gaignard max-bitrate = <5000000>; 147824674b5SBenjamin Gaignard }; 148824674b5SBenjamin Gaignard }; 149824674b5SBenjamin Gaignard 150824674b5SBenjamin Gaignard... 151