Re: ACPI SPI slave device

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks for that!!!

Ok, I added a few more printk statments to spi.c. It looks like the
root cause of the issue is that the
"ares->type == ACPI_RESOURCE_TYPE_SERIAL_BUS" check is failing.

pxa2xx-spi pxa2xx-spi.0: found DMA channel "tx" at index 0
xxx resource.c acpi_dev_get_resources acpi_dev_name=INT33C1:00 returns
c.count 0...
dma dma0chan0: dwc_alloc_chan_resources: allocated 64 descriptors
dmaengine: __dma_request_channel: success (dma0chan0)
pxa2xx-spi pxa2xx-spi.0: found DMA channel "rx" at index 1
xxx resource.c acpi_dev_get_resources acpi_dev_name=INT33C1:00 returns
c.count 0...
dmaengine: private_candidate: dma0chan0 busy
dma dma0chan1: dwc_alloc_chan_resources: allocated 64 descriptors
dmaengine: __dma_request_channel: success (dma0chan1)
pxa2xx-spi pxa2xx-spi.0: registered master spi0
xxx spi.c acpi_register_spi_devices acpi_handle is ffff8802650bdcd0 (INT33C1:00)
xxx spi.c acpi_spi_add_device() start
xxx spi.c *spi_alloc_device() start
xxx spi.c acpi_spi_add_device acpi_dev_name=APP000D:00
xxx spi.c acpi_spi_add_resource() start
xxx spi.c acpi_spi_add_resource spi->irq = -1
xxx spi.c acpi_spi_add_resource failed check: ares->type ==
ACPI_RESOURCE_TYPE_SERIAL_BUS
xxx spi.c acpi_spi_add_resource :else if (spi->irq < 0)
xxx spi.c acpi_spi_add_resource return 1
xxx resource.c acpi_dev_get_resources acpi_dev_name=APP000D:00 returns
c.count 0...
xxx spi.c acpi_spi_add_device ret returns 0
xxx spi.c acpi_spi_add_device spi->max_speed_hz is 0
xxx spi.c acpi_spi_add_device  (ret < 0 || !spi->max_speed_hz) --->
spi_dev_put(spi) --> return AE_OK


I assume it's looking for SpiSerialBus in  the _CRS method,  not sure
why it can't find it. I wonder if there's a way to just manually
configure the slave device.


 Device (SPIT)
   {
     Name (_HID, EisaId ("APP000D"))  // _HID: Hardware ID
     .....

    Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
    {
        Name (UBUF, ResourceTemplate ()
        {
            SpiSerialBus (0x0000, PolarityLow, FourWireMode, 0x08,
                ControllerInitiated, 0x007A1200, ClockPolarityLow,
                ClockPhaseFirst, "\\_SB.PCI0.SPI1",
                0x00, ResourceConsumer, ,
                )
            Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
            {
                0x0000001E,
            }
        })
        Name (ABUF, ResourceTemplate ()
        {
        })
        If (!OSDW ())
        {
            Return (UBUF) /* \_SB_.PCI0.SPI1.SPIT._CRS.UBUF */
        }

       Return (ABUF) /* \_SB_.PCI0.SPI1.SPIT._CRS.ABUF */
   }

On Tue, Mar 1, 2016 at 5:07 PM, Lukas Wunner <lukas@xxxxxxxxx> wrote:
> Hi Leif,
>
> On Tue, Mar 01, 2016 at 04:42:18PM +0100, Leif Liddy wrote:
>> Do you know how I could print out the the name or id of the ACPI
>> device from the acpi_device pointer?
>
> printk("acpi_dev_name=%s\n", acpi_dev_name(adev));
>
> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/linux/acpi.h#n83
> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/acpi/acpi_bus.h#n354
>
> Best regards,
>
> Lukas
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux