Other Parts Discussed in Thread: TCAN1044-Q1, TCAN1043
Hi Ti support ,
We have AM62X Custom board which has 2X TCAN1044-Q1 CAN transceiver and they are mapped to MCAN0 & MCU_CAN0 . I am using SDK 09_00_00_03. I did not find any Linux Driver for it.
Please help me how to enable CAN Interface in the kernel .
I enabled the below kernel flags
Please find can DTS file changes
//added phandle for mcan0
&main_mcan0 {
pinctrl-names = "default";
pinctrl-0 = <&main_mcan0_pins_default>;
status = "okay";
};
&mcu_mcan1 {
pinctrl-names = "default";
pinctrl-0 = <&mcu_mcan0_pins_default>;
status = "okay";
};
//added for mcan0 pinmux
main_mcan0_pins_default: main_mcan0_pins_default {
pinctrl-single,pins = <
AM62X_IOPAD(0x1dc, PIN_INPUT, 0) /* (E15) AM62X_MCAN0_RX\G */
AM62X_IOPAD(0x1d8, PIN_OUTPUT, 0) /* (C15) AM62X_MCAN0_TX\G */
>;
};
//added for mcu_can0 pimux
mcu_mcan0_pins_default: mcu_mcan0_pins_default {
pinctrl-single,pins = <
AM62X_IOPAD(0x038, PIN_INPUT, 0) /* (B3) AM62X_MCU_MCAN0_RX\G */
AM62X_IOPAD(0x034, PIN_OUTPUT, 0) /* (D6) AM62X_MCU_MCAN0_TX\G */
>;
};
&main_gpio0 {
p59{
gpio-hog;
gpios = <59 GPIO_ACTIVE_LOW>;
output-low;
line-name = "MCAN1_STB";
};
};
I found mcu_mcan0 node is not present in k3-am62-mcu.dtsi
Observed below Logs in kernel:
root@am62xx-evm:~# dmesg | grep can
[ 15.635177] HugeTLB: 0 KiB vmemmap can be freed for a 1.00 GiB page
[ 15.648535] HugeTLB: 0 KiB vmemmap can be freed for a 32.0 MiB page
[ 15.661882] HugeTLB: 0 KiB vmemmap can be freed for a 2.00 MiB page
[ 15.675229] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page
[ 16.470584] can: controller area network core
[ 16.875630] m_can_platform 4e00000.can: m_can device registered (irq=0, version=32)
[ 16.886603] m_can_platform 20701000.can: m_can device registered (irq=248, version=32)
root@am62xx-evm:~# ip link set can1 type can bitrate 500000
root@am62xx-evm:~# ip link set up can1
root@am62xx-evm:~# cansend can1 123#11223344556677
m_Can_platfrom 20701000.can can1 :buss-off
root@am62xx-evm:~# cansend can1 123#11223344556677
root@am62xx-evm:~# cansend can1 123#11223344556677
root@am62xx-evm:~# ip link set can0 type can bitrate 500000
root@am62xx-evm:~# ip link set up can0
root@am62xx-evm:~# cansend can0 123#11223344556677
m_Can_platfrom 20701000.can can0 :buss-off
root@am62xx-evm:~# cansend can0 123#11223344556677
root@am62xx-evm:~# cansend can0 123#11223344556677
when i give first time cansnd command getting bus-off , then next time not getting bus-off but data is not sent
root@am62xx-evm:~#
Thanks,
Naresh