MCP2518FD can not link up with SPI1/SPI2?

Hi NV_Team,

We are using 3xSPI, but SPI2 can’t drive MCP2518FD and SPI1, now only SPI3 can work with MCP2518FD.

  1. SPI1(J57/A56/D55/E55, and MCP2518-INT using F10/GPIO15), INT can’t request log: “gpio gpiochip0: (tegra234-gpio): unable to lock HW IRQ 138 for IRQ”
  2. SPI2 (E61/D62/F60/D60, and MCP2518-INT using F9/GPIO16), need any patch to enable this SPI pins function ?
  3. SPI3 (F55/D56/G56/C57, and MCP2518-INT using A7/GPIO29) works fine.

spi.can.sh

#SPI1
sudo busybox devmem 0x0243d008 32 0x400 #PADCTL_G2_SPI1_CS0_0  
sudo busybox devmem 0x0243d018 32 0x450 #PADCTL_G2_SPI1_MISO_0 
sudo busybox devmem 0x0243d028 32 0x400 #PADCTL_G2_SPI1_SCK_0  
sudo busybox devmem 0x0243d040 32 0x400 #PADCTL_G2_SPI1_MOSI_0 

#SPI.2
sudo busybox devmem 0x0c302038 32 0x400 #PADCTL_AO_SPI2_CS0_0
sudo busybox devmem 0x0c302048 32 0x450 #PADCTL_AO_SPI2_SCK_0
sudo busybox devmem 0x0c302050 32 0x400 #PADCTL_AO_SPI2_MISO_0
sudo busybox devmem 0x0c302028 32 0x400 #PADCTL_AO_SPI2_MOSI_0

#SPI3
sudo busybox devmem 0x0243d010 32 0x400 #PADCTL_G2_SPI3_CS0_0  
sudo busybox devmem 0x0243d000 32 0x450 #PADCTL_G2_SPI3_MISO_0 
sudo busybox devmem 0x0243d030 32 0x400 #PADCTL_G2_SPI3_SCK_0   
sudo busybox devmem 0x0243d048 32 0x400 #PADCTL_G2_SPI3_MOSI_0 

sudo modprobe can
sudo modprobe can raw
sudo modprobe mttcan
sudo insmod /lib/modules/$(uname -r)/kernel/drivers/net/can/spi/mcp25xxfd.ko

spi.can.sh execute dmesg log

