Hi list, Chinese manufacturers produce so-called "fanless", "industrial" PCs, and they advertise that they have GPIO pins available to be used as digital inputs, for example. In reality it seems that reading these pins is rather.. low level and complicated, in sort of "hidden" way. They connect external GPIO panels directly to CPU. One manufacturer managed to get for us some sort of examples, and with their help we could read Skylake GPIO pins, by: 1. mmap()'ing 0xfdae0000 2. adding offset 0x100 3. calculating individual offsets for each pin with some basic multiplication. Then, I could write some specific values into final pin address to enable input mode, and then later read (poll) actual value. Now we got different machines, Kabylake not Skylake, and had to "fight" to get some examples too... It seems it's same 0xfdae0000 but with different constant offset, different port offests used, etc... I wonder, aren't there some sort of more generic way for accessing Intel GPIO (should I call it PCH GPIO?) pins? I don't see Skylake/Kabylake gpio driver in [1], but I see some sort of "pinctrl" Intel drivers in [2]. I have rebuilt Debian 11's kernel with additional configs: ``` CONFIG_GPIOLIB=y CONFIG_GPIO_F7188X=y CONFIG_GPIO_IT87=y CONFIG_GPIO_PCH=y CONFIG_GPIO_ICH=y CONFIG_PINCTRL_INTEL=y ``` Though still don't see how to access Intel GPIO. gpiodetect does not list them. We indeed can use gpiod to read the pins if we get device with F7188X or IT87 family chips, and it works fine, but is there a way to somehow make Intel pins available via gpiod too? Thanks! [1] https://github.com/torvalds/linux/tree/master/drivers/gpio [2] https://github.com/torvalds/linux/tree/master/drivers/pinctrl/intel