About accessing Intel GPIO pins

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux