[MinnowBoard] SPI questions
dvhart at linux.intel.com
Tue Jan 27 02:33:02 UTC 2015
On 1/26/15, 5:52 PM, "John Hawley" <john.hawley at intel.com> wrote:
>On 01/26/2015 05:47 PM, Kevin Shelton wrote:
>> On Fri, Jan 23, 2015 at 2:41 PM, John Hawley <john.hawley at intel.com
>> <mailto:john.hawley at intel.com>> wrote:
>> > I saw the thread 'Adding an SPI device to the Minnowboard' from
>> > 2013 and 'SPI support on minnowboard v1' from Aug 2014.
>> > Darren Hart notes:
>> > Ultimately we want to do things like this without board files by
>> > the _DSD mechanisms introduced by the ACPI 5.1 specification last
>> > I just wanted to confirm the ACPI mechanism is not the
>> > yet, and that using low-speed-spidev.c as a template is still the
>>way to go.
>> The answer to that will depend on what kernel you are intending to
>> target. Kernel's with ACPI 5.1 _DSD support, I think you'd want to
>> on that. Older kernels without that, likely spidev or a more
>> Currently, I am targeting 3.17. 3.17 does not have ACPI 5.1 _DSD
>> support, correct?
>Off the top of my head that came in in 3.18, so yes that's correct.
Also, using _DSD required a firmware change, or at least a DSDT update.
>> > Additional q:
>> > How do you tell the SPI controller that you have an active-high
>> > of the usual active-low device? Is it correct to do a bitwise or
>> > SPI_CS_HIGH (0x4) with your SPI_MODE in your spi_board_info
>> > .mode = SPI_MODE_0 | SPI_CS_HIGH
>> That should work, but take my statement with a grain of salt as I
>> haven't tried it with a device.
>> It seems to have no effect that I can discern. Pin 5 idles at 3.3V
>> whether I have
>> .mode = SPI_MODE_3 | SPI_CS_HIGH
>> .mode = SPI_MODE_3
>> I threw in a
>> pr_info("SPI mode=%i\n", cod_spi_board_info.mode);
>> to sanity check that I am setting the mode to what I think I am (3 or
>> Any debugging ideas?
>> What is the best way to learn more about the SPI master? It's built
>> into the CPU, correct?
>> This smells in the ballpark of
>> I don't grok that patch, but I confirmed my version of pxa2xx.c in my
>> 3.17 tree appears to contain that change.
>The SPI interface is indeed built into the CPU. It's the pxa2xx core,
>which it looks like you've found. I'd have to punt to someone else, as
>I'll admit, I don't know the SPI code well enough to say what's going
>on. I've CC'ed Darren Hart, he might know who to check with next.
Those are some very specific SPI usage questions that I don't know the
answer to off the top of my head. To find out, I would:
1) Search for other drivers in tree and externally that use active-high
First hit looks interesting:
2) Lookup the right mailing lists for SPI Linux kernel development and ask
the same question there
Intel Open Source Technology Center
More information about the elinux-MinnowBoard