This is the bulk of GPIO changes for the v4.8 kernel cycle.
Core changes:
- The big item is of course the completion of the character
device ABI. It has now replaced and surpassed the former
unmaintainable sysfs ABI: we can now hammer (bitbang)
individual lines or sets of lines and read individual lines
or sets of lines from userspace, and we can also register
to listen to GPIO events from userspace. As a tie-in we
have two new tools in tools/gpio: gpio-hammer and
gpio-event-mon that illustrate the proper use of the new
ABI. As someone said: the wild west days of GPIO are now
over.
- Continued to remove the pointless
ARCH_[WANT_OPTIONAL|REQUIRE]_GPIOLIB Kconfig symbols.
I'm patching hexagon, openrisc, powerpc, sh, unicore,
ia64 and microblaze. These are either ACKed by their
maintainers or patched anyways after a grace period and
no response from maintainers. Some archs (ARM) come in from
their trees, and others (x86) are still not fixed, so I
might send a second pull request to root it out later in
this merge window, or just defer to v4.9.
- The GPIO tools are moved to the tools build system.
New drivers:
- New driver for the MAX77620/MAX20024.
- New driver for the Intel Merrifield.
- Enabled PCA953x for the TI PCA9536.
- Enabled PCA953x for the Intel Edison.
- Enabled R8A7792 in the RCAR driver.
Driver improvements:
- The STMPE and F7188x now supports the .get_direction()
callback.
- The Xilinx driver supports setting multiple lines at
once.
- ACPI support for the Vulcan GPIO controller.
- The MMIO GPIO driver supports device tree probing.
- The Acer One 10 is supported through the _DEP ACPI
attribute.
Cleanups:
- A major cleanup of the OF/DT support code. It is way
easier to read and understand now, probably this improves
performance too.
- Drop a few redundant .owner assignments.
- Remove CLPS711x boardfile support: we are 100% DT.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJXlcT4AAoJEEEQszewGV1zACwQAK5SZr0F5c3QvYbJSiJBCGA7
MZKUYHnYoBpZaPKcFKoOXEM1WOvlABlh9U0y0xkL8gQ6giyKup1wYJJCuYgW29gL
ny4r7Z8rs2Wm1ujL+FLAwuxIwCY3BnhUucp8YiSaHPBuKRfsHorFPvXiAgLZjNYC
Qk3Q48xYW4inw9sy2BbMfsU3CZnkvgy5euooyy1ezwachRhuHdBy/MVCG012PC4s
0d6LGdByEx1uK4NeV7ssPys444M8unep2EWgy6Rvc1U+FmGA487EvL+X8nxTQTj3
uTMxA8nddmZTEeEIqhpRw/dPiFlWxPFwfWmNEre05gKLb/LUK2tgsUOnmIFgVUw/
t41IzdQNLQQZxmiXplZn6s5mAr2VNuTxkRq1CIl4SwQW+Uy4TU3q8aDPkKzsyhiR
yw6o6ul0pQs8UZEggnht8ie6JiSnJ55ehI/nlRxpK/797Ff6Yp4FARs3ZtFnQDDu
SWewnbRatZQ89lvy4BA7QCWeV4Scjk4k/e2HjUAFnkfMDaYqpi4vTdzwnWdVjd+F
hMgu6VnkN3oSE7ZMrKJMh7b7h1uMnIwKBFWbkrlOEuhT1X0ZDsEOBv5juSBPYomN
EOIJUyWqxn0ZfxeONbdbCPteYlfJF+TW/rE9LQMxS1nNwsqw2IQW6NCmrM9Nx6Fv
FP++26nYMTSh82gwOYw3
=NwcK
-----END PGP SIGNATURE-----
Merge tag 'gpio-v4.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio
Pull GPIO updates from Linus Walleij:
"This is the bulk of GPIO changes for the v4.8 kernel cycle. The big
news is the completion of the chardev ABI which I'm very happy about
and apart from that it's an ordinary, quite busy cycle. The details
are below.
The patches are tested in linux-next for some time, patches to other
subsystem mostly have ACKs.
I got overly ambitious with configureing lines as input for IRQ lines
but it turns out that some controllers have their interrupt-enable and
input-enabling in orthogonal settings so the assumption that all IRQ
lines are input lines does not hold. Oh well, revert and back to the
drawing board with that.
Core changes:
- The big item is of course the completion of the character device
ABI. It has now replaced and surpassed the former unmaintainable
sysfs ABI: we can now hammer (bitbang) individual lines or sets of
lines and read individual lines or sets of lines from userspace,
and we can also register to listen to GPIO events from userspace.
As a tie-in we have two new tools in tools/gpio: gpio-hammer and
gpio-event-mon that illustrate the proper use of the new ABI. As
someone said: the wild west days of GPIO are now over.
- Continued to remove the pointless ARCH_[WANT_OPTIONAL|REQUIRE]_GPIOLIB
Kconfig symbols. I'm patching hexagon, openrisc, powerpc, sh,
unicore, ia64 and microblaze. These are either ACKed by their
maintainers or patched anyways after a grace period and no response
from maintainers.
Some archs (ARM) come in from their trees, and others (x86) are
still not fixed, so I might send a second pull request to root it
out later in this merge window, or just defer to v4.9.
- The GPIO tools are moved to the tools build system.
New drivers:
- New driver for the MAX77620/MAX20024.
- New driver for the Intel Merrifield.
- Enabled PCA953x for the TI PCA9536.
- Enabled PCA953x for the Intel Edison.
- Enabled R8A7792 in the RCAR driver.
Driver improvements:
- The STMPE and F7188x now supports the .get_direction() callback.
- The Xilinx driver supports setting multiple lines at once.
- ACPI support for the Vulcan GPIO controller.
- The MMIO GPIO driver supports device tree probing.
- The Acer One 10 is supported through the _DEP ACPI attribute.
Cleanups:
- A major cleanup of the OF/DT support code. It is way easier to
read and understand now, probably this improves performance too.
- Drop a few redundant .owner assignments.
- Remove CLPS711x boardfile support: we are 100% DT"
* tag 'gpio-v4.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (67 commits)
MAINTAINERS: Add INTEL MERRIFIELD GPIO entry
gpio: dwapb: add missing fwnode_handle_put() in dwapb_gpio_get_pdata()
gpio: merrifield: Protect irq_ack() and gpio_set() by lock
gpio: merrifield: Introduce GPIO driver to support Merrifield
gpio: intel-mid: Make it depend to X86_INTEL_MID
gpio: intel-mid: Sort header block alphabetically
gpio: intel-mid: Remove potentially harmful code
gpio: rcar: add R8A7792 support
gpiolib: remove duplicated include from gpiolib.c
Revert "gpio: convince line to become input in irq helper"
gpiolib: of_find_gpio(): Don't discard errors
gpio: of: Allow overriding the device node
gpio: free handles in fringe cases
gpio: tps65218: Add platform_device_id table
gpio: max77620: get gpio value based on direction
gpio: lynxpoint: avoid potential warning on error path
tools/gpio: add install section
tools/gpio: move to tools buildsystem
gpio: intel-mid: switch to devm_gpiochip_add_data()
gpio: 74x164: Use spi_write() helper instead of open coding
...
This commit is contained in:
commit
1cd04d293c
66 changed files with 2207 additions and 230 deletions
|
|
@ -1,7 +1,7 @@
|
|||
* ARM Cirrus Logic CLPS711X SYSFLG1 MCTRL GPIOs
|
||||
|
||||
Required properties:
|
||||
- compatible: Should contain "cirrus,clps711x-mctrl-gpio".
|
||||
- compatible: Should contain "cirrus,ep7209-mctrl-gpio".
|
||||
- gpio-controller: Marks the device node as a gpio controller.
|
||||
- #gpio-cells: Should be two. The first cell is the pin number and
|
||||
the second cell is used to specify the gpio polarity:
|
||||
|
|
@ -11,7 +11,7 @@ Required properties:
|
|||
Example:
|
||||
sysgpio: sysgpio {
|
||||
compatible = "cirrus,ep7312-mctrl-gpio",
|
||||
"cirrus,clps711x-mctrl-gpio";
|
||||
"cirrus,ep7209-mctrl-gpio";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
Cirrus Logic CLPS711X GPIO controller
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "cirrus,clps711x-gpio"
|
||||
- compatible: Should be "cirrus,ep7209-gpio"
|
||||
- reg: Physical base GPIO controller registers location and length.
|
||||
There should be two registers, first is DATA register, the second
|
||||
is DIRECTION.
|
||||
|
|
@ -21,7 +21,7 @@ aliases {
|
|||
};
|
||||
|
||||
porta: gpio@80000000 {
|
||||
compatible = "cirrus,clps711x-gpio";
|
||||
compatible = "cirrus,ep7312-gpio","cirrus,ep7209-gpio";
|
||||
reg = <0x80000000 0x1>, <0x80000040 0x1>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
|
|
|
|||
25
Documentation/devicetree/bindings/gpio/gpio-max77620.txt
Normal file
25
Documentation/devicetree/bindings/gpio/gpio-max77620.txt
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
GPIO driver for MAX77620 Power management IC from Maxim Semiconductor.
|
||||
|
||||
Device has 8 GPIO pins which can be configured as GPIO as well as the
|
||||
special IO functions.
|
||||
|
||||
Required properties:
|
||||
-------------------
|
||||
- gpio-controller : Marks the device node as a gpio controller.
|
||||
- #gpio-cells : Should be two. The first cell is the pin number and
|
||||
the second cell is used to specify the gpio polarity:
|
||||
0 = active high
|
||||
1 = active low
|
||||
For more details, please refer generic GPIO DT binding document
|
||||
<devicetree/bindings/gpio/gpio.txt>.
|
||||
|
||||
Example:
|
||||
--------
|
||||
#include <dt-bindings/mfd/max77620.h>
|
||||
...
|
||||
max77620@3c {
|
||||
compatible = "maxim,max77620";
|
||||
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
};
|
||||
|
|
@ -21,6 +21,7 @@ Required properties:
|
|||
maxim,max7313
|
||||
maxim,max7315
|
||||
ti,pca6107
|
||||
ti,pca9536
|
||||
ti,tca6408
|
||||
ti,tca6416
|
||||
ti,tca6424
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ Required Properties:
|
|||
- "renesas,gpio-r8a7779": for R8A7779 (R-Car H1) compatible GPIO controller.
|
||||
- "renesas,gpio-r8a7790": for R8A7790 (R-Car H2) compatible GPIO controller.
|
||||
- "renesas,gpio-r8a7791": for R8A7791 (R-Car M2-W) compatible GPIO controller.
|
||||
- "renesas,gpio-r8a7792": for R8A7792 (R-Car V2H) compatible GPIO controller.
|
||||
- "renesas,gpio-r8a7793": for R8A7793 (R-Car M2-N) compatible GPIO controller.
|
||||
- "renesas,gpio-r8a7794": for R8A7794 (R-Car E2) compatible GPIO controller.
|
||||
- "renesas,gpio-r8a7795": for R8A7795 (R-Car H3) compatible GPIO controller.
|
||||
|
|
|
|||
|
|
@ -37,15 +37,16 @@ hardware descriptions such as device tree or ACPI:
|
|||
external connector status, such as a headset line for an audio driver or an
|
||||
HDMI connector. It will provide a better userspace sysfs interface than GPIO.
|
||||
|
||||
- restart-gpio: drivers/power/gpio-restart.c is used to restart/reboot the
|
||||
system by pulling a GPIO line and will register a restart handler so
|
||||
- restart-gpio: drivers/power/reset/gpio-restart.c is used to restart/reboot
|
||||
the system by pulling a GPIO line and will register a restart handler so
|
||||
userspace can issue the right system call to restart the system.
|
||||
|
||||
- poweroff-gpio: drivers/power/gpio-poweroff.c is used to power the system down
|
||||
by pulling a GPIO line and will register a pm_power_off() callback so that
|
||||
userspace can issue the right system call to power down the system.
|
||||
- poweroff-gpio: drivers/power/reset/gpio-poweroff.c is used to power the
|
||||
system down by pulling a GPIO line and will register a pm_power_off()
|
||||
callback so that userspace can issue the right system call to power down the
|
||||
system.
|
||||
|
||||
- gpio-gate-clock: drivers/clk/clk-gpio-gate.c is used to control a gated clock
|
||||
- gpio-gate-clock: drivers/clk/clk-gpio.c is used to control a gated clock
|
||||
(off/on) that uses a GPIO, and integrated with the clock subsystem.
|
||||
|
||||
- i2c-gpio: drivers/i2c/busses/i2c-gpio.c is used to drive an I2C bus
|
||||
|
|
|
|||
|
|
@ -6060,6 +6060,12 @@ L: linux-rdma@vger.kernel.org
|
|||
S: Supported
|
||||
F: drivers/infiniband/hw/i40iw/
|
||||
|
||||
INTEL MERRIFIELD GPIO DRIVER
|
||||
M: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
|
||||
L: linux-gpio@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/gpio/gpio-merrifield.c
|
||||
|
||||
INTEL-MID GPIO DRIVER
|
||||
M: David Cohen <david.a.cohen@linux.intel.com>
|
||||
L: linux-gpio@vger.kernel.org
|
||||
|
|
|
|||
|
|
@ -8,8 +8,7 @@ config HEXAGON
|
|||
# select HAVE_REGS_AND_STACK_ACCESS_API
|
||||
# select HAVE_HW_BREAKPOINT if PERF_EVENTS
|
||||
# select ARCH_HAS_CPU_IDLE_WAIT
|
||||
# select ARCH_WANT_OPTIONAL_GPIOLIB
|
||||
# select ARCH_REQUIRE_GPIOLIB
|
||||
# select GPIOLIB
|
||||
# select HAVE_CLK
|
||||
# select GENERIC_PENDING_IRQ if SMP
|
||||
select GENERIC_ATOMIC64
|
||||
|
|
|
|||
|
|
@ -39,7 +39,6 @@ config IA64
|
|||
select GENERIC_PENDING_IRQ if SMP
|
||||
select GENERIC_IRQ_SHOW
|
||||
select GENERIC_IRQ_LEGACY
|
||||
select ARCH_WANT_OPTIONAL_GPIOLIB
|
||||
select ARCH_HAVE_NMI_SAFE_CMPXCHG
|
||||
select GENERIC_IOMAP
|
||||
select GENERIC_SMP_IDLE_THREAD
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ config MICROBLAZE
|
|||
select ARCH_HAS_GCOV_PROFILE_ALL
|
||||
select ARCH_MIGHT_HAVE_PC_PARPORT
|
||||
select ARCH_WANT_IPC_PARSE_VERSION
|
||||
select ARCH_WANT_OPTIONAL_GPIOLIB
|
||||
select BUILDTIME_EXTABLE_SORT
|
||||
select CLKSRC_OF
|
||||
select CLONE_BACKWARDS3
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ config OPENRISC
|
|||
select IRQ_DOMAIN
|
||||
select HANDLE_DOMAIN_IRQ
|
||||
select HAVE_MEMBLOCK
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select GPIOLIB
|
||||
select HAVE_ARCH_TRACEHOOK
|
||||
select GENERIC_IRQ_CHIP
|
||||
select GENERIC_IRQ_PROBE
|
||||
|
|
|
|||
|
|
@ -98,7 +98,6 @@ config PPC
|
|||
select HAVE_FUNCTION_TRACER
|
||||
select HAVE_FUNCTION_GRAPH_TRACER
|
||||
select SYSCTL_EXCEPTION_TRACE
|
||||
select ARCH_WANT_OPTIONAL_GPIOLIB
|
||||
select VIRT_TO_BUS if !PPC64
|
||||
select HAVE_IDE
|
||||
select HAVE_IOREMAP_PROT
|
||||
|
|
|
|||
|
|
@ -137,7 +137,7 @@ config STB03xxx
|
|||
config PPC4xx_GPIO
|
||||
bool "PPC4xx GPIO support"
|
||||
depends on 40x
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select GPIOLIB
|
||||
help
|
||||
Enable gpiolib support for ppc40x based boards
|
||||
|
||||
|
|
|
|||
|
|
@ -273,7 +273,7 @@ config PPC44x_SIMPLE
|
|||
config PPC4xx_GPIO
|
||||
bool "PPC4xx GPIO support"
|
||||
depends on 44x
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select GPIOLIB
|
||||
help
|
||||
Enable gpiolib support for ppc440 based boards
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ config PPC_MPC512x
|
|||
select IPIC
|
||||
select PPC_PCI_CHOICE
|
||||
select FSL_PCI if PCI
|
||||
select ARCH_WANT_OPTIONAL_GPIOLIB
|
||||
select USB_EHCI_BIG_ENDIAN_MMIO if USB_EHCI_HCD
|
||||
select USB_EHCI_BIG_ENDIAN_DESC if USB_EHCI_HCD
|
||||
|
||||
|
|
|
|||
|
|
@ -116,7 +116,6 @@ endif
|
|||
# used for usb & gpio
|
||||
config PPC_MPC831x
|
||||
bool
|
||||
select ARCH_WANT_OPTIONAL_GPIOLIB
|
||||
|
||||
# used for math-emu
|
||||
config PPC_MPC832x
|
||||
|
|
@ -125,9 +124,7 @@ config PPC_MPC832x
|
|||
# used for usb & gpio
|
||||
config PPC_MPC834x
|
||||
bool
|
||||
select ARCH_WANT_OPTIONAL_GPIOLIB
|
||||
|
||||
# used for usb & gpio
|
||||
config PPC_MPC837x
|
||||
bool
|
||||
select ARCH_WANT_OPTIONAL_GPIOLIB
|
||||
|
|
|
|||
|
|
@ -225,7 +225,7 @@ config GE_IMP3A
|
|||
select DEFAULT_UIMAGE
|
||||
select SWIOTLB
|
||||
select MMIO_NVRAM
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select GPIOLIB
|
||||
select GE_FPGA
|
||||
help
|
||||
This option enables support for the GE Intelligent Platforms IMP3A
|
||||
|
|
@ -272,7 +272,7 @@ config CORENET_GENERIC
|
|||
select PPC_E500MC
|
||||
select PHYS_64BIT
|
||||
select SWIOTLB
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select GPIOLIB
|
||||
select GPIO_MPC8XXX
|
||||
select HAS_RAPIDIO
|
||||
select PPC_EPAPR_HV_PIC
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ menuconfig PPC_86xx
|
|||
depends on 6xx
|
||||
select FSL_SOC
|
||||
select ALTIVEC
|
||||
select ARCH_WANT_OPTIONAL_GPIOLIB
|
||||
help
|
||||
The Freescale E600 SoCs have 74xx cores.
|
||||
|
||||
|
|
@ -37,7 +36,7 @@ config GEF_PPC9A
|
|||
bool "GE PPC9A"
|
||||
select DEFAULT_UIMAGE
|
||||
select MMIO_NVRAM
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select GPIOLIB
|
||||
select GE_FPGA
|
||||
help
|
||||
This option enables support for the GE PPC9A.
|
||||
|
|
@ -46,7 +45,7 @@ config GEF_SBC310
|
|||
bool "GE SBC310"
|
||||
select DEFAULT_UIMAGE
|
||||
select MMIO_NVRAM
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select GPIOLIB
|
||||
select GE_FPGA
|
||||
help
|
||||
This option enables support for the GE SBC310.
|
||||
|
|
@ -55,7 +54,7 @@ config GEF_SBC610
|
|||
bool "GE SBC610"
|
||||
select DEFAULT_UIMAGE
|
||||
select MMIO_NVRAM
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select GPIOLIB
|
||||
select GE_FPGA
|
||||
select HAS_RAPIDIO
|
||||
help
|
||||
|
|
|
|||
|
|
@ -109,7 +109,7 @@ config 8xx_COPYBACK
|
|||
|
||||
config 8xx_GPIO
|
||||
bool "GPIO API Support"
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select GPIOLIB
|
||||
help
|
||||
Saying Y here will cause the ports on an MPC8xx processor to be used
|
||||
with the GPIO API. If you say N here, the kernel needs less memory.
|
||||
|
|
|
|||
|
|
@ -275,7 +275,7 @@ config TAU_AVERAGE
|
|||
config QE_GPIO
|
||||
bool "QE GPIO support"
|
||||
depends on QUICC_ENGINE
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select GPIOLIB
|
||||
help
|
||||
Say Y here if you're going to use hardware that connects to the
|
||||
QE GPIOs.
|
||||
|
|
@ -285,7 +285,7 @@ config CPM2
|
|||
depends on (FSL_SOC_BOOKE && PPC32) || 8260
|
||||
select CPM
|
||||
select PPC_PCI_CHOICE
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select GPIOLIB
|
||||
help
|
||||
The CPM2 (Communications Processor Module) is a coprocessor on
|
||||
embedded CPUs made by Freescale. Selecting this option means that
|
||||
|
|
@ -324,7 +324,7 @@ config OF_RTC
|
|||
config SIMPLE_GPIO
|
||||
bool "Support for simple, memory-mapped GPIO controllers"
|
||||
depends on PPC
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select GPIOLIB
|
||||
help
|
||||
Say Y here to support simple, memory-mapped GPIO controllers.
|
||||
These are usually BCSRs used to control board's switches, LEDs,
|
||||
|
|
@ -334,7 +334,7 @@ config SIMPLE_GPIO
|
|||
config MCU_MPC8349EMITX
|
||||
bool "MPC8349E-mITX MCU driver"
|
||||
depends on I2C=y && PPC_83xx
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select GPIOLIB
|
||||
help
|
||||
Say Y here to enable soft power-off functionality on the Freescale
|
||||
boards with the MPC8349E-mITX-compatible MCU chips. This driver will
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue