Re: Meta-raspberrypi - how to configure device tree for MCP251x

Chris Tapp

Sorry, I meant to add that I have tried adding the following to local.conf:

    dtparam=spi=on \n \
    dtoverlay=mcp2515-can0,oscillator=16000000,interrupt=25 \n \
    dtoverlay=mcp2515-can1,oscillator=16000000,interrupt=23 \n \

However, this did not make any difference to the interrupts.

Since then, I have manually changed mcp2515-can1-overlay.dts in the kernel build tree (after running bitbake - c do_configure virtual/kernel) and rebuilt the kernel / image. This does result in the interrupt mapping changing, and both CAN channels then operate correctly.

Does anyone know why RPI_EXTRA_CONFIG doesn’t appear to be taking effect?


Chris Tapp

You can tell you're getting older when your car insurance gets real cheap!

On 1 Oct 2021, at 22:38, Chris Tapp <opensource@...> wrote:

I am having trouble getting the Waveshare 2-CH CAN HAT working with an RPI4. Channel 0 does not come up, channel 1 does, but it will only send one message (eventually reporting "write: No buffer space available”) and not receive anything.

Looking at the mcp2515-can0-overlay.dts and mcp2515-can1-overlay.dts device tree files in /tmp/work-shared/raspberrypi4/kernel-source/arch/arm/boot/dts/overlays/, it looks as if the interrupts are not mapped as required for the board.

      DTS               HAT
CAN0  brcm,pins = <25>  PIN23
CAN1  brcm,pins = <25>  PIN25

This doesn’t look right, and seems consistent with the behaviour I am seeing.

I would also like to check the device chip select signals, but I can't see how (if) they are mapped in the dts files.

How can I override these settings when I build the image?

Join to automatically receive all group messages.