How to select a GPIO for interrupt on a HID over I2C Device?

PXIeMan
PXIeMan New Member Posts: 2
edited April 22 in UP Xtreme i14 BIOS

Hello Up Community,
I am trying to connect my HID over I2C touch screen to the Up Xtreme i14.

I am using the BIOS to configure the I2C settings on bus I2C0 (CRB Setup -> CRB Advanced -> PCH-IO Configuration -> SerialIO Configuration -> Serial IO I2C0 Settings -> Serial IO Touch Panel Settings). This allows me to set the Device's bus address, HID address and bus speed. It also allows me to select the "Touch Panel Interrupt Mode", options are GPIO Interrupt or APIC Interrupt.

How do I select and/or configure a GPIO to use as the interrupt line for my Device?

Answers

  • HarryChiu
    HarryChiu New Member Posts: 225 ✭✭✭

    Hi @PXIeMan

    You can refer to Microsoft Learn.

    https://learn.microsoft.com/en-us/windows/uwp/devices-sensors/enable-usermode-access

    Declare the device using ASL, and then try controlling it using a driver.

    Additionally, the following questions:

    1. Have you created a driver?
    2. What are the touchpad specifications?
    3. How do you connect the touchpad?

    Best Regards,
    Harry Chiu

  • PXIeMan
    PXIeMan New Member Posts: 2

    Hi Harry,
    Thanks for your response. Let me first answer your questions:

    1. I am planning to use the Microsoft HID over I2C driver (hidi2c.sys)
    2. Our touch screen is a fully compliant HID over I2C device.
    3. I connected the touchscreen controller I2C lines with physical wires connecting to the I2C0_SDA and I2C0_SCL on CN27. I also connected INTIO_GPIO5 to my touch controller interrupt line.

    With your previous Up Xtreme, we wrote a custom ACPI table entry and overloaded the ACPI tables in order to connect our device. I believe this is your current guidance to my question. However, I am having trouble executing the same process on the Up Xtreme i14.

    I noticed that your Up Xtreme i14 BIOS setting allow me to assign a "CUSTOM Device" and configure it as a Touch Screen device, assign it an I2C address, I2C bus speed. This creates a I2C HID Device in the Windows Device Manager, and I can see Windows and the host PC send out a HID Descriptor request, read the response, and then send out a HID Power Sleep command. In my previous experience with the Up Xtreme, the host would send out a HID reset command after the HID Descriptor, and wait for the interrupt line. In this case, I don't believe an interrupt line is assigned.

    What is missing from the BIOS configuration is how to select a specific GPIO to use as the interrupt line for this device.

    Do you know how to use this BIOS feature to setup a HID over I2C device including interrupt line selection?

  • FredyHsu
    FredyHsu Administrator, Moderator, AAEON Posts: 55 admin

    Hi @PXIeMan ,

    The standard BIOS on the UP Xtreme i14 does not include built‑in support for HID‑over‑I2C devices. It is possible to achieve this through a customized BIOS, but this would require NRE effort and additional development time. We would also need access to your device in order to complete the evaluation.

    Our engineer suggests that if you need Windows to access the device and receive I2C and GPIO interrupts, you may implement the required ASL/ACPI code on your side. Once the ASL implementation is in place, the system should operate as expected.

    Thank you,
    UP Team

Privacy Policy