Philips SC16IS750 Windows Driver

Hi,All

I want to develop a SMBus Device Driver for Windows[The chip is Philips
SC16IS750,slave IIC-bus interface to a single-channel high performance UART].
I never do SMBus Device Driver before,and want to get some help from some SMBus
Device Driver sample.

I have the driver for Linux and wanted to port it to Windows.
But I encountered great difficulties.

1 Accord to WDK,it is a SMB Client Driver.
But I didn’t find Philips SC16IS750 device in Device Manager,
so even if I have the Windows Driver,how can I install it?
Or do this in BIOS not in OS-level driver just like control SMBus controller?
[I searched in OSR,and found Jake Oshins said: control of the South Bridges SMBus controller always best resides with either the BIOS or some hardware management entity…]

2 I have read the document “SMBus Device Driver External Architecture
Specification” and Example:SMBus Enumeration and SMBus Request(code
fragment),but I’m still not very clear how to start to write the driver.
Can anyone give me some advice on how to start to write the driver?

Thanks.

Best Regards
Zhou Chengjun

Inline – pa

xxxxx@yahoo.com.cn wrote:

Hi,All

I want to develop a SMBus Device Driver for Windows[The chip is Philips
SC16IS750,slave IIC-bus interface to a single-channel high performance UART].
I never do SMBus Device Driver before,and want to get some help from some SMBus
Device Driver sample.

I have the driver for Linux and wanted to port it to Windows.

So does it work for you on same machine, under Linux?
Is the iic controller an add-on card, PCI or ISA/LPC?

But I encountered great difficulties.

1 Accord to WDK,it is a SMB Client Driver.
But I didn’t find Philips SC16IS750 device in Device Manager,
so even if I have the Windows Driver,how can I install it?

Maybe it is visible in System devices category?

Or do this in BIOS not in OS-level driver just like control SMBus controller?
[I searched in OSR,and found Jake Oshins said: control of the South Bridges SMBus controller always best resides with either the BIOS or some hardware management entity…]

2 I have read the document “SMBus Device Driver External Architecture
Specification” and Example:SMBus Enumeration and SMBus Request(code
fragment),but I’m still not very clear how to start to write the driver.
Can anyone give me some advice on how to start to write the driver?

Thanks.

Best Regards
Zhou Chengjun

Yes,it worked fine under Linux.
The iic controller is added in Intel 915 mainboard,attached to SMBus Interface.
I see "Intel(R) 82801G (ICH7 Family) SMBus Controller-27DA"in System devices category,
I clicked ?Driver details?,it show “The device do not need driver,and no driver has been load.”

xxxxx@yahoo.com.cn wrote:

Yes,it worked fine under Linux.
The iic controller is added in Intel 915 mainboard,attached to SMBus Interface.
I see "Intel(R) 82801G (ICH7 Family) SMBus Controller-27DA"in System devices category,
I clicked ?Driver details?,it show “The device do not need driver,and no driver has been load.”

Then I’ve misunderstood your question.
Your Philips device is slave connected to the SMB host on the Intel
mobo. Then I don’t have other answers besides what was discussed here
recently
(to summarize - the OS ACPI driver owns the IIC interface; there is no
supported way to put your foot in, except of developing an ACPI device
driver. )

Regards,
–PA

Thanks.You means that if I want to take control of the SMBus Interface,I must develop an ACPI device driver? [It’s called “IIC” in embedded system,“SMBus” in PC,right?]

Under Linux,I can use the kernel function such as “i2c_smbus_read_byte_data”,
“i2c_smbus_write_byte_data” in driver to do i2c_read,i2c_write.But in Windows I am puzzled.

xxxxx@yahoo.com.cn wrote:

Under Linux,I can use the kernel function such as “i2c_smbus_read_byte_data”,
“i2c_smbus_write_byte_data” in driver to do i2c_read,i2c_write.But in Windows I am puzzled.

Welcome to the club…

–PA

xxxxx@yahoo.com.cn wrote:

Thanks.You means that if I want to take control of the SMBus Interface,I must develop an ACPI device driver?

Well this was only my guess, based on the premise that
ACPI methods do access the SMB, so there is
some mechanism that ensures proper sync.
But I don’t know how AML code works with SMB without
a driver (as we’ve seen, the Intel in-box SMB driver is
only a placeholder for the controller resources),
maybe AML writes directly to i/o ports and doesn’t use the interrupt.
So in this case, it is the driver itself, so
you’d have to access it thru ACPI methods.

[It’s called “IIC” in embedded system,“SMBus” in PC,right?]

IIC is the underlying protocol, SMbus is based on it.

–pa