All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/6] GPIO character device skeleton
@ 2015-10-22  8:32 Linus Walleij
  2015-10-22  8:32 ` [PATCH 1/6] gpio: make the gpiochip a real device Linus Walleij
                   ` (10 more replies)
  0 siblings, 11 replies; 71+ messages in thread
From: Linus Walleij @ 2015-10-22  8:32 UTC (permalink / raw)
  To: linux-gpio, Johan Hovold, Alexandre Courbot, Arnd Bergmann,
	Michael Welling, Markus Pargmann
  Cc: Mark Brown, Amit Kucheria, Linus Walleij

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


^ permalink raw reply	[flat|nested] 71+ messages in thread

end of thread, other threads:[~2016-02-10 10:04 UTC | newest]

Thread overview: 71+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-10-22  8:32 [PATCH 0/6] GPIO character device skeleton Linus Walleij
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

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.