WP7702 FX30 Talon CAN bus IoT

#1

Hello,

I have a Talon CAN bus IoT board working on an FX30 3G (WP85xx). Like I showed in the following link:
https://forum.sierrawireless.com/t/talon-can-bus-iot-expansion/14206

Now I’m trying to migrate the system to an FX30 LTE (WP7702), but I’m having issues bringing the interface up.
I compiled the system with the Kernel Modules specified for this chip and I got it loaded, but I cannot find the correct GPIO that brings the board up.

root@swi-mdm9x28-wp:~# lsmod
Tainted: G
mcp251x 9636 0 - Live 0xbf004000 (O)
can_iot 1072 0 - Live 0xbf000000 (O)

[ 14.658633] can_iot_init: mcp2515 (gpio:79 irq:131).
[ 14.731595] spi1.0 supply vdd not found, using dummy regulator
[ 14.731692] spi1.0 supply xceiver not found, using dummy regulator

I tried to set the same GPIOs that I have before for the WP85xx (33 and 6), but the system shows me:

root@swi-mdm9x28-wp:~# ip link set can0 type can bitrate 500000 triple-sampling on
Cannot find device “can0”

Is there anyone that could help me with that?

Thank you very much!

#2

Hi cporto,
Could you please clarify which firmware version you are running? It appears that you’re running a stock version of WP module code, at least the kernel.

I recommend using the FX30 R14 source code, otherwise your peripheral won’t function properly.

For the GPIO numbering, please take a look at the latest User Guide as there is a GPIO mapping table. If you need further assistance, please let me know.

BR,
Chris

#3

Hi,

Just an update. I could figure out the issue doing multiple testings.
Here is the script that I have to use with the WP7702 on FX30, I haven’t seen anything like this anywhere before:

#!/bin/sh

# It seems that taking the IoT card out of reset fails in the core
# mangOH driver - but placing things after user-space has fully started
# and through the SWI gpiolib-sysfs code works - TODO fix and move into
# the core driver so no shell script is needed.
# Thus, we remove the inserted chip driver and bring it back.

drv=“can_iot.ko”
drv2=find /legato/systems/current/modules/ -name "*mcp251x.ko"
# remove the driver
/mnt/legato/system/bin/kmod unload $drv
/sbin/rmmod mcp251x

# Take IoT card out of reset
echo 6 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio6/direction
echo 1 > /sys/class/gpio/gpio6/value

# Enable level shifter on the CAN IoT card
echo 33 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio33/direction
echo 1 > /sys/class/gpio/gpio33/value

# Give a bit of time for the IoT card to come out of reset before loading drivers
sleep 1

# Bring driver back & iproute2 add in CAN
/mnt/legato/system/bin/kmod load $drv
/sbin/insmod $drv2
/sbin/ip link set can0 type can bitrate 500000 triple-sampling on
/sbin/ifconfig can0 up

I hope that it will be useful for future people.
Thank you!