Author Topic: Mouse, Trackpoint, Trackpad, Touchpad - I2C Question  (Read 2224 times)

Martin Iturbide

  • OS2World NewsMaster
  • Global Moderator
  • Hero Member
  • *****
  • Posts: 5026
  • Karma: +44/-1
  • Your Friend Wil Declares...
    • View Profile
    • Martin's Personal Blog
Mouse, Trackpoint, Trackpad, Touchpad - I2C Question
« on: October 27, 2024, 12:15:16 am »
Hello

At Warpstock I was talking to Lewis about ArcaOS mouse support, and how annoying is the issus that we love the trackpoint, but the trackpad (touchpad) is a problem to us because we don't have the "Ignore Palm rest" feature that the Thinkpad utilities support. Yes, we can disable the trackpad if it is available on the BIOS, but I said that it will be more elegant to have a way to disable with software (like in other platforms).

Lewis talk about that the Trackpoint and Trackpad is connected via I2C and that I may open a ticket to see if AMouse may support to disable the trackpad in the future.

But I want to know more about I2C.  (I guess is this one https://en.wikipedia.org/wiki/I%C2%B2C )
- Is there a way to list (just like pci.exe or lsusb.exe) the devices that are plugged in I2C ? Under OS/2, or even Windows.
I would like to know if there is a way to recognize which chipset is installed on my machine and see which models are the most common for us.

Regards
« Last Edit: October 28, 2024, 08:19:08 pm by Martin Iturbide »
Martin Iturbide
OS2World NewsMaster
... just share the dream.

Mentore

  • Full Member
  • ***
  • Posts: 226
  • Karma: +11/-0
    • View Profile
Re: Mouse, Trackpoint, Trackpad, Touchpad - I2C Question
« Reply #1 on: October 29, 2024, 08:18:33 am »
Hello

At Warpstock I was talking to Lewis about ArcaOS mouse support, and how annoying is the issus that we love the trackpoint, but the trackpad (touchpad) is a problem to us because we don't have the "Ignore Palm rest" feature that the Thinkpad utilities support. Yes, we can disable the trackpad if it is available on the BIOS, but I said that it will be more elegant to have a way to disable with software (like in other platforms).

Lewis talk about that the Trackpoint and Trackpad is connected via I2C and that I may open a ticket to see if AMouse may support to disable the trackpad in the future.

But I want to know more about I2C.  (I guess is this one https://en.wikipedia.org/wiki/I%C2%B2C )
- Is there a way to list (just like pci.exe or lsusb.exe) the devices that are plugged in I2C ? Under OS/2, or even Windows.
I would like to know if there is a way to recognize which chipset is installed on my machine and see which models are the most common for us.

Regards

Hi Martin,
I found this for now:
https://github.com/mozilla-b2g/i2c-tools/blob/master/tools/i2cdetect.c

Since this uses the linux kernel, it may be impossible even to compile it under OS/2.
Let me take a look later in the morning (here in Italy it's 8.18 AM).
Mentore

- Update -
As I thought, no results.
All projects use some special Linux OS driver, so I can't even start compiling.

Mentore
« Last Edit: October 29, 2024, 11:13:45 am by Mentore »

Martin Iturbide

  • OS2World NewsMaster
  • Global Moderator
  • Hero Member
  • *****
  • Posts: 5026
  • Karma: +44/-1
  • Your Friend Wil Declares...
    • View Profile
    • Martin's Personal Blog
Re: Mouse, Trackpoint, Trackpad, Touchpad - I2C Question
« Reply #2 on: October 29, 2024, 03:18:05 pm »
Thanks Mentore for taking a look at it.

I feel ashamed of myself that I just found out that I2C exists and the wikipedia page says it is from 1982.

Why I want to know more about I2C and be able to take some kind of hardware report from it? I would like to see if just like pci.exe we can recognize the several trackpoint/trackpad brands/moedls like Synaptics, Elan or ALPS that we usually have on Thinkpads.

Regards
Martin Iturbide
OS2World NewsMaster
... just share the dream.

Mentore

  • Full Member
  • ***
  • Posts: 226
  • Karma: +11/-0
    • View Profile
Re: Mouse, Trackpoint, Trackpad, Touchpad - I2C Question
« Reply #3 on: October 30, 2024, 08:41:01 am »
Thanks Mentore for taking a look at it.

I feel ashamed of myself that I just found out that I2C exists and the wikipedia page says it is from 1982.

Why I want to know more about I2C and be able to take some kind of hardware report from it? I would like to see if just like pci.exe we can recognize the several trackpoint/trackpad brands/moedls like Synaptics, Elan or ALPS that we usually have on Thinkpads.

Regards

This is indeed interesting because I2C is a nasty little creature lying and working under the hood. I really am not sure if there's something under OS/2 able to directly work on it, even as a bunch of IOCTLs (I am rather sure it needs a ring 0 driver).

Hobbes archive contains basically 0 elements, the same goes for eCSoft/2 so I'm afraid we're in the same situation of the bluetooth stack. Sad but we get to work with what we have available.
Mentore

Andi B.

  • Hero Member
  • *****
  • Posts: 873
  • Karma: +14/-2
    • View Profile
Re: Mouse, Trackpoint, Trackpad, Touchpad - I2C Question
« Reply #4 on: October 30, 2024, 10:19:35 am »
I²C is a Philips Inter IC Bus invented decades ago. But it was not used in PC at the beginning. At least not at OS (not even DOS) level. Beside that a lot of ICs are talk I²C and so some of them are used in some motherboards too. Temperature sensors f.i. Said that, I think you should not concentrate on a bus or the bus protocol (I²C), you wanna support for a specific device. I²C can address more then 100 different device addresses on the same bus. Moreover each one speaks a specific control set (registers) which you have to know how to program and read.

What I wanna say is you don't need to understand (program) I²C only, you need the exact register settings of the specific devices. Let's say you need a device driver for your specific touch. But you also need to find a way how YOUR Bios is able to talk to this device. There are no standardizes ways in PC (BIOS) to talk to I²C devices (AFAIK). You have to find out where is the I²C bus master integrated in your Notebook. Is it in the south bridge or the north bridge (no clue if this even exists in new PCs) or if there is on connected via USB hub, or via the legacy (ISA) interface which seem to exist even in new processor designs although most of them do not make ISA available as a socket?

That said, I've designed in and programmed numerous I²C devices outside PCs. I also programmed them with PCs via parallel port and with own build in PC ISA cards. But I don't know how some specific sensors or other devices in notebooks are connected to the PC hardware. Nor did I ever saw standard BIOS calls to support something like that.

Wim Brul

  • Sr. Member
  • ****
  • Posts: 300
  • Karma: +26/-0
    • View Profile
    • Wim's home page
Re: Mouse, Trackpoint, Trackpad, Touchpad - I2C Question
« Reply #5 on: October 30, 2024, 11:38:13 am »
Article Device Bus Connectivity (touchpad-device-bus-connectivity) discusses bus connectivity methods for a Windows Precision Touchpad device.

Lars

  • Hero Member
  • *****
  • Posts: 1367
  • Karma: +70/-0
    • View Profile
Re: Mouse, Trackpoint, Trackpad, Touchpad - I2C Question
« Reply #6 on: November 04, 2024, 10:37:09 am »
Question is: how does the I2C controller interface to the PC system?

Does the I2C controller show up as a PCI device ? Is there a standardized set of (io mapped or memory mapped) registers or some such to talk to the I2C controller ?
I also cannot find any information on how to unambiguously identify a device on the I2C bus. You can scan the I2C bus and see what device addresses are in use but not exactly what device (like for USB, the vendor and product id ...).

That seems to be pretty proprietary, from what I can tell all scan code for I2C devices guesses the device by its typical address use.
« Last Edit: November 04, 2024, 10:41:11 am by Lars »

Martin Iturbide

  • OS2World NewsMaster
  • Global Moderator
  • Hero Member
  • *****
  • Posts: 5026
  • Karma: +44/-1
  • Your Friend Wil Declares...
    • View Profile
    • Martin's Personal Blog
Re: Mouse, Trackpoint, Trackpad, Touchpad - I2C Question
« Reply #7 on: November 29, 2024, 05:10:38 pm »
Hello

On my T14s I have an ELAN trackpoint. Windows recognize the device as "04F3" which is the ELAN's Vendor ID.
The Testlog PCI report does not show anything with "04F3".

I guess Windows has something to query the I2C bus. But looking around everyone refers to linux's I2C Tools.

I also try to find more information, but I guess it is getting out my technical skills and getting more into the hardware world.
https://forums.freebsd.org/threads/making-i2c-elan-touchpad-work-elan0d07-00-04f3-3078-on-a3511.86749/
https://man.freebsd.org/cgi/man.cgi?query=i2c

Regards

« Last Edit: November 29, 2024, 05:18:34 pm by Martin Iturbide »
Martin Iturbide
OS2World NewsMaster
... just share the dream.

Flashback

  • Newbie
  • *
  • Posts: 13
  • Karma: +4/-1
    • View Profile
Re: Mouse, Trackpoint, Trackpad, Touchpad - I2C Question
« Reply #8 on: November 30, 2024, 11:18:24 am »
I guess Windows has something to query the I2C bus. But looking around everyone refers to linux's I2C Tools.
As others pointed out, devices on the I2C are not detectable. The Linux tools can only tell, if there is something responding on a given bus address, not what that is.
The usual way make undetectable devices known to an OS is to mention them in the ACPI tables or - on embedded Linux - in the device tree. Ideally, including information on how to access them. I'm pretty sure, that this is the way Windows and Linux learn about these devices.

Rich Walsh

  • Sr. Member
  • ****
  • Posts: 370
  • Karma: +24/-0
  • ONU! (OS/2 is NOT Unix!)
    • View Profile
Re: Mouse, Trackpoint, Trackpad, Touchpad - I2C Question
« Reply #9 on: December 01, 2024, 12:09:16 am »
The usual way make undetectable devices known to an OS is to mention them in the ACPI tables

'testlog acpi' should give you everything you need to find out - its just a matter of figuring out what it means :)