All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kent Gibson <warthog618@gmail.com>
To: linux-gpio@vger.kernel.org, bgolaszewski@baylibre.com
Cc: drew@pdp7.com
Subject: Re: [PATCH v6 0/7] gpio: expose line bias flags to userspace
Date: Tue, 5 Nov 2019 23:26:16 +0800	[thread overview]
Message-ID: <20191105152616.GA19978@sol> (raw)
In-Reply-To: <20191105020429.18942-1-warthog618@gmail.com>

On Tue, Nov 05, 2019 at 10:04:22AM +0800, Kent Gibson wrote:
> Patches are against Bart's gpio/for-kent branch[1].
> 
> The patch has been successfully tested against gpio-mockup, and 
> on a Raspberry Pi, in both cases using the feature/pud_set_config 
> branch of my Go gpiod library[2], as well as with my feature/pud 
> development branch of libgpiod[3].  Patch 7 has only been tested using 
> my gpiod library as libgpiod has not yet been updated to support the 
> SET_CONFIG ioctl.
> 

I've just pushed a first pass at SET_CONFIG support into my libgpiod 
feature/pud branch.  It is causing me a bit of grief.  Due to the way
the libgpiod API is structured, with the direction flags pulled out into 
the request type, I thought it would be cleaner to keep changes to direction 
orthogonal to changes to the other handle flags.

So I've added these methods to the API:

int gpiod_line_set_config(struct gpiod_line *line, int flags)
int gpiod_line_set_direction_input(struct gpiod_line *line)
int gpiod_line_set_direction_output(struct gpiod_line *line,
				    int value)

along with their bulk equivalents.

I've coded that and started adding tests when I tripped over changing
bias.  The kernel requires a direction to be set, but I'm setting it
as-is in gpiod_line_set_config - so that wont work.
Open drain/source are in the same boat - they require output mode.

I see these options:
 1. set the direction as part of gpiod_line_set_config
 2. relax the kernel restriction.
 3. don't support changing bias or open source/drain.
 4. rethink the API.

The first option requires caching the value set for outputs which I'm a
bit hesitant to do, though I'm not sure why - I've already added caching
of the handle flags for the direction functions.

Any preferences or suggestions?

Cheers,
Kent.

  parent reply	other threads:[~2019-11-05 15:26 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-05  2:04 [PATCH v6 0/7] gpio: expose line bias flags to userspace Kent Gibson
2019-11-05  2:04 ` [PATCH v6 1/7] gpio: expose pull-up/pull-down line " Kent Gibson
2019-11-05  2:04 ` [PATCH v6 2/7] gpiolib: add support for pull up/down to lineevent_create Kent Gibson
2019-11-05  2:04 ` [PATCH v6 3/7] gpiolib: add support for disabling line bias Kent Gibson
2019-11-05  2:04 ` [PATCH v6 4/7] gpiolib: add support for biasing output lines Kent Gibson
2019-11-06 19:39   ` Drew Fustini
2019-11-06 23:56     ` Kent Gibson
2019-11-05  2:04 ` [PATCH v6 5/7] gpio: mockup: add set_config to support pull up/down Kent Gibson
2019-11-05  2:04 ` [PATCH v6 6/7] gpiolib: move validation of line handle flags into helper function Kent Gibson
2019-11-05  2:04 ` [PATCH v6 7/7] gpio: add new SET_CONFIG ioctl() to gpio chardev Kent Gibson
2019-11-05 15:05 ` [PATCH v6 0/7] gpio: expose line bias flags to userspace Bartosz Golaszewski
2019-11-07  8:10   ` Linus Walleij
2019-11-05 15:26 ` Kent Gibson [this message]
2019-11-05 16:24   ` Bartosz Golaszewski
2019-11-05 21:07     ` Bartosz Golaszewski
2019-11-06  6:48       ` Kent Gibson
2019-11-06 13:59         ` Bartosz Golaszewski
2019-11-06 16:58           ` Kent Gibson
2019-11-06 17:06             ` Bartosz Golaszewski
2019-11-06 23:20               ` Kent Gibson
2019-11-07 10:39             ` Kent Gibson
2019-11-07 11:28               ` Bartosz Golaszewski
2019-11-07 12:18                 ` Kent Gibson
2019-11-05 23:15     ` Kent Gibson
2019-11-07 17:57 ` Bartosz Golaszewski
2020-04-15 14:03 ` boards to test gpio line bias flags? Drew Fustini

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=20191105152616.GA19978@sol \
    --to=warthog618@gmail.com \
    --cc=bgolaszewski@baylibre.com \
    --cc=drew@pdp7.com \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.