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 maxItems: 2 34824674b5SBenjamin Gaignard 35824674b5SBenjamin Gaignard interrupt-names: 36824674b5SBenjamin Gaignard items: 37824674b5SBenjamin Gaignard - const: int0 38824674b5SBenjamin Gaignard - const: int1 39824674b5SBenjamin Gaignard minItems: 1 40824674b5SBenjamin Gaignard maxItems: 2 41824674b5SBenjamin Gaignard 42824674b5SBenjamin Gaignard clocks: 43824674b5SBenjamin Gaignard items: 44824674b5SBenjamin Gaignard - description: peripheral clock 45824674b5SBenjamin Gaignard - description: bus clock 46824674b5SBenjamin Gaignard 47824674b5SBenjamin Gaignard clock-names: 48824674b5SBenjamin Gaignard items: 49824674b5SBenjamin Gaignard - const: hclk 50824674b5SBenjamin Gaignard - const: cclk 51824674b5SBenjamin Gaignard 52824674b5SBenjamin Gaignard bosch,mram-cfg: 53824674b5SBenjamin Gaignard description: | 54824674b5SBenjamin Gaignard Message RAM configuration data. 55824674b5SBenjamin Gaignard Multiple M_CAN instances can share the same Message RAM 56824674b5SBenjamin Gaignard and each element(e.g Rx FIFO or Tx Buffer and etc) number 57824674b5SBenjamin Gaignard in Message RAM is also configurable, so this property is 58824674b5SBenjamin Gaignard telling driver how the shared or private Message RAM are 59824674b5SBenjamin Gaignard used by this M_CAN controller. 60824674b5SBenjamin Gaignard 61824674b5SBenjamin Gaignard The format should be as follows: 62824674b5SBenjamin Gaignard <offset sidf_elems xidf_elems rxf0_elems rxf1_elems rxb_elems txe_elems txb_elems> 63824674b5SBenjamin Gaignard The 'offset' is an address offset of the Message RAM where 64824674b5SBenjamin Gaignard the following elements start from. This is usually set to 65824674b5SBenjamin Gaignard 0x0 if you're using a private Message RAM. The remain cells 66824674b5SBenjamin Gaignard are used to specify how many elements are used for each FIFO/Buffer. 67824674b5SBenjamin Gaignard 68824674b5SBenjamin Gaignard M_CAN includes the following elements according to user manual: 69824674b5SBenjamin Gaignard 11-bit Filter 0-128 elements / 0-128 words 70824674b5SBenjamin Gaignard 29-bit Filter 0-64 elements / 0-128 words 71824674b5SBenjamin Gaignard Rx FIFO 0 0-64 elements / 0-1152 words 72824674b5SBenjamin Gaignard Rx FIFO 1 0-64 elements / 0-1152 words 73824674b5SBenjamin Gaignard Rx Buffers 0-64 elements / 0-1152 words 74824674b5SBenjamin Gaignard Tx Event FIFO 0-32 elements / 0-64 words 75824674b5SBenjamin Gaignard Tx Buffers 0-32 elements / 0-576 words 76824674b5SBenjamin Gaignard 77824674b5SBenjamin Gaignard Please refer to 2.4.1 Message RAM Configuration in Bosch 78824674b5SBenjamin Gaignard M_CAN user manual for details. 79824674b5SBenjamin Gaignard allOf: 80824674b5SBenjamin Gaignard - $ref: /schemas/types.yaml#/definitions/int32-array 81824674b5SBenjamin Gaignard - items: 82824674b5SBenjamin Gaignard items: 83824674b5SBenjamin Gaignard - description: The 'offset' is an address offset of the Message RAM 84824674b5SBenjamin Gaignard where the following elements start from. This is usually 85824674b5SBenjamin Gaignard set to 0x0 if you're using a private Message RAM. 86824674b5SBenjamin Gaignard default: 0 87824674b5SBenjamin Gaignard - description: 11-bit Filter 0-128 elements / 0-128 words 88824674b5SBenjamin Gaignard minimum: 0 89824674b5SBenjamin Gaignard maximum: 128 90824674b5SBenjamin Gaignard - description: 29-bit Filter 0-64 elements / 0-128 words 91824674b5SBenjamin Gaignard minimum: 0 92824674b5SBenjamin Gaignard maximum: 64 93824674b5SBenjamin Gaignard - description: Rx FIFO 0 0-64 elements / 0-1152 words 94824674b5SBenjamin Gaignard minimum: 0 95824674b5SBenjamin Gaignard maximum: 64 96824674b5SBenjamin Gaignard - description: Rx FIFO 1 0-64 elements / 0-1152 words 97824674b5SBenjamin Gaignard minimum: 0 98824674b5SBenjamin Gaignard maximum: 64 99824674b5SBenjamin Gaignard - description: Rx Buffers 0-64 elements / 0-1152 words 100824674b5SBenjamin Gaignard minimum: 0 101824674b5SBenjamin Gaignard maximum: 64 102824674b5SBenjamin Gaignard - description: Tx Event FIFO 0-32 elements / 0-64 words 103824674b5SBenjamin Gaignard minimum: 0 104824674b5SBenjamin Gaignard maximum: 32 105824674b5SBenjamin Gaignard - description: Tx Buffers 0-32 elements / 0-576 words 106824674b5SBenjamin Gaignard minimum: 0 107824674b5SBenjamin Gaignard maximum: 32 108824674b5SBenjamin Gaignard maxItems: 1 109824674b5SBenjamin Gaignard 110824674b5SBenjamin Gaignard can-transceiver: 111824674b5SBenjamin Gaignard $ref: can-transceiver.yaml# 112824674b5SBenjamin Gaignard 113824674b5SBenjamin Gaignardrequired: 114824674b5SBenjamin Gaignard - compatible 115824674b5SBenjamin Gaignard - reg 116824674b5SBenjamin Gaignard - reg-names 117824674b5SBenjamin Gaignard - interrupts 118824674b5SBenjamin Gaignard - interrupt-names 119824674b5SBenjamin Gaignard - clocks 120824674b5SBenjamin Gaignard - clock-names 121824674b5SBenjamin Gaignard - bosch,mram-cfg 122824674b5SBenjamin Gaignard 123824674b5SBenjamin GaignardadditionalProperties: false 124824674b5SBenjamin Gaignard 125824674b5SBenjamin Gaignardexamples: 126824674b5SBenjamin Gaignard - | 127824674b5SBenjamin Gaignard #include <dt-bindings/clock/imx6sx-clock.h> 128824674b5SBenjamin Gaignard can@20e8000 { 129824674b5SBenjamin Gaignard compatible = "bosch,m_can"; 130824674b5SBenjamin Gaignard reg = <0x020e8000 0x4000>, <0x02298000 0x4000>; 131824674b5SBenjamin Gaignard reg-names = "m_can", "message_ram"; 132824674b5SBenjamin Gaignard interrupts = <0 114 0x04>, <0 114 0x04>; 133824674b5SBenjamin Gaignard interrupt-names = "int0", "int1"; 134824674b5SBenjamin Gaignard clocks = <&clks IMX6SX_CLK_CANFD>, 135824674b5SBenjamin Gaignard <&clks IMX6SX_CLK_CANFD>; 136824674b5SBenjamin Gaignard clock-names = "hclk", "cclk"; 137824674b5SBenjamin Gaignard bosch,mram-cfg = <0x0 0 0 32 0 0 0 1>; 138824674b5SBenjamin Gaignard 139824674b5SBenjamin Gaignard can-transceiver { 140824674b5SBenjamin Gaignard max-bitrate = <5000000>; 141824674b5SBenjamin Gaignard }; 142824674b5SBenjamin Gaignard }; 143824674b5SBenjamin Gaignard 144824674b5SBenjamin Gaignard... 145