
Hi Mika, Dan et al.
@Dan : thank you, I will use get_maintainer.pl as of now.
@Mika: you mean I should prepare a new DSDT table and in this case overwrite the SPI value there with the 0 and load it (the DSDT table ) into a custom kernel build ?? I will do this (cause all what I want is to enable the codec and to hear sound)
currently I have in the extracted DSDT table from this device the SPI1 controller for the "AUDI" device as seen in this snippet :
Scope (_SB) { Device (LPEA) { Name (_ADR, Zero) // _ADR: Address Name (_HID, "80860F28" /* Intel SST Audio DSP */) // _HID: Hardware ID Name (_CID, "80860F28" /* Intel SST Audio DSP */) // _CID: Compatible ID Name (_DDN, "Intel(R) Low Power Audio Controller - 80860F28") // _DDN: DOS Device Name Name (_SUB, "17AA7004") // _SUB: Subsystem ID Name (_UID, One) // _UID: Unique ID Name (_DEP, Package (0x01) // _DEP: Dependencies { ^SPI1.AUDI }) Name (_PR0, Package (0x01) // _PR0: Power Resources for D0 { PLPE })
.... some lines later follows the AUDI device with Device (AUDI) { Name (_HID, "WM510205") // _HID: Hardware ID Name (_CID, "WM510205") // _CID: Compatible ID Name (_DDN, "Wolfson Microelectronics Audio WM5102") // _DDN: DOS Device Name Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Name (SBUF, ResourceTemplate () { SpiSerialBus (0x0001, PolarityLow, FourWireMode, 0x08, ControllerInitiated, 0x007A1200, ClockPolarityLow, ClockPhaseFirst, "\_SB.SPI1", 0x00, ResourceConsumer, , ) GpioInt (Edge, ActiveLow, ExclusiveAndWake, PullNone, 0x0000, "\_SB.GPO2", 0x00, ResourceConsumer, , ) { // Pin list 0x0004 } GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, "\_SB.I2C7.PMIC", 0x00, ResourceConsumer, , ) { // Pin list 0x0003 } GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, "\_SB.GPO1", 0x00, ResourceConsumer, , ) { // Pin list 0x0017 } }) Return (SBUF) /* _SB_.SPI1.AUDI._CRS.SBUF */ } ....
I t makes sense to me, to change the current value(s) in the DSDT and I have read about it to use a custom DSDT table but I am not 100% sure yet (until I have tested it).
If I understand you correct, than all I have to do is to change the 'SPI1' string in this dsdt to SPI0 like ^SPI1.AUDI to ^SPI0.AUDI and this block here SpiSerialBus (0x0001, PolarityLow, FourWireMode, 0x08, ControllerInitiated, 0x007A1200, ClockPolarityLow, ClockPhaseFirst, "\_SB.SPI1", 0x00, ResourceConsumer, ,
becomes SpiSerialBus (0x0000, PolarityLow, FourWireMode, 0x08, ControllerInitiated, 0x007A1200, ClockPolarityLow, ClockPhaseFirst, "\_SB.SPI0", 0x00, ResourceConsumer, ,
For this case, could you please have a look in the whole DSDT table that I extract from this device? If nothing else seems relevant and the current system dsdt has to be changed as suggested, I will try this out as soon as possible
@Jarkko : as you suggested , I attach the current system DSDT as a binary. I have also disassembled, and if someone needs it, I can also paste it somewhere else as a reference
After all I will assembly the new dsdt and include it in my custom kernel builld as documented, but will wait for some new infos etc.
thank you for you answers @all
cheers chris
2015-06-25 9:36 GMT+02:00 Mika Westerberg mika.westerberg@linux.intel.com:
On Thu, Jun 25, 2015 at 09:29:31AM +0200, Christian Hartmann wrote:
Hello Maintainer(s)s of SPI,
hope I got all of you maintainers now. This email was already sent out last week to the alsa-devel list and I resent it here to you.
I have one patch that enables the spi initialization of the WM510205 audio codec Without the patch, this message indicates that the codec chip fails with the current chipselect number in spi-pxa2xx:
[ 0.296256] pxa2xx-spi 80860F0E:00: cs1 >= max 1 [ 0.296270] spi_master spi32766: failed to add SPI device WM510205:00 from ACPI
So raise num_chipselect by one to enable the codec. The WM510202 is on chipselect = 1.
The hardware only has one chipselect.
You can fix this by specifying the correct chipselect in the ACPI SpiSerialBus connector:
SpiSerialBus (0, PolarityLow, FourWireMode, 8, ControllerInitiated, ..
First parameter is the chipselect.