[GIT PULL] GPIO bulk changes for the v5.10 kernel series
From: Linus Walleij
Date: Tue Oct 13 2020 - 05:49:50 EST
Hi Linus,
here is the bulk of GPIO changes for the v5.10 kernel.
This time very little driver changes but lots of core changes.
Details in the signed tag. We have some interesting cooperative
work for ARM and Intel alike, making the GPIO subsystem
more and more suitable for industrial systems and the like,
in addition to the in-kernel users.
We touch driver core (device properties) and lib/* by adding one
simple string array free function, these are authored by Andy
Shevchenko who is a well known and recognized core
helpers maintainers so this should be fine.
We also see some Android GKI-related modularization in the
MXC drivers.
I foresee a merge conflict in drivers/gpio/gpio-mockup.c
due to things merged into the release candidate. The merge
should be trivial and pertains to using pr_fmt and
numerical return values: what's on my branch goes and that
is also the resolution you find in linux-next.
Please pull it in!
Yours,
Linus Walleij
The following changes since commit 9123e3a74ec7b934a4a099e98af6a61c2f80bbf5:
Linux 5.9-rc1 (2020-08-16 13:04:57 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git
tags/gpio-v5.10-1
for you to fetch changes up to fc709df553a34fd18010f52e6b47652268d83e7d:
gpiolib: Update header block in gpiolib-cdev.h (2020-10-08 22:57:16 +0200)
----------------------------------------------------------------
GPIO bulk changes for the v5.10 kernel cycle:
Core changes:
- The big core change is the updated (v2) userspace character
device API. This corrects badly designed 64-bit alignment around
the line events. We also add the debounce request feature.
This echoes the often quotes passage from Frederick Brooks
"The mythical man-month" to always throw one away, which we
have seen before in things such as V4L2. So we put in a new
one and deprecate and obsolete the old one.
- All example tools in tools/gpio/* are migrated to the new API
to set a good example. The libgpiod userspace library has been
augmented to use this new API pretty much from day 1.
- Some misc API hardening by using strn* function calls has been
added as well.
- Use the simpler IDA interface for GPIO chip instance enumeration.
- Add device core function for counting string arrays in
device properties.
- Provide a generic library function kfree_strarray() that can
be used throughout the kernel.
Driver enhancements:
- The DesignWare dwapb-gpio driver has been enhanced and now
uses the IRQ handling in the gpiolib core.
- The mockup and aggregator drivers have seen some substantial
code clean-up and now use more of the core kernel
inftrastructure.
- Misc cleanups using dev_err_probe().
- The MXC drivers (Freescale/NXP) can now be built modularized,
which makes modularized GKI Android kernels happy.
----------------------------------------------------------------
Aleksander Jan Bajkowski (1):
gpio: stp-xway: automatically drive GPHY leds on ar10 and grx390
Andy Shevchenko (3):
gpio: aggregator: Refactor ->{get, set}_multiple() to make Sparse happy
gpiolib: convert to use DEFINE_SEQ_ATTRIBUTE macro
gpiolib: Update header block in gpiolib-cdev.h
Anson Huang (1):
gpio: mxc: Support module build
Bartosz Golaszewski (16):
gpiolib: switch to simpler IDA interface
device: property: add helpers to count items in string arrays
gpiolib: generalize devprop_gpiochip_set_names() for device properties
gpiolib: unexport devprop_gpiochip_set_names()
gpiolib: check for parent device in devprop_gpiochip_set_names()
gpio: mockup: fix resource leak in error path
lib: string_helpers: provide kfree_strarray()
Documentation: gpio: add documentation for gpio-mockup
gpio: mockup: drop unneeded includes
gpio: mockup: use KBUILD_MODNAME
gpio: mockup: use pr_fmt()
gpio: mockup: remove unneeded return statement
gpio: mockup: increase the number of supported device properties
gpio: mockup: pass the chip label as device property
gpio: mockup: use the generic 'gpio-line-names' property
gpio: mockup: refactor the module init function
Kent Gibson (21):
gpiolib: cdev: gpio_desc_to_lineinfo() should set info offset
gpiolib: cdev: replace strncpy() with strscpy()
gpio: uapi: define GPIO_MAX_NAME_SIZE for array sizes
gpio: uapi: define uAPI v2
gpiolib: make cdev a build option
gpiolib: add build option for CDEV v1 ABI
gpiolib: cdev: support GPIO_V2_GET_LINE_IOCTL and
GPIO_V2_LINE_GET_VALUES_IOCTL
gpiolib: cdev: support GPIO_V2_GET_LINEINFO_IOCTL and
GPIO_V2_GET_LINEINFO_WATCH_IOCTL
gpiolib: cdev: support edge detection for uAPI v2
gpiolib: cdev: support GPIO_V2_LINE_SET_CONFIG_IOCTL
gpiolib: cdev: support GPIO_V2_LINE_SET_VALUES_IOCTL
gpiolib: cdev: support setting debounce
gpio: uapi: document uAPI v1 as deprecated
tools: gpio: port lsgpio to v2 uAPI
tools: gpio: port gpio-watch to v2 uAPI
tools: gpio: rename nlines to num_lines
tools: gpio: port gpio-hammer to v2 uAPI
tools: gpio: port gpio-event-mon to v2 uAPI
tools: gpio: add multi-line monitoring to gpio-event-mon
tools: gpio: add debounce support to gpio-event-mon
gpiolib: cdev: switch from kstrdup() to kstrndup()
Krzysztof Kozlowski (15):
gpio: bcm-kona: Simplify with dev_err_probe()
gpio: davinci: Simplify with dev_err_probe()
gpio: omap: Simplify with dev_err_probe()
gpio: pca953x: Simplify with dev_err_probe()
gpio: pisosr: Simplify with dev_err_probe()
gpio: zynq: Simplify with dev_err_probe()
dt-bindings: gpio: fsl-imx-gpio: Add i.MX 8 compatibles
dt-bindings: gpio: fsl-imx-gpio: Add gpio-ranges property
dt-bindings: gpio: fsl-imx-gpio: Add parsing of hogs
dt-bindings: gpio: fsl-imx-gpio: Add power-domains
dt-bindings: gpio: pl061: add gpio-line-names
dt-bindings: gpio: fsl-imx-gpio: add i.MX ARMv6 and ARMv7 compatibles
dt-bindings: gpio: fsl-imx-gpio: add gpio-line-names
dt-bindings: gpio: convert bindings for NXP PCA953x family to dtschema
dt-bindings: gpio: convert bindings for Maxim MAX732x family to dtschema
Lad Prabhakar (1):
dt-bindings: gpio: renesas, rcar-gpio: Add r8a774e1 support
Linus Walleij (3):
Merge tag 'imx-gpio-5.10' of
https://git.kernel.org/.../krzk/linux into devel
Merge tag 'gpio-updates-for-v5.10-part1' of
git://git.kernel.org/.../brgl/linux into devel
Merge tag 'gpio-updates-for-v5.10-part2' of
git://git.kernel.org/.../brgl/linux into devel
Mauro Carvalho Chehab (1):
docs: gpio: add a new document to its index.rst
Michael Walle (1):
gpio: mpc8xxx: simplify ls1028a/ls1088a support
Mike Looijmans (1):
gpio: pca953x: Add support for the NXP PCAL9554B/C
Necip Fazil Yildiran (1):
pinctrl: bcm: fix kconfig dependency warning when !GPIOLIB
Serge Semin (10):
dt-bindings: gpio: dwapb: Add ngpios property support
gpio: dwapb: Add ngpios DT-property support
gpio: dwapb: Move MFD-specific IRQ handler
gpio: dwapb: Add max GPIOs macro
gpio: dwapb: Convert driver to using the GPIO-lib-based IRQ-chip
gpio: dwapb: Discard GPIO-to-IRQ mapping function
gpio: dwapb: Discard ACPI GPIO-chip IRQs request
gpio: dwapb: Get reset control by means of resource managed interface
gpio: dwapb: Get clocks by means of resource managed interface
gpio: dwapb: Use resource managed GPIO-chip add data method
dillon min (1):
gpio: tc35894: Disable Direct KBD interrupts to enable gpio irq
Documentation/admin-guide/gpio/gpio-mockup.rst | 50 +
Documentation/admin-guide/gpio/index.rst | 1 +
.../devicetree/bindings/gpio/fsl-imx-gpio.yaml | 55 +-
.../devicetree/bindings/gpio/gpio-max732x.txt | 58 -
.../devicetree/bindings/gpio/gpio-pca953x.txt | 90 --
.../devicetree/bindings/gpio/gpio-pca95xx.yaml | 232 +++
.../devicetree/bindings/gpio/pl061-gpio.yaml | 3 +
.../bindings/gpio/renesas,rcar-gpio.yaml | 1 +
.../devicetree/bindings/gpio/snps,dw-apb-gpio.yaml | 6 +
.../devicetree/bindings/trivial-devices.yaml | 4 -
drivers/gpio/Kconfig | 33 +-
drivers/gpio/Makefile | 3 +-
drivers/gpio/gpio-aggregator.c | 70 +-
drivers/gpio/gpio-bcm-kona.c | 5 +-
drivers/gpio/gpio-davinci.c | 8 +-
drivers/gpio/gpio-dwapb.c | 352 ++---
drivers/gpio/gpio-mockup.c | 160 +-
drivers/gpio/gpio-mpc8xxx.c | 45 +-
drivers/gpio/gpio-mxc.c | 6 +
drivers/gpio/gpio-omap.c | 5 +-
drivers/gpio/gpio-pca953x.c | 11 +-
drivers/gpio/gpio-pisosr.c | 9 +-
drivers/gpio/gpio-stp-xway.c | 54 +-
drivers/gpio/gpio-tc3589x.c | 18 +-
drivers/gpio/gpio-zynq.c | 8 +-
drivers/gpio/gpiolib-acpi.c | 3 -
drivers/gpio/gpiolib-cdev.c | 1542 +++++++++++++++++---
drivers/gpio/gpiolib-cdev.h | 19 +-
drivers/gpio/gpiolib-devprop.c | 63 -
drivers/gpio/gpiolib-of.c | 5 -
drivers/gpio/gpiolib.c | 89 +-
drivers/gpio/gpiolib.h | 6 +
drivers/pinctrl/bcm/Kconfig | 1 +
include/linux/gpio/driver.h | 3 -
include/linux/mfd/tc3589x.h | 6 +
include/linux/platform_data/gpio-dwapb.h | 4 +-
include/linux/property.h | 13 +
include/linux/string_helpers.h | 2 +
include/uapi/linux/gpio.h | 334 ++++-
lib/string_helpers.c | 23 +
tools/gpio/gpio-event-mon.c | 146 +-
tools/gpio/gpio-hammer.c | 56 +-
tools/gpio/gpio-utils.c | 176 ++-
tools/gpio/gpio-utils.h | 48 +-
tools/gpio/gpio-watch.c | 16 +-
tools/gpio/lsgpio.c | 60 +-
46 files changed, 2964 insertions(+), 938 deletions(-)
create mode 100644 Documentation/admin-guide/gpio/gpio-mockup.rst
delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-max732x.txt
delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-pca953x.txt
create mode 100644 Documentation/devicetree/bindings/gpio/gpio-pca95xx.yaml
delete mode 100644 drivers/gpio/gpiolib-devprop.c