AnsweredAssumed Answered

How to Enabling FlexCAN in devicetree on iMX6 (Solidrun Hummingboard)

Question asked by John Walker on Aug 10, 2015
Latest reply on May 21, 2016 by zhen li

I'm trying to enable flexCAN bus 1 on the 26 pin GPIO header on the HomeRun Hummingboard. The iMX6 version is Core Solo, part number MCIMX6S5DVM10AB. I've confirmed that this chip has 2 flexCAN buses, and I've confirmed that they can be accessed on pin 16 and 18 of the GPIO header. The pins are SD3_CMD (can be muxed to CAN TX) and SD3_CLK (can be muxed to CAN RX).


I have 2 CAN transceivers I can use. Both are working on other devices (an SH2 microcontroller,  beaglebone black and raspberry pi) so I cam confident that they are set up correctly. The transceivers are TI SN65HVD1050 and Microchip MCP2551.


I'm using Yocto with kernel 3.14.14.


I changed 2 device tree dtsi files to enable CAN, according to this post and others:


After recompiling, I can send and recieve messages to and from the raspberry pi and beaglebone black, but on the same CAN netwwork, I can't send or recieve to/from the iMX6. I get an error in dmesg, leading me to believe that I have not set up device tree correctly:


dmesg | grep -i "can"
[    1.432240] vcan: Virtual CAN interface driver
[    1.436722] CAN device driver interface
[    1.440823] 2090000.flexcan supply xceiver not found, using dummy regulator
[    1.448778] flexcan 2090000.flexcan: device registered (reg_base=a0a18000, irq=142)
[    2.639349] can: controller area network core (rev 20120528 abi 9)
[    2.651219] can: raw protocol (rev 20120528)
[    2.655541] can: broadcast manager protocol (rev 20120528 t)
[    2.663294] can: netlink gateway (rev 20130117) max_hops=1
[    2.775105] md: Scanned 0 and added 0 devices.


I'm not really sure what my next step in troubleshooting is, aside from hoping someone else has overcome a similar problem and can offer advice.