~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/net/can/bosch,m_can.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 # SPDX-License-Identifier: GPL-2.0
  2 %YAML 1.2
  3 ---
  4 $id: http://devicetree.org/schemas/net/can/bosch,m_can.yaml#
  5 $schema: http://devicetree.org/meta-schemas/core.yaml#
  6 
  7 title: Bosch MCAN controller
  8 
  9 description: Bosch MCAN controller for CAN bus
 10 
 11 maintainers:
 12   - Chandrasekar Ramakrishnan <rcsekar@samsung.com>
 13 
 14 allOf:
 15   - $ref: can-controller.yaml#
 16 
 17 properties:
 18   compatible:
 19     const: bosch,m_can
 20 
 21   reg:
 22     items:
 23       - description: M_CAN registers map
 24       - description: message RAM
 25 
 26   reg-names:
 27     items:
 28       - const: m_can
 29       - const: message_ram
 30 
 31   interrupts:
 32     items:
 33       - description: interrupt line0
 34       - description: interrupt line1
 35     minItems: 1
 36 
 37   interrupt-names:
 38     items:
 39       - const: int0
 40       - const: int1
 41     minItems: 1
 42 
 43   clocks:
 44     items:
 45       - description: peripheral clock
 46       - description: bus clock
 47 
 48   clock-names:
 49     items:
 50       - const: hclk
 51       - const: cclk
 52 
 53   bosch,mram-cfg:
 54     description: |
 55       Message RAM configuration data.
 56       Multiple M_CAN instances can share the same Message RAM
 57       and each element(e.g Rx FIFO or Tx Buffer and etc) number
 58       in Message RAM is also configurable, so this property is
 59       telling driver how the shared or private Message RAM are
 60       used by this M_CAN controller.
 61 
 62       The format should be as follows:
 63       <offset sidf_elems xidf_elems rxf0_elems rxf1_elems rxb_elems txe_elems txb_elems>
 64       The 'offset' is an address offset of the Message RAM where
 65       the following elements start from. This is usually set to
 66       0x0 if you're using a private Message RAM. The remain cells
 67       are used to specify how many elements are used for each FIFO/Buffer.
 68 
 69       M_CAN includes the following elements according to user manual:
 70       11-bit Filter     0-128 elements / 0-128 words
 71       29-bit Filter     0-64 elements / 0-128 words
 72       Rx FIFO 0         0-64 elements / 0-1152 words
 73       Rx FIFO 1         0-64 elements / 0-1152 words
 74       Rx Buffers        0-64 elements / 0-1152 words
 75       Tx Event FIFO     0-32 elements / 0-64 words
 76       Tx Buffers        0-32 elements / 0-576 words
 77 
 78       Please refer to 2.4.1 Message RAM Configuration in Bosch
 79       M_CAN user manual for details.
 80     $ref: /schemas/types.yaml#/definitions/int32-array
 81     items:
 82       - description: The 'offset' is an address offset of the Message RAM where
 83           the following elements start from. This is usually set to 0x0 if
 84           you're using a private Message RAM.
 85         default: 0
 86       - description: 11-bit Filter 0-128 elements / 0-128 words
 87         minimum: 0
 88         maximum: 128
 89       - description: 29-bit Filter 0-64 elements / 0-128 words
 90         minimum: 0
 91         maximum: 64
 92       - description: Rx FIFO 0 0-64 elements / 0-1152 words
 93         minimum: 0
 94         maximum: 64
 95       - description: Rx FIFO 1 0-64 elements / 0-1152 words
 96         minimum: 0
 97         maximum: 64
 98       - description: Rx Buffers 0-64 elements / 0-1152 words
 99         minimum: 0
100         maximum: 64
101       - description: Tx Event FIFO 0-32 elements / 0-64 words
102         minimum: 0
103         maximum: 32
104       - description: Tx Buffers 0-32 elements / 0-576 words
105         minimum: 0
106         maximum: 32
107     minItems: 1
108 
109   power-domains:
110     description:
111       Power domain provider node and an args specifier containing
112       the can device id value.
113     maxItems: 1
114 
115   can-transceiver:
116     $ref: can-transceiver.yaml#
117 
118   phys:
119     maxItems: 1
120 
121   access-controllers:
122     minItems: 1
123     maxItems: 2
124 
125 required:
126   - compatible
127   - reg
128   - reg-names
129   - clocks
130   - clock-names
131   - bosch,mram-cfg
132 
133 unevaluatedProperties: false
134 
135 examples:
136   - |
137     // Example with interrupts
138     #include <dt-bindings/clock/imx6sx-clock.h>
139     can@20e8000 {
140       compatible = "bosch,m_can";
141       reg = <0x020e8000 0x4000>, <0x02298000 0x4000>;
142       reg-names = "m_can", "message_ram";
143       interrupts = <0 114 0x04>, <0 114 0x04>;
144       interrupt-names = "int0", "int1";
145       clocks = <&clks IMX6SX_CLK_CANFD>,
146                <&clks IMX6SX_CLK_CANFD>;
147       clock-names = "hclk", "cclk";
148       bosch,mram-cfg = <0x0 0 0 32 0 0 0 1>;
149 
150       can-transceiver {
151         max-bitrate = <5000000>;
152       };
153     };
154 
155   - |
156     // Example with timer polling
157     #include <dt-bindings/clock/imx6sx-clock.h>
158     can@20e8000 {
159       compatible = "bosch,m_can";
160       reg = <0x020e8000 0x4000>, <0x02298000 0x4000>;
161       reg-names = "m_can", "message_ram";
162       clocks = <&clks IMX6SX_CLK_CANFD>,
163                <&clks IMX6SX_CLK_CANFD>;
164       clock-names = "hclk", "cclk";
165       bosch,mram-cfg = <0x0 0 0 32 0 0 0 1>;
166 
167       can-transceiver {
168         max-bitrate = <5000000>;
169       };
170     };
171 
172 ...

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php