On Mon, May 3, 2021 at 3:20 PM Andy Shevchenko <andy.shevchenko@xxxxxxxxx> wrote: > Any shed of light what the difference is (between gpio_chip::ngpio and > gpio_dev::ngpio)? The one in gpio_dev::ngpio is used when referring to that struct so it could be renamed ndesc to clarify the usecase. The gpiochip ngpio i.e. gdev->chip->ngpio cannot be used, because sometimes the gpio_chip goes away but not the gpio_dev. A typical case when this happens is when a gpio_chip and corresponding gpio_dev is created by plugging in a USB-based gpio device such as FTDI. Then the user start some gpio-event-mon or gpio-hammer on that gpio_dev, flickering a LED or something. If the user unplugs the USB device, the gpio_chip will disappear and get "numbed" so that no operations reach the hardware, but the userspace program will not end or crash. When the user finals terminates the program with e.g. ctrl+C the character device is closed and gpio_dev goes away and for that the ngpio field is needed. Yours, Linus Walleij