Re: ACPI: Can I use I2cSerialBus with a PCI I2C controller?

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

 



On Fri, Oct 23, 2015 at 3:20 AM, Mika Westerberg
<mika.westerberg@xxxxxxxxxxxxxxx> wrote:
> On Thu, Oct 22, 2015 at 12:17:58PM -0500, Ben Gardner wrote:
>> > The next issue is that the I2C-core isn't matching the device to the
>> > "at24" driver, which has the alias "24c02".
>>
>> Here is what I found.
>> i2c-core is creating the device with the ACPI name "24C02:00".
>> The at24 driver uses "24c02" as the alias.
>> i2c-code is matching devices to drivers using strcmp().
>>
>> Result: no match. ("24c02" != "24C02:00").
>>
>> If I modify acpi_i2c_add_device() to cut off the name at the ':' and
>> covert to lowercase when populating info.type, it matches and works.
>> I must be missing something here, because this would have never worked as-is.
>> I'll ask on the I2C mailing list.
>
> You should either use proper _HID/_CID for the device or put "PRP0001"
> to the _HID and let the match happen with DT .compatible strings. I've
> attached a hack that I use locally.
>
> The corresponding ASL fragment would look like:
>
>
>         Device (AT24)
>         {
>             Name (_HID, "PRP0001")
>
>             Method (_CRS, 0, Serialized) {
>                 Name (UBUF, ResourceTemplate () {
>                     I2cSerialBus (0x50, ControllerInitiated, 0x00061A80,
>                         AddressingMode7Bit, "\\_SB.I2C6",
>                         0x00, ResourceConsumer)
>                 })
>                 Return (UBUF)
>             }
>
>             Name (_DSD, Package () {
>                 ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
>                 Package () {
>                     Package () {"compatible", "atmel,24c02"},
>                     Package () {"size", 256},
>                     Package () {"pagesize", 32},
>                     Package () {"abs-value", 1},
>                 },
>             })
>
>             Method (_STA, 0, NotSerialized)
>             {
>                 Return (0xF)
>             }
>         }

I like this approach, as one change to the driver will support all ACPI devices.
I'll give it a try.

Thanks,
Ben
--
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