[MinnowBoard] SPI questions
Kevin Shelton
kmshelton at gmail.com
Tue Jan 27 23:13:56 UTC 2015
sorry for the not clear writing: I meant to say ACPI mode for the
"LPSS & SCC Devices Mode" setting
On Tue, Jan 27, 2015 at 3:11 PM, Kevin Shelton <kmshelton at gmail.com> wrote:
> I realized that in my BIOS settings, I was in ACPI mode. Do I need to
> be in PCI mode to use a board file? What does that ACPI-PCI switch in
> the BIOS do? thanks for all the help
>
> On Mon, Jan 26, 2015 at 11:35 PM, Darren Hart <dvhart at linux.intel.com> wrote:
>> The SPI bus controlled by the pxa2xx driver is on the LPSS, which, yes,
>> corresponds to the Low Power IO Controller in that block diagram.
>>
>> On 1/26/15, 10:38 PM, "Kevin Shelton" <kmshelton at gmail.com> wrote:
>>
>>>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
>>>
>>
>>
>> --
>> Darren Hart
>> Intel Open Source Technology Center
>>
>>
>>
More information about the elinux-MinnowBoard
mailing list