The current versions of gpiod, libgpiod-dev and libgpiod2 (1.6.2-1) use version 1 of the GPIO character device API. However, they cannot work because the interface is disabled in the default kernel (tested with 5.13.19). After rebuilding the kernel with the option CONFIG_GPIO_CDEV_V1=y, the gpiod tools work as expected.
What I expect to happen:
$ gpiodetect
gpiochip0 [0-003c] (8 lines)
$ gpioinfo
gpiochip0 - 8 lines:
line 0: unnamed unused output active-high
line 1: unnamed unused output active-high
line 2: unnamed unused output active-high
line 3: unnamed unused output active-high
line 4: unnamed unused output active-high
line 5: unnamed unused output active-high
line 6: unnamed unused input active-high
line 7: unnamed unused input active-high
$ gpioget gpiochip0 0
1
The current versions of gpiod, libgpiod-dev and libgpiod2 (1.6.2-1) use version 1 of the GPIO character device API. However, they cannot work because the interface is disabled in the default kernel (tested with 5.13.19). After rebuilding the kernel with the option CONFIG_ GPIO_CDEV_ V1=y, the gpiod tools work as expected.
What I expect to happen:
$ gpiodetect
gpiochip0 [0-003c] (8 lines)
$ gpioinfo
gpiochip0 - 8 lines:
line 0: unnamed unused output active-high
line 1: unnamed unused output active-high
line 2: unnamed unused output active-high
line 3: unnamed unused output active-high
line 4: unnamed unused output active-high
line 5: unnamed unused output active-high
line 6: unnamed unused input active-high
line 7: unnamed unused input active-high
$ gpioget gpiochip0 0
1
What actually happens:
$ gpiodetect
gpiochip0 [0-003c] (8 lines)
$ gpioinfo
gpioinfo: error creating line iterator: Invalid argument
$ gpioget gpiochip0 0
gpioget: error reading GPIO values: Invalid argument
$ cat /proc/version_ signature 22.22-lowlatenc y 5.13.19
Ubuntu 5.13.0-
$ apt-cache policy libgpiod2 de.archive. ubuntu. com/ubuntu impish/universe amd64 Packages dpkg/status
libgpiod2:
Installed: 1.6.2-1
Candidate: 1.6.2-1
Version table:
*** 1.6.2-1 500
500 http://
100 /var/lib/
I am testing with the onboard PCA9554A on a Fujitsu D3641-S motherboard.
$ lspci | grep -i smb
00:1f.4 SMBus: Intel Corporation Cannon Lake PCH SMBus Controller (rev 10)
$ lspci -s 1f.4 -vvv
00:1f.4 SMBus: Intel Corporation Cannon Lake PCH SMBus Controller (rev 10)
DeviceName: Onboard - Other
Subsystem: Fujitsu Technology Solutions Cannon Lake PCH SMBus Controller
Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Interrupt: pin A routed to IRQ 16
Region 0: Memory at 6013106000 (64-bit, non-prefetchable) [size=256]
Region 4: I/O ports at efa0 [size=32]
Kernel driver in use: i801_smbus
Kernel modules: i2c_i801