I2C Controller and HID compatible device in Windows 7

Hello,

I’ve searched this forum but didn’t find decision of my problem. So that I would like to raise the question here, hope to get help from you guys.

My device uses a SoC with I2C bus inside (Intel I2C Serial Controller) and a external HID compatible device connected to this bus.

In Windows 8, everything is perfect. The I2C controller (hw id ACPI\INT33C2) and my HID device (compatible id PNP0C50) are both shown up in device manager. I can operate my HID device without problem.

But the in Windows 7, I can’t see any the I2C controller and my HID device (even don’t have ‘unknown device’ with same Hardware ID of I2C controller and my HID device).

In ACPI DSDT, I saw that the I2C0 device is already defined and my HID device also declared in scope of I2C0 with _CRS method having I2cSerialBus and Interrupt information

So my questions are:

  1. Why the I2C Controller and my HID device do not appear in device manager? Is there compatible issue between ACPI interpreter on Windows 8 and Windows 7? Actually I saw that Windows 8 currently follows the ACPI specification v5.0, but I can’t confirm the version that Windows 7 is using.
  2. Is there any way to ‘upgrade’ the ACPI in windows 7 to conform with latest ACPI specification v5.0. I mean windows 7 can probe my devices (create PDO for these) and understand the I2cSerialBus macro?
  3. In case, no way to upgrade acpi driver for Windows 7, I need to create a PDO for I2C controller and my HID device with according HW id ( as Tim Robert suggested in thread http://www.osronline.com/ShowThread.cfm?link=257346) and I also need to write a I2C controller from scratch ( operate the I2C registers and interrupt) to read/write data from I2C bus and create PDO for my HID device? Do I understand correctly?

Thanks for help in advance,

-H

ACPI v5.0 support is not in Windows 7. Further, HID Over I2C is not
supported natively by Windows until Windows 8. There is no way to turn on
this support in Windows 7, it’s simply not there. Note that this is also
true for non-HID devices attached to I2C.

Making a HID Over I2C compliant device work with Windows 7 is a non-trivial
task that requires coordination with the platform vendor. At a minimum, you
need some resources provided to you by the ACPI BIOS with which to
communicate with your hardware.

-scott
OSR
@OSRDrivers

wrote in message news:xxxxx@ntdev…

Hello,

I’ve searched this forum but didn’t find decision of my problem. So that I
would like to raise the question here, hope to get help from you guys.

My device uses a SoC with I2C bus inside (Intel I2C Serial Controller) and a
external HID compatible device connected to this bus.

In Windows 8, everything is perfect. The I2C controller (hw id ACPI\INT33C2)
and my HID device (compatible id PNP0C50) are both shown up in device
manager. I can operate my HID device without problem.

But the in Windows 7, I can’t see any the I2C controller and my HID device
(even don’t have ‘unknown device’ with same Hardware ID of I2C controller
and my HID device).

In ACPI DSDT, I saw that the I2C0 device is already defined and my HID
device also declared in scope of I2C0 with _CRS method having I2cSerialBus
and Interrupt information

So my questions are:

  1. Why the I2C Controller and my HID device do not appear in device manager?
    Is there compatible issue between ACPI interpreter on Windows 8 and Windows
    7? Actually I saw that Windows 8 currently follows the ACPI specification
    v5.0, but I can’t confirm the version that Windows 7 is using.
  2. Is there any way to ‘upgrade’ the ACPI in windows 7 to conform with
    latest ACPI specification v5.0. I mean windows 7 can probe my devices
    (create PDO for these) and understand the I2cSerialBus macro?
  3. In case, no way to upgrade acpi driver for Windows 7, I need to create a
    PDO for I2C controller and my HID device with according HW id ( as Tim
    Robert suggested in thread
    http://www.osronline.com/ShowThread.cfm?link=257346) and I also need to
    write a I2C controller from scratch ( operate the I2C registers and
    interrupt) to read/write data from I2C bus and create PDO for my HID device?
    Do I understand correctly?

Thanks for help in advance,

-H