Jan 10 05:14:25 nvidia-desktop kernel: [   55.353103] can: controller area network core
Jan 10 05:14:25 nvidia-desktop kernel: [   55.353207] NET: Registered protocol family 29
Jan 10 05:14:25 nvidia-desktop kernel: [   55.646894] can: raw protocol
Jan 10 05:14:25 nvidia-desktop kernel: [   55.667680] CAN device driver interface
Jan 10 05:14:25 nvidia-desktop kernel: [   55.691883]    Message RAM Configuration
Jan 10 05:14:25 nvidia-desktop kernel: [   55.691883]   | base addr   |0x0c312000|
Jan 10 05:14:25 nvidia-desktop kernel: [   55.691883]   | sidfc_flssa |0x00000000|
Jan 10 05:14:25 nvidia-desktop kernel: [   55.691883]   | xidfc_flesa |0x00000040|
Jan 10 05:14:25 nvidia-desktop kernel: [   55.691883]   | rxf0c_f0sa  |0x000000c0|
Jan 10 05:14:25 nvidia-desktop kernel: [   55.691883]   | rxf1c_f1sa  |0x000009c0|
Jan 10 05:14:25 nvidia-desktop kernel: [   55.691883]   | rxbc_rbsa   |0x000009c0|
Jan 10 05:14:25 nvidia-desktop kernel: [   55.691883]   | txefc_efsa  |0x000009c0|
Jan 10 05:14:25 nvidia-desktop kernel: [   55.691883]   | txbc_tbsa   |0x00000a40|
Jan 10 05:14:25 nvidia-desktop kernel: [   55.691883]   | tmc_tmsa    |0x00000ec0|
Jan 10 05:14:25 nvidia-desktop kernel: [   55.691883]   | mram size   |0x00001000|
Jan 10 05:14:25 nvidia-desktop kernel: [   55.693253] Release 3.2.3 from 09.06.2018
Jan 10 05:14:25 nvidia-desktop kernel: [   55.693702] net can0: mttcan device registered (regs=000000000c0dec6f, irq=125)
Jan 10 05:14:25 nvidia-desktop kernel: [   55.696133]    Message RAM Configuration
Jan 10 05:14:25 nvidia-desktop kernel: [   55.696133]   | base addr   |0x0c322000|
Jan 10 05:14:25 nvidia-desktop kernel: [   55.696133]   | sidfc_flssa |0x00000000|
Jan 10 05:14:25 nvidia-desktop kernel: [   55.696133]   | xidfc_flesa |0x00000040|
Jan 10 05:14:25 nvidia-desktop kernel: [   55.696133]   | rxf0c_f0sa  |0x000000c0|
Jan 10 05:14:25 nvidia-desktop kernel: [   55.696133]   | rxf1c_f1sa  |0x000009c0|
Jan 10 05:14:25 nvidia-desktop kernel: [   55.696133]   | rxbc_rbsa   |0x000009c0|
Jan 10 05:14:25 nvidia-desktop kernel: [   55.696133]   | txefc_efsa  |0x000009c0|
Jan 10 05:14:25 nvidia-desktop kernel: [   55.696133]   | txbc_tbsa   |0x00000a40|
Jan 10 05:14:25 nvidia-desktop kernel: [   55.696133]   | tmc_tmsa    |0x00000ec0|
Jan 10 05:14:25 nvidia-desktop kernel: [   55.696133]   | mram size   |0x00001000|
Jan 10 05:14:25 nvidia-desktop kernel: [   55.697510] Release 3.2.3 from 09.06.2018
Jan 10 05:14:25 nvidia-desktop kernel: [   55.699294] net can1: mttcan device registered (regs=000000004d6f2df8, irq=126)
Jan 10 05:14:26 nvidia-desktop kernel: [   55.721712] irq: IRQ322: trimming hierarchy from :pmc@c360000
Jan 10 05:14:26 nvidia-desktop kernel: [   55.729743] mcp25xxfd spi0.0 (unnamed net_device) (uninitialized): __mcp25xxfd_chip_set_mode: 4
Jan 10 05:14:26 nvidia-desktop kernel: [   55.730535] mcp25xxfd spi0.0 can2: mcp25xxfd_register_done: 0
Jan 10 05:14:26 nvidia-desktop kernel: [   55.730541] mcp25xxfd spi0.0 can2: MCP2518FD rev0.0 (-RX_INT -MAB_NO_WARN +CRC_REG +CRC_RX +CRC_TX +ECC -HD c:40.00MHz m:50.00MHz r:18.50MHz e:0.00MHz) successfully initialized.
Jan 10 05:14:26 nvidia-desktop kernel: [   55.731216] irq: IRQ323: trimming hierarchy from :pmc@c360000
Jan 10 05:14:26 nvidia-desktop kernel: [   55.774779] mcp25xxfd spi1.0 (unnamed net_device) (uninitialized): Failed to detect MCP2518FD (osc=0x00000000).
Jan 10 05:14:26 nvidia-desktop kernel: [   55.827513] irq: IRQ324: trimming hierarchy from :pmc@c360000
Jan 10 05:14:26 nvidia-desktop kernel: [   55.837585] mcp25xxfd spi2.0 (unnamed net_device) (uninitialized): __mcp25xxfd_chip_set_mode: 4
Jan 10 05:14:26 nvidia-desktop kernel: [   55.839421] mcp25xxfd spi2.0 can3: mcp25xxfd_register_done: 0
Jan 10 05:14:26 nvidia-desktop kernel: [   55.839432] mcp25xxfd spi2.0 can3: MCP2518FD rev0.0 (-RX_INT -MAB_NO_WARN +CRC_REG +CRC_RX +CRC_TX +ECC -HD c:40.00MHz m:50.00MHz r:18.50MHz e:0.00MHz) successfully initialized.
Jan 10 05:14:26 nvidia-desktop kernel: [   55.854664] mttcan c310000.mttcan can0: Bitrate set
Jan 10 05:14:26 nvidia-desktop kernel: [   55.868205] mttcan_controller_config: ctrlmode 0
Jan 10 05:14:26 nvidia-desktop kernel: [   55.868232] mttcan c310000.mttcan can0: Bitrate set
Jan 10 05:14:26 nvidia-desktop kernel: [   55.868519] IPv6: ADDRCONF(NETDEV_CHANGE): can0: link becomes ready
Jan 10 05:14:26 nvidia-desktop kernel: [   55.880477] mttcan c320000.mttcan can1: Bitrate set
Jan 10 05:14:26 nvidia-desktop kernel: [   55.891874] mttcan_controller_config: ctrlmode 0
Jan 10 05:14:26 nvidia-desktop kernel: [   55.891896] mttcan c320000.mttcan can1: Bitrate set
Jan 10 05:14:26 nvidia-desktop kernel: [   55.919328] mcp25xxfd spi0.0 can2: FIFO setup: TEF: 8*12 bytes = 96 bytes, TX: 8*16 bytes = 128 bytes
Jan 10 05:14:26 nvidia-desktop kernel: [   55.919346] mcp25xxfd spi0.0 can2: FIFO setup: RX-0: 32*20 bytes = 640 bytes
Jan 10 05:14:26 nvidia-desktop kernel: [   55.919354] mcp25xxfd spi0.0 can2: FIFO setup: free: 1184 bytes
Jan 10 05:14:26 nvidia-desktop kernel: [   55.923258] mcp25xxfd spi0.0 can2: __mcp25xxfd_chip_set_mode: 4
Jan 10 05:14:26 nvidia-desktop kernel: [   55.927185] mcp25xxfd spi0.0 can2: __mcp25xxfd_chip_set_mode: 6
Jan 10 05:14:26 nvidia-desktop kernel: [   55.927654] gpio gpiochip0: (tegra234-gpio): gpiochip_lock_as_irq: tried to flag a GPIO set as output for IRQ
Jan 10 05:14:26 nvidia-desktop kernel: [   55.937900] gpio gpiochip0: (tegra234-gpio): unable to lock HW IRQ 138 for IRQ
Jan 10 05:14:26 nvidia-desktop kernel: [   55.945435] genirq: Failed to request resources for spi0.0 (irq 322) on irqchip gpio
Jan 10 05:14:26 nvidia-desktop kernel: [   55.979262] mcp25xxfd spi2.0 can3: FIFO setup: TEF: 8*12 bytes = 96 bytes, TX: 8*16 bytes = 128 bytes
Jan 10 05:14:26 nvidia-desktop kernel: [   55.979269] mcp25xxfd spi2.0 can3: FIFO setup: RX-0: 32*20 bytes = 640 bytes
Jan 10 05:14:26 nvidia-desktop kernel: [   55.979271] mcp25xxfd spi2.0 can3: FIFO setup: free: 1184 bytes
Jan 10 05:14:26 nvidia-desktop kernel: [   55.984552] mcp25xxfd spi2.0 can3: __mcp25xxfd_chip_set_mode: 4
Jan 10 05:14:26 nvidia-desktop kernel: [   55.987925] mcp25xxfd spi2.0 can3: __mcp25xxfd_chip_set_mode: 6

Could you confirm by loopback test.

Thanks

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.