I am trying to figure out how to use gpiod_get(), or one of its variants, to get the descriptor (struct gpio_desc *) for a specific GPIO. Getting a reference to the GPIO chip (struct gpio_chip *) is straightforward, and it provides a pointer to the device (.parent), but I absolutely cannot figure out what I am supposed to pass as the *con_id* argument. I know the offset of the GPIO on the chip, but I can't figure out how to use that. Ultimately, my goal is to set the direction of the GPIO from within a "board setup" module. BACKGROUND I maintain an out-of-tree "board" module[1] that sets up the GPIOs and LEDs on my Thecus NAS. I am in the process of upgrading the OS on the NAS, which will require me to change the user-space daemon from the old sysfs GPIO interface to the new (non-ancient?) gpiod interface. One significant difference between the sysfs and gpiod interfaces, is that the new interface does not seem to provide an easy way to set a GPIO's direction (input/output) from a shell script[2]. Thus, I would like the board module to do that, along with the other setup. [1] https://github.com/ipilcher/n5550/blob/master/modules/n5550_board.c [2] It may be possible to change a GPIO's direction from user space with the C API, but doing it in the kernel module, which does all of the other hardware configuration, seems like the most appropriate way. -- ======================================================================== Google Where SkyNet meets Idiocracy ======================================================================== _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies