# Help making I2C laptop touchpad working on 13-RELEASE



## DanDare (Sep 20, 2021)

Hi there,
My laptop is a Samsung https://bsd-hardware.info/?probe=daa7e68a1f and I'm trying to get touchpad working on X but no luck until now.
Been searching on the forum trying to follow things like https://forums.freebsd.org/threads/...good-except-of-that-one-thing-touchpads.79857 and instructions in https://github.com/wulf7/iichid

The touchpad is identified as:

```
iichid0: <ATML3000:10 03EB:2168 I2C HID device> at addr 0x4a irq 51 on iicbus0
hms0: <ATML3000:10 03EB:2168 Mouse> on hidbus0
hconf0: <ATML3000:10 03EB:2168 Configuration> on hidbus0
hmt0: <ATML3000:10 03EB:2168 TouchPad> on hidbus0
```

It's listed in mouse/touchpad setup under Xfe4 (attached screenshot), I can change the settings, enable or disable but no moving pointer at all.
It has 'dev.iichid.0.sampling_rate_slow: -1'

*'libinput list-devices' output is:*

```
Device:           System mouse
Kernel:           /dev/input/event0
Group:            1
Seat:             seat0, default
Capabilities:     pointer
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      disabled
Nat.scrolling:    disabled
Middle emulation: disabled
Calibration:      n/a
Scroll methods:   button
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   flat *adaptive
Rotation:         n/a

Device:           System keyboard multiplexer
Kernel:           /dev/input/event1
Group:            2
Seat:             seat0, default
Capabilities:     keyboard
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           Control Method Lid Switch
Kernel:           /dev/input/event2
Group:            3
Seat:             seat0, default
Capabilities:     switch
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
irq1: atkbd0                           0          0
irq9: acpi0                            0          0
irq16: ig4iic0+                        0          0
irq51: iichid0                      4361       4297
cpu0:timer                            92         91
cpu1:timer                            27         27
cpu2:timer                            32         32
cpu3:timer                            19         19
cpu4:timer                          1142       1125
cpu5:timer                             1          1
cpu6:timer                            62         61
cpu7:timer                            30         30
irq128: xhci0                       2043       2013
irq129: ahci0                         55         54
irq130: re0                            2          2
irq131: hdac0                          0          0
irq132: vgapci0                       73         72
Total                               7939       7822
[CODE]irq1: atkbd0                           0          0
irq9: acpi0                            0          0
irq16: ig4iic0+                        0          0
irq51: iichid0                      4361       4297
cpu0:timer                            92         91
cpu1:timer                            27         27
cpu2:timer                            32         32
cpu3:timer                            19         19
cpu4:timer                          1142       1125
cpu5:timer                             1          1
cpu6:timer                            62         61
cpu7:timer                            30         30
irq128: xhci0                       2043       2013
irq129: ahci0                         55         54
irq130: re0                            2          2
irq131: hdac0                          0          0
irq132: vgapci0                       73         72
Total                               7939       7822
```

I tried creating mouse entries explicitly in a xorg conf file pointing to /dev/input/event7 and still no go.

A interesting thing is right after booting, doing nothing but just letting laptop to idle interrupts causes quite high CPU (12,2%)
vmstat -i -c 10 shows every second

```
irq1: atkbd0                           0          0
irq9: acpi0                            0          0
irq16: ig4iic0+                        0          0
irq51: iichid0                      4361       4297
cpu0:timer                            92         91
cpu1:timer                            27         27
cpu2:timer                            32         32
cpu3:timer                            19         19
cpu4:timer                          1142       1125
cpu5:timer                             1          1
cpu6:timer                            62         61
cpu7:timer                            30         30
irq128: xhci0                       2043       2013
irq129: ahci0                         55         54
irq130: re0                            2          2
irq131: hdac0                          0          0
irq132: vgapci0                       73         72
Total                               7939       7822
```

Considering pointer is not even moving should I still go try the "Choosing of optimal sampling rate for I2C transport" part?
Any clues? Am I missing anything obvious?

Also, perhaps this is something for a new threat but: Want to know how completely disable the device in the hope it stops eating CPU so I can try better battery autonomy (Didnt try this part yet)

Thanks!


----------



## DanDare (Sep 20, 2021)

Ok. For now, adding hint.iichid.0.disabled="1" to /boot/loader.conf stops high interrupts count. Interrupts idle at 0.1% instead of 12% CPU


----------



## x8ss (Dec 1, 2021)

I have samsung 530X and I’m having the same issue, weirdly enough, booting on ghostBSD xfce4 edition makes my touchpad work fine. I’ve tried to find out what is making it work on ghostBSD and apply to my freeBSD with no luck. I’ve tried to copy some settings on rc.conf, sysctl.conf, loader.conf and xorg.conf from ghostBSD but i guess the answer aint on those files.


----------

