linux-gpio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Linus Walleij <linus.walleij@linaro.org>
To: linux-gpio@vger.kernel.org, Johan Hovold <johan@kernel.org>,
	Alexandre Courbot <acourbot@nvidia.com>,
	Arnd Bergmann <arnd@arndb.de>,
	Michael Welling <mwelling@ieee.org>,
	Markus Pargmann <mpa@pengutronix.de>
Cc: Mark Brown <broonie@kernel.org>,
	Amit Kucheria <amit.kucheria@linaro.org>,
	Linus Walleij <linus.walleij@linaro.org>
Subject: [PATCH 0/6] GPIO character device skeleton
Date: Thu, 22 Oct 2015 10:32:24 +0200	[thread overview]
Message-ID: <1445502750-22672-1-git-send-email-linus.walleij@linaro.org> (raw)

OK so this is it, I had no patience waiting for users to come up
with this new ABI, and the requests for a way for userspace to
use GPIOs properly is coming up again and again. So I created the
basics for it, so we can then build on top of this to get things
right. I want to get these very first things right before we go
wild with setting/getting pin values etc.

We add ONE ioctl() to get information on the gpiochip. Now we can
do this (example from ux500):

root@Ux500:/ lsgpio
GPIO chip: a03fe000.gpio, 32 GPIO lines
GPIO chip: 8011e080.gpio, 32 GPIO lines
GPIO chip: 8011e000.gpio, 32 GPIO lines
GPIO chip: 8000e180.gpio, 32 GPIO lines
GPIO chip: 8000e100.gpio, 32 GPIO lines
GPIO chip: 8000e080.gpio, 32 GPIO lines
GPIO chip: 8000e000.gpio, 32 GPIO lines
GPIO chip: 8012e080.gpio, 32 GPIO lines
GPIO chip: 8012e000.gpio, 32 GPIO lines
GPIO chip: abx500-gpio, 42 GPIO lines
GPIO chip: tc3589x, 20 GPIO lines

Johan: I don't have a hot-pluggable GPIO controller :( can you
do me the favour of testing this and fixing my stupid refcounts
and race conditions? I only used my brain to try to get things
right with pluggable GPIO controllers in this patch set, and it
is bound to fail.

How to identify and manipulate individual GPIO lines from this
ABI is a *LATER* *QUESTION*, this is the bare essentials for
getting there: basic operations on the gpiochip device level.

Linus Walleij (6):
  gpio: make the gpiochip a real device
  gpio: refer to gpio device in prints and debugfs
  gpio: add a userspace chardev ABI for GPIOs
  tools/gpio: create GPIO tools
  gpio: add a userspace character device ABI
  gpio: ABI: mark the sysfs ABI as obsolete

 Documentation/ABI/obsolete/sysfs-gpio |  30 ++++++
 Documentation/ABI/testing/gpio-cdev   |  26 +++++
 Documentation/ABI/testing/sysfs-gpio  |  28 -----
 MAINTAINERS                           |   4 +
 drivers/gpio/gpiolib-sysfs.c          |   2 +-
 drivers/gpio/gpiolib.c                | 193 +++++++++++++++++++++++++++++++---
 drivers/gpio/gpiolib.h                |  12 +--
 include/linux/gpio/driver.h           |  11 +-
 include/uapi/linux/Kbuild             |   1 +
 include/uapi/linux/gpio.h             |  28 +++++
 tools/Makefile                        |   7 +-
 tools/gpio/Makefile                   |  12 +++
 tools/gpio/gpio-utils.c               |  11 ++
 tools/gpio/gpio-utils.h               |  25 +++++
 tools/gpio/lsgpio.c                   | 128 ++++++++++++++++++++++
 15 files changed, 462 insertions(+), 56 deletions(-)
 create mode 100644 Documentation/ABI/obsolete/sysfs-gpio
 create mode 100644 Documentation/ABI/testing/gpio-cdev
 delete mode 100644 Documentation/ABI/testing/sysfs-gpio
 create mode 100644 include/uapi/linux/gpio.h
 create mode 100644 tools/gpio/Makefile
 create mode 100644 tools/gpio/gpio-utils.c
 create mode 100644 tools/gpio/gpio-utils.h
 create mode 100644 tools/gpio/lsgpio.c

