I'm trying to get Linux working on an AM3874 board. I've started with the linux-omap3 tree from arago-project.org:
git://arago-project.org/git/projects/linux-omap3.git
Now, I've almost got the kernel booting. However, the McSPI driver in this kernel tree appears to be incompatible with this chip's drivers, even when using ti8148_evm_defconfig. The MCSPI peripheral gets confused during omap2_mcspi_probe() and crashes the processor.
I've traced the problem to the soft-reset bit in the MCSPI_HL_SYSCONFIG register. For the am3874, this register is defined on Page 2585 of sprug7c:
http://www.ti.com/lit/ug/sprugz7c/sprugz7c.pdf#page=2584
The register is identical on the DM8148. However, the register layout in drivers/spi/omap2_mcspi.c is incompatible: the soft reset bit is defined as bit 1, when it should be bit 0 for this device:
#define OMAP2_MCSPI_SYSCONFIG_SOFTRESET BIT(1)
I can correct this particular problem by fixing the bit definitions. However, I have a few higher-level questions:
- Is there a better kernel snapshot to use for the am3874 so I can avoid problems like this in the future?
- Are there other known "gotchas" w.r.t. driver support from TI's kernel sources?
thanks,
Graeme