Tell me more ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

Problem: I need to bring up the SJA 1000 CAN controller on the Colibri Evaluation Carrier Board v2.1 (with a Colibri T20 (NVidia Tegra) module inserted into it, which has an ARM CPU).

Research: On the Toradex website they write that subject chip is "connected to GMI bus" (which could be "General Memory Interface"). I couldn't find anything about "GMI bus" in google, and I assume this is the same as "platform bus". Is this correct?

Ok, if so, we have the following: there are drivers in Linux kernel/drivers/net/can/sja1000/sja1000.c & sja1000_platform.c which should be what I need, in addition to can and can-dev drivers. But they can't be started (not even probed), because the kernel doesn't know about subject platform device.

All "platform" devices are added with their resources from the "board driver" kernel/arch/arm/mach-tegra/board-colibri_t20.c via platform_add_devices() func. The problem is that it initializes all the devices from Colibri T20 and not the CAN chip which is on Eval Board.

So finally, if all above is correct, to bring up the drivers, I need to create a platform_device structure with the array of resource structures inside it with exact numbers of IRQs and memory addresses. I've been pointed to the controller's datasheet, but I don't know how tio extract useful information from it.

Where do I go from there? How can I declare the controller to the board driver? Recommendations of articles or books are welcome.

share|improve this question

closed as off topic by jasonwryan, Renan, Gilles, Michael Mrozek Oct 26 '12 at 21:22

Questions on Unix & Linux Stack Exchange are expected to relate to Unix or Linux within the scope defined in the FAQ. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about closed questions here.

Browse other questions tagged or ask your own question.