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 12:24 PM, Ben Gardner <gardner.ben@xxxxxxxxx> wrote:
> 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.

This approach works well enough.

Would you mind if I cleaned up the patch and submitted it for inclusion?
Or is there a reason why this isn't upstream?

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