tegrakernel/kernel/nvidia/Documentation/devicetree/bindings/net/can/m_ttcan.txt

94 lines
3.6 KiB
Plaintext
Raw Permalink Normal View History

2022-02-16 09:13:02 -06:00
Bosch MTTCAN controller Device Tree Bindings
-------------------------------------------------
Required properties:
- compatible : Should be "bosch,mttcan" for M_TTCAN controllers
- reg : physical base address and size of the M_TTCAN
registers map, glue logic register maps and
Message RAM
- reg-names : Should be "can-regs", "glue-regs" and "msg_ram"
- interrupts : Should be the interrupt number of M_TTCAN interrupt,
line 0 and line 1 can have different interrupts.
- clocks : Clocks used by controller, should be CAN clock,
CAN host clock and parent PLL.
- clock-names : Should contain "can", "can_host" and parent PLL.
- pll_source : Names corresponding parent PLL
- resets : reset number corresponding to controller reset line.
- reset-names : Name corresponding to controller reset line.
- gpio_can_stb : GPIO number and active level to program PHY chip
- gpio_can_en : GPIO number and active level to enable PHY chip
- mram-params : Message RAM configuration data.
Multiple M_TTCAN controller instance can share same
Message RAM. Location and number of elements per
category are configurable. Care should be taken while
configuring Message RAM as the memory overlap is not
detected and result are unpredictable behaviour.
The format should be as follows:
<offset num_sidf_elems num_xidf_elems num_rxf0_elems
num_rxf1_elems num_rxb_elems num_txe_elems
num_txb_elems num_tmc_elems>
The 'offset' is an address offset of the Message RAM
where the following elements start from.
M_TTCAN 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
Trigger Memory 0-64 elements / 0-128 words
Please refer to 2.4.1 Message RAM Configuration in
Bosch M_TTCAN user manual for details.
- tx-config : Tx Buffer region configuration. Tx Buffers can be
in sub configured as Tx Buffers, Tx Queue and TxFIFO.
Valid configuration are
* Tx Buffers + Tx Queue
* Tx Buffers + Tx FIFO
The format should be as follows
<num_tx_buf, num_txq, q_mode, tx_max_data_size>
'num_tx_buf' is number of elements configures as
buffers. 'num_txq' is number of elements which are
configured in Queue/FIFO. 'q_mode' to 1 select mode
as queue, 0 to select FIFO mode. 'tx_max_data_size'
is max payload of a message. M_TTCAN support 64 bytes
max payload. 'tx_max_data_size' is used optimize
Message RAM usage.
- rx-config : Size of Rx elements max payload.
The format should be as follow
<rx_buf_payload, rx_fifo0_payload, rx_fif1_payload>
Example:
SoC dtsi:
mttcan0: mttcan@c310000 {
compatible = "bosch,mttcan";
reg = <0x00 0x0c310000 0x00 0x400>,
<0x00 0x0c311000 0x00 0x32>,
<0x00 0x0c312000 0x00 0x1000>;
reg-names = "can-regs", "glue-regs", "msg-ram";
interrupts = <0 40 0x04 >;
pll_source = "pllaon";
clocks = <&tegra_car TEGRA186_CLK_CAN1>,
<&tegra_car TEGRA186_CLK_CAN1_HOST>,
<&tegra_car TEGRA186_CLK_PLLAON>;
clock-names = "can","can_host","pllaon";
resets = <&tegra_car TEGRA186_RESET_CAN1>;
reset-names = "can";
status = "disabled";
};
Board dts:
mttcan@c310000 {
gpio_can_stb = <&tegra_gpio TEGRA_GPIO(AA, 0) GPIO_ACTIVE_HIGH>;
gpio_can_en = <&tegra_gpio TEGRA_GPIO(AA, 1) GPIO_ACTIVE_HIGH>;
mram-params = <0 16 16 8 8 8 16 16 16>;
tx-config = <8 8 0 64>;
rx-config = <64 64 64>;
status = "okay";
};