Embedded Connectivity
Intel network controllers, Firmware, and drivers support systems
850 Discussions

Access to Serial IO I2C Host Controller on WhiskeyLake

htaka30
Beginner
4,497 Views

Hi,

 

We connected an EEPROM to I2C Host Controller and we want to access to the ROM via I2C.

 

Our system is Windows 10 LTSC 2018 64-bit.

Processor: Intel(R) Core i5-8365U (WhiskeyLake)

Target device name: Intel(R) Serial IO I2C Host Contoroller - 9DE8

Hardware IDs:

PCI\VEN_8086&DEV_9DE8&SUBSYS_72708086&REV_30

PCI\VEN_8086&DEV_9DE8&SUBSYS_72708086

PCI\VEN_8086&DEV_9DE8&CC_0C8000

PCI\VEN_8086&DEV_9DE8&CC_0C80

Inf name: iaLPSS2i_I2C_CNL.inf

Installed driver: iaLPSS2i_I2C_CNL.sys

 

I know the way to access any device using Device Interface GUID and SetupDi fucntions for getting device path and CreateFile fucntion to open the device.

But I can't find Device Interface GUID for the controller.

Could you tell me the Device GUID for the controller?

Or How can I access to the controller without Device Interface GUID?

 

0 Kudos
11 Replies
CarlosAM_INTEL
Moderator
4,040 Views

Hello, @htaka30​:

 

Thank you for contacting Intel Embedded Community.

 

Could you please let us know if the design related to this thread has been developed by you or it is a third-party device? In case that it is a third-party unit, please let us know the part number, model, name of the manufacturer, and where is stated the information related to it.

 

We are waiting for your reply.

@Mæcenas_INTEL​.

0 Kudos
htaka30
Beginner
4,040 Views

Hi @Mæcenas_INTEL​,

 

Thank you for reply.

The system is developing by ourselves and not released yet.

 

0 Kudos
CarlosAM_INTEL
Moderator
4,038 Views

Hello, @htaka30​:

 

Thanks for your answer.

 

Could you please let us know the sources that you have used to design the project related to this thread?

 

Could you please clarify it has been verified by Intel?

 

We are waiting for your clarification.

 

Best regards,

@Mæcenas_INTEL​.

0 Kudos
htaka30
Beginner
4,038 Views

Hello @Mæcenas_INTEL​,

 

The sources you mean is the driver?

I found the following information from property of iaLPSSi_i2C_CNL.sys.

File description: Intel(R) Serial IO I2C Driver v2

File version: 30.100.1816.3

Copyright @2015, Intel Corporation.

Data modified 9/15/2018

 

I heard that this driver come from Intel Early Access Program.

So, I'm not sure the vitrification completed.

0 Kudos
CarlosAM_INTEL
Moderator
4,038 Views

Hello, @htaka30​:

 

Thanks for your reply.

 

Please let me paraphrase my first question of my previous communication, could you please let us know where are stated the guidelines to design the project related to this thread?

 

We are waiting for your reply.

 

Best regards,

@Mæcenas_INTEL​.

0 Kudos
htaka30
Beginner
4,039 Views

Hi @Mæcenas_INTEL​ ,

 

 

I'm sorry, I'm no sure about the project and guidelines.

 

My mission is make an application to access EEPROM via Serial IO I2C Host Contoroller.

 

Could you give me a sample code for that?

 

0 Kudos
CarlosAM_INTEL
Moderator
4,039 Views

Hello, @htaka30​:

 

Thanks for your update.

 

I²C and SPI drivers use the Microsoft* framework called simple peripheral bus (SpbCx) to use the I²C/SPI controller, there must be a sub-device mounted under the specific I²C/SPI controller. A user mode application can open this sub-device by using its symbolic name or GUID, and send IOCTLs or requests to it. Only then, this sub-device can open parent target (I²C/SPI controller) and forward IOCTLs or requests to SpbCx framework, thus to the I²C/SPI controller driver. Refer to the following for the Microsoft framework:

 

https://docs.microsoft.com/en-us/windows-hardware/drivers/spb/spb-framework-extension

 

Here is a sample pack from Microsoft, within it you may find the sample code on how to write the sub-device driver mounted under the I²C/SPI controller, to open its parent and forward requests:

 

https://code.msdn.microsoft.com/windowshardware/

 

The description of supported IOCTLs is here:

 

https://docs.microsoft.com/en-us/previous-versions//hh450915(v=vs.85)

 

Best regards,

@Mæcenas_INTEL​.

0 Kudos
htaka30
Beginner
4,039 Views

Hi @Mæcenas_INTEL​ ,

 

Thank you for your replay and I'm sorry to late reply.

I can access to EEPROM by your mentioned way.

 

0 Kudos
CarlosAM_INTEL
Moderator
4,040 Views

Hello, @htaka30​:

 

Thanks for tour feedback.

 

We are glad that your inconvenience has been solved.

 

Best regards,

@Mæcenas_INTEL​ 

0 Kudos
Huuuyen
Beginner
3,329 Views

hello @htaka30 

I want to access to Serial IO I2C Host Controller on Apollo Lake

We connected an FRAM to I2C Host Controller and we want to access to the FRAM via I2C.
Our system is Windows 10 Enterprise LTSC 64-bit.
Processor: Intel(R) ATom(TM) Processor E3930 
Target device name: Intel(R) Serial IO I2C Host Contoroller - 5AAC
Installed driver: iaLPSS2i_I2C.sys

My understanding of Windows is very little.
Could you give me a sample code for that?

0 Kudos
CarlosAM_INTEL
Moderator
3,299 Views

Hello, @Huuuyen:

Thank you for contacting Intel Embedded Community.

I²C and SPI drivers use the Microsoft* framework called simple peripheral bus (SpbCx) to use the I²C/SPI controller, there must be a sub-device mounted under the specific I²C/SPI controller. A user mode application can open this sub-device by using its symbolic name or GUID, and send IOCTLs or requests to it. Only then, this sub-device can open parent target (I²C/SPI controller) and forward IOCTLs or requests to SpbCx framework, thus to the I²C/SPI controller driver. Refer to the following for the Microsoft framework:

https://docs.microsoft.com/en-us/windows-hardware/drivers/spb/spb-framework-extension

Here is a sample pack from Microsoft, within it you may find the sample code on how to write the sub-device driver mounted under the I²C/SPI controller, to open its parent and forward requests:

https://code.msdn.microsoft.com/windowshardware/

The description of supported IOCTLs is here:

https://docs.microsoft.com/en-us/previous-versions//hh450915(v=vs.85)

Best regards,

@CarlosAM_INTEL.

0 Kudos
Reply