[MinnowBoard] SPI questions
Kevin Shelton
kmshelton at gmail.com
Tue Jan 27 06:38:52 UTC 2015
Thanks John and Darren. I will play with spid_devtest and have
reached out to linux-spi at vger.kernel.org.
A minnowmax-specific question: In the Baytrail block diagram at
http://media.bestofmicro.com/Y/3/400395/original/bay-trail-soc.jpg
does the Marvell pxa27x correspond to the "Low Power IO Controller"?
On Mon, Jan 26, 2015 at 6:33 PM, Darren Hart <dvhart at linux.intel.com> wrote:
> 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
>>>late
>>> > 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
>>>using
>>> > the _DSD mechanisms introduced by the ACPI 5.1 specification last
>>>week
>>> >
>>> > I just wanted to confirm the ACPI mechanism is not the
>>>recommended way
>>> > 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
>>>push
>>> on that. Older kernels without that, likely spidev or a more
>>>targeted
>>> driver.
>>>
>>>
>>> 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.
>
> 3.19 iirc.
>
> 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
>>>instead
>>> > of the usual active-low device? Is it correct to do a bitwise or
>>>with
>>> > SPI_CS_HIGH (0x4) with your SPI_MODE in your spi_board_info
>>>struct, like:
>>> > .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
>>> -or-
>>> .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
>>>7).
>>>
>>> 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
>>> relatedness:
>>>http://lists.infradead.org/pipermail/linux-arm-kernel/2014-June/263467.ht
>>>ml
>>> 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:
> https://www.kernel.org/doc/Documentation/spi/spidev_test.c
>
>
> 2) Lookup the right mailing lists for SPI Linux kernel development and ask
> the same question there
>
> --
> Darren Hart
> Intel Open Source Technology Center
>
>
>
> _______________________________________________
> elinux-MinnowBoard mailing list
> elinux-MinnowBoard at lists.elinux.org
> http://lists.elinux.org/mailman/listinfo/elinux-minnowboard
More information about the elinux-MinnowBoard
mailing list