On Mon, Jun 29, 2015 at 10:12:47AM +0200, Christian Hartmann wrote:
Hi,
I do not want to guess and I also want to minimize the try&error circle, some questions are open yet:
2015-06-25 17:56 GMT+02:00 Mark Brown broonie@kernel.org:
On Thu, Jun 25, 2015 at 04:44:07PM +0100, Charles Keepax wrote:
On Thu, Jun 25, 2015 at 03:58:53PM +0100, Mark Brown wrote:
On Thu, Jun 25, 2015 at 02:18:23PM +0200, Christian Hartmann wrote:
Name (_HID, "WM510205") // _HID: Hardware ID Name (_CID, "WM510205") // _CID: Compatible ID Name (_DDN, "Wolfson Microelectronics Audio WM5102")
Separately to the chip select discussion one thing to highlight here is that for some reason the BIOS is listing the device as "WM510205" rather than "WM5102" - do those extra numbers mean anything and does this mean that WM50120[1-4] and possibly higher numbers are also valid?
From my brief discussions with the Windows guys here on this basically those last two digits are being used to inform the Windows driver of use-case setup. So here it will set things up for whatever the Window's driver considers to be setup "5".
Yay for scalability and abstraction.
I think from the Linux side we can safely ignore those last two digits. I expect that all systems of the same make and model would report the same last two digits but that it might change between models if the Windows driver is expected to something differently for that model.
Well, we might want to consider using this to set our platform data instead of the machine ID if people have just been copying a smallish set of reference designs, it might might make for a slightly smaller set of ID tables than the machine ID based stuff does.
Due to the way ACPI ID matching works we'll also need to add every suffix individually to the table, we're looking for complete matches not substring matches here.
I saw in the file mfd/arizona/core.h the ENUMs of the arizona_type and one of my first tries was to simple add a new type (like WM510205 = 5,) but it was not clear to me if this will work as expect. I had added in all arizona-{core,spi,i2c) files the WM510205 but that was undeclared, cause I did not added this ENUM yet...
What do you think??
I think you are confusing two things here. You shouldn't need to add any new entries to the arizona_type enum there is already an entry for wm5102. "WM510205" is what needs to go into the ACPI match table, we were just discussing that it is probably enough to look up some fixed pdata to configure the driver for this device, rather than needing to seperately check the machine ID.
Thanks, Charles