forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
150 lines
4.0 KiB
150 lines
4.0 KiB
# SPDX-License-Identifier: GPL-2.0 |
|
%YAML 1.2 |
|
--- |
|
$id: http://devicetree.org/schemas/net/can/bosch,m_can.yaml# |
|
$schema: http://devicetree.org/meta-schemas/core.yaml# |
|
|
|
title: Bosch MCAN controller Bindings |
|
|
|
description: Bosch MCAN controller for CAN bus |
|
|
|
maintainers: |
|
- Sriram Dash <[email protected]> |
|
|
|
properties: |
|
compatible: |
|
const: bosch,m_can |
|
|
|
reg: |
|
items: |
|
- description: M_CAN registers map |
|
- description: message RAM |
|
|
|
reg-names: |
|
items: |
|
- const: m_can |
|
- const: message_ram |
|
|
|
interrupts: |
|
items: |
|
- description: interrupt line0 |
|
- description: interrupt line1 |
|
minItems: 1 |
|
|
|
interrupt-names: |
|
items: |
|
- const: int0 |
|
- const: int1 |
|
minItems: 1 |
|
|
|
clocks: |
|
items: |
|
- description: peripheral clock |
|
- description: bus clock |
|
|
|
clock-names: |
|
items: |
|
- const: hclk |
|
- const: cclk |
|
|
|
bosch,mram-cfg: |
|
description: | |
|
Message RAM configuration data. |
|
Multiple M_CAN instances can share the same Message RAM |
|
and each element(e.g Rx FIFO or Tx Buffer and etc) number |
|
in Message RAM is also configurable, so this property is |
|
telling driver how the shared or private Message RAM are |
|
used by this M_CAN controller. |
|
|
|
The format should be as follows: |
|
<offset sidf_elems xidf_elems rxf0_elems rxf1_elems rxb_elems txe_elems txb_elems> |
|
The 'offset' is an address offset of the Message RAM where |
|
the following elements start from. This is usually set to |
|
0x0 if you're using a private Message RAM. The remain cells |
|
are used to specify how many elements are used for each FIFO/Buffer. |
|
|
|
M_CAN includes the following elements according to user manual: |
|
11-bit Filter 0-128 elements / 0-128 words |
|
29-bit Filter 0-64 elements / 0-128 words |
|
Rx FIFO 0 0-64 elements / 0-1152 words |
|
Rx FIFO 1 0-64 elements / 0-1152 words |
|
Rx Buffers 0-64 elements / 0-1152 words |
|
Tx Event FIFO 0-32 elements / 0-64 words |
|
Tx Buffers 0-32 elements / 0-576 words |
|
|
|
Please refer to 2.4.1 Message RAM Configuration in Bosch |
|
M_CAN user manual for details. |
|
$ref: /schemas/types.yaml#/definitions/int32-array |
|
items: |
|
items: |
|
- description: The 'offset' is an address offset of the Message RAM where |
|
the following elements start from. This is usually set to 0x0 if |
|
you're using a private Message RAM. |
|
default: 0 |
|
- description: 11-bit Filter 0-128 elements / 0-128 words |
|
minimum: 0 |
|
maximum: 128 |
|
- description: 29-bit Filter 0-64 elements / 0-128 words |
|
minimum: 0 |
|
maximum: 64 |
|
- description: Rx FIFO 0 0-64 elements / 0-1152 words |
|
minimum: 0 |
|
maximum: 64 |
|
- description: Rx FIFO 1 0-64 elements / 0-1152 words |
|
minimum: 0 |
|
maximum: 64 |
|
- description: Rx Buffers 0-64 elements / 0-1152 words |
|
minimum: 0 |
|
maximum: 64 |
|
- description: Tx Event FIFO 0-32 elements / 0-64 words |
|
minimum: 0 |
|
maximum: 32 |
|
- description: Tx Buffers 0-32 elements / 0-576 words |
|
minimum: 0 |
|
maximum: 32 |
|
maxItems: 1 |
|
|
|
power-domains: |
|
description: |
|
Power domain provider node and an args specifier containing |
|
the can device id value. |
|
maxItems: 1 |
|
|
|
can-transceiver: |
|
$ref: can-transceiver.yaml# |
|
|
|
phys: |
|
maxItems: 1 |
|
|
|
required: |
|
- compatible |
|
- reg |
|
- reg-names |
|
- interrupts |
|
- interrupt-names |
|
- clocks |
|
- clock-names |
|
- bosch,mram-cfg |
|
|
|
additionalProperties: false |
|
|
|
examples: |
|
- | |
|
#include <dt-bindings/clock/imx6sx-clock.h> |
|
can@20e8000 { |
|
compatible = "bosch,m_can"; |
|
reg = <0x020e8000 0x4000>, <0x02298000 0x4000>; |
|
reg-names = "m_can", "message_ram"; |
|
interrupts = <0 114 0x04>, <0 114 0x04>; |
|
interrupt-names = "int0", "int1"; |
|
clocks = <&clks IMX6SX_CLK_CANFD>, |
|
<&clks IMX6SX_CLK_CANFD>; |
|
clock-names = "hclk", "cclk"; |
|
bosch,mram-cfg = <0x0 0 0 32 0 0 0 1>; |
|
|
|
can-transceiver { |
|
max-bitrate = <5000000>; |
|
}; |
|
}; |
|
|
|
...
|
|
|