Hi,
I’m trying to enable FlexCAN on my i.MX8MP custom board running Android 15. I checked the pin configuration against my schematic, and it looks correct. However, I don’t see the can0 device in my Android 15 image. I’m using the same device tree source (DTS) and driver file that works in Yocto, where the can0 device is created successfully. But in Android 15, the node doesn’t seem to bring up the interface.
&flexcan1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_flexcan1>;
status = "okay";
};
&flexcan2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_flexcan2>;
status = "okay";
};
pinctrl_flexcan1: flexcan1grp {
fsl,pins = <
MX8MP_IOMUXC_SPDIF_RX__CAN1_RX 0x154
MX8MP_IOMUXC_SPDIF_TX__CAN1_TX 0x154
>;
};
pinctrl_flexcan2: flexcan2grp {
fsl,pins = <
MX8MP_IOMUXC_SAI5_MCLK__CAN2_RX 0x154
MX8MP_IOMUXC_SAI5_RXD3__CAN2_TX 0x154
>;
};
Added the below module in imx8mp_gki.fragment file
CONFIG_CAN=y
CONFIG_CAN_FLEXCAN=y
yocto log:root@imx8mp:~# dmesg | grep can
[ 0.087429] HugeTLB: 0 KiB vmemmap can be freed for a 1.00 GiB page
[ 0.087436] HugeTLB: 0 KiB vmemmap can be freed for a 32.0 MiB page
[ 0.087446] HugeTLB: 0 KiB vmemmap can be freed for a 2.00 MiB page
[ 0.087456] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page
[ 2.355505] can: controller area network core
[ 2.364708] can: raw protocol
[ 2.367689] can: broadcast manager protocol
[ 2.371886] can: netlink gateway - max_hops=1
[ 4.739488] Hot alarm is canceled. GPU3D clock will return to 64/64
root@imx8mp:~# find / -name "can0"
/proc/sys/net/ipv4/conf/can0
/proc/sys/net/ipv4/neigh/can0
/sys/class/net/can0
/sys/devices/platform/soc@0/30800000.bus/30800000.spba-bus/308c0000.can/net/can0
Android 15 log:130|ADS_BIM8MJTZ1:/ # ip link set can0 type can bitrate 500000 (and also I tried can 1,2,3,4)
Cannot find device "can0"
Thanks®ards,
Subash P.