Kernel Newbies archive mirror
 help / color / mirror / Atom feed
From: Ian Pilcher <arequipeno@gmail.com>
To: "linux-gpio@vger.kernel.org" <linux-gpio@vger.kernel.org>,
	kernelnewbies@kernelnewbies.org
Subject: gpiod_get() - How to get GPIO from chip & offset?
Date: Sun, 7 Aug 2022 09:55:32 -0500	[thread overview]
Message-ID: <d2c3cb8e-4042-13ad-4bb9-21b289ba773c@gmail.com> (raw)

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@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

             reply	other threads:[~2022-08-07 14:55 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-07 14:55 Ian Pilcher [this message]
2022-08-08 14:57 ` gpiod_get() - How to get GPIO from chip & offset? Andy Shevchenko
2022-08-08 15:00   ` Andy Shevchenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d2c3cb8e-4042-13ad-4bb9-21b289ba773c@gmail.com \
    --to=arequipeno@gmail.com \
    --cc=kernelnewbies@kernelnewbies.org \
    --cc=linux-gpio@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).