-- 
2.4.3


             reply	other threads:[~2015-10-22  8:32 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-22  8:32 Linus Walleij [this message]
2015-10-22  8:32 ` [PATCH 1/6] gpio: make the gpiochip a real device Linus Walleij
2015-10-24 18:09   ` Markus Pargmann
2015-10-25  7:06   ` Alexandre Courbot
2015-10-26  2:12     ` Mark Brown
2015-11-03 21:20     ` Linus Walleij
2015-11-02 10:31   ` Johan Hovold
2015-11-02 12:25     ` Mark Brown
2015-11-02 12:43       ` Johan Hovold
2015-11-02 12:47         ` Mark Brown
2015-11-02 12:53           ` Johan Hovold
2015-11-02 13:06             ` Mark Brown
2015-11-02 13:14               ` Johan Hovold
2015-11-02 13:17                 ` Mark Brown
2015-11-02 13:25                   ` Johan Hovold
2015-11-03 21:24     ` Linus Walleij
2015-11-04 10:48       ` Linus Walleij
2015-11-05  9:44         ` Johan Hovold
2015-11-05 10:29           ` Mark Brown
2015-11-16 14:27           ` Linus Walleij
2015-12-03 14:04             ` Linus Walleij
2015-12-03 14:06               ` Linus Walleij
2015-12-03 21:26                 ` Michael Welling
2015-12-04 22:31                 ` Michael Welling
2015-12-11 17:58                   ` Linus Walleij
2015-12-08  9:29               ` Johan Hovold
2015-12-11 18:06                 ` Linus Walleij
2015-10-22  8:32 ` [PATCH 2/6] gpio: refer to gpio device in prints and debugfs Linus Walleij
2015-10-22  8:32 ` [PATCH 3/6] gpio: add a userspace chardev ABI for GPIOs Linus Walleij
2015-10-22 20:35   ` Michael Welling
2015-10-24  0:30   ` Greg Kroah-Hartman
2016-01-28 11:13     ` Linus Walleij
2015-10-26  1:34   ` Mark Brown
2016-01-27 10:05   ` Bamvor Zhang Jian
2016-01-28 11:14     ` Linus Walleij
2016-01-29 10:24       ` Bamvor Zhang Jian
2016-02-10 10:04         ` Linus Walleij
2015-10-22  8:32 ` [PATCH 4/6] tools/gpio: create GPIO tools Linus Walleij
2015-10-25  8:23   ` Alexandre Courbot
2015-10-22  8:32 ` [PATCH 5/6] gpio: add a userspace character device ABI Linus Walleij
2015-10-24 18:46   ` Markus Pargmann
2015-10-22  8:32 ` [PATCH 6/6] gpio: ABI: mark the sysfs ABI as obsolete Linus Walleij
2015-10-22 18:57 ` [PATCH 0/6] GPIO character device skeleton Michael Welling
2015-10-24 17:53 ` Markus Pargmann
2015-10-30 14:40   ` Linus Walleij
2015-11-02 10:00     ` Johan Hovold
2015-10-24 18:42 ` Markus Pargmann
2015-10-30  1:55   ` Alexandre Courbot
2015-10-30 19:48     ` Linus Walleij
2015-11-02 10:13       ` Johan Hovold
2015-11-03  7:23         ` Markus Pargmann
2015-11-03 12:06           ` Johan Hovold
2015-11-03 17:18             ` Linus Walleij
2015-11-04 19:44               ` Michael Welling
2015-11-05  9:40               ` Johan Hovold
2015-11-05 14:11                 ` Linus Walleij
2015-11-06 10:21                   ` Johan Hovold
2015-11-16 13:33                     ` Linus Walleij
2015-11-03 17:05           ` Linus Walleij
2015-10-30 14:43   ` Linus Walleij
2015-10-30 22:54     ` Arnd Bergmann
2015-11-01  9:37       ` Linus Walleij
2015-11-02 10:16         ` Johan Hovold
2015-10-26  2:18 ` Mark Brown
2015-10-30  1:55 ` Alexandre Courbot
2015-10-30 19:47   ` Linus Walleij
2015-11-01  2:41     ` Mark Brown
2015-11-03  7:39       ` Markus Pargmann
2015-11-03  8:50         ` Mark Brown
2015-11-03 10:21           ` Amit Kucheria
2015-11-03 17:06           ` Linus Walleij

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=1445502750-22672-1-git-send-email-linus.walleij@linaro.org \
    --to=linus.walleij@linaro.org \
    --cc=acourbot@nvidia.com \
    --cc=amit.kucheria@linaro.org \
    --cc=arnd@arndb.de \
    --cc=broonie@kernel.org \
    --cc=johan@kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=mpa@pengutronix.de \
    --cc=mwelling@ieee.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 NNTP newsgroup(s).