none
SPBCx API's to access I2C slave [connected to Intel Platform Control Hub[PCH]] RRS feed

  • Question

  • Hi,

        I have a i2c slave device connected to PCH [platform controller Hub].

    I need to access it from Windows application [windows 10 OS]. in this regard, i have the following questions

    Windows application<--windows 10 os-->main intel chip <--OPI--> PCH <--I2C--> i2c client device.

    [1]. Add node [related to I2C slave details] in the ACPI statically. or use ASL Compiler to add it dynamically [run time] ?

    [2]. I2C controller [in the PCH] which is controlled by these Driver used by SPBCx APIs?

    [3] what is this simple peripheral bus? is it some software level virtual bus or is it related to the software path to the I2C controller?

    can you please relate simple peripheral bus to any hardware or path ?

    [4] if i understand rhproxy API's are only applicable only in WINDOWS IOT, not windows 10?

    [5] I2CTesttool works only on windows IOT. Can it be also used in windows 10?

    [6] Assuming i have a i2c slave device connected to PCH and ACPI is correctly populated with correct node details, can i use I2CTesttool?

    Thanks




    • Edited by RC Reddy Friday, April 3, 2020 7:17 PM
    Friday, April 3, 2020 7:08 PM

All replies

  • At this point in time, as far as I know, the libraries and APIs for accessing I2C devices are available only on Windows IoT (with the exception of the EDID stuff handled by graphics chips).  I don't think there is any way to get to an SMBus device without doing all of the infrastructure yourself.

    When you populate the ACPI nodes, do you see a driver assigned to that device in Device Manager?  Maybe I'm out of date.

    "Simple Peripheral Bus" is Microsoft's blanket term for the I2C, SPI, and UART devices that proliferate in the system-on-a-chip processors used in Windows IoT.


    Tim Roberts | Driver MVP Emeritus | Providenza &amp; Boekelheide, Inc.

    Monday, April 6, 2020 2:22 AM
  • Hi Tim,

              Thanks for reply.

    https://www.intel.com/content/dam/www/public/us/en/documents/datasheets/300-series-chipset-pch-datasheet-vol-1.pdf

    page 184/302

    The ISH supports three I2C controllers capable of operating at speeds up to 2.4 Mbps each. The I2C controllers are completely independent of each other: they do not share any pins, memory spaces, or interrupts. 

    [1] so the windows I2C skeleton sample example [https://docs.microsoft.com/en-us/samples/microsoft/windows-driver-samples/skeleton-i2c-sample-driver/] is for the ISH/PCH [Integrated Sensor Hub or Platform Control Hub] based I2C slave devices ?

    Thanks for explaining the "Simple peripheral bus" terminology.


    Tuesday, April 7, 2020 6:34 PM