forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'gpio-v4.6-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 kernel v4.6. There is quite a lot of interesting stuff going on. The patches to other subsystems and arch-wide are ACKed as far as possible, though I consider things like per-arch <asm/gpio.h> as essentially a part of the GPIO subsystem so it should not be needed. Core changes: - The gpio_chip is now a *real device*. Until now the gpio chips were just piggybacking the parent device or (gasp) floating in space outside of the device model. We now finally make GPIO chips devices. The gpio_chip will create a gpio_device which contains a struct device, and this gpio_device struct is kept private. Anything that needs to be kept private from the rest of the kernel will gradually be moved over to the gpio_device. - As a result of making the gpio_device a real device, we have added resource management, so devm_gpiochip_add_data() will cut down on overhead and reduce code lines. A huge slew of patches convert almost all drivers in the subsystem to use this. - Building on making the GPIO a real device, we add the first step of a new userspace ABI: the GPIO character device. We take small steps here, so we first add a pure *information* ABI and the tool "lsgpio" that will list all GPIO devices on the system and all lines on these devices. We can now discover GPIOs properly from userspace. We still have not come up with a way to actually *use* GPIOs from userspace. - To encourage people to use the character device for the future, we have it always-enabled when using GPIO. The old sysfs ABI is still opt-in (and can be used in parallel), but is marked as deprecated. We will keep it around for the foreseeable future, but it will not be extended to cover ever more use cases. Cleanup: - Bjorn Helgaas removed a whole slew of per-architecture <asm/gpio.h> includes. This dates back to when GPIO was an opt-in feature and no shared library even existed: just a header file with proper prototypes was provided and all semantics were up to the arch to implement. These patches make the GPIO chip even more a proper device and cleans out leftovers of the old in-kernel API here and there. Still some cruft is left but it's very little now. - There is still some clamping of return values for .get() going on, but we now return sane values in the vast majority of drivers and the errorpath is sanitized. Some patches for powerpc, blackfin and unicore still drop in. - We continue to switch the ARM, MIPS, blackfin, m68k local GPIO implementations to use gpiochip_add_data() and cut down on code lines. - MPC8xxx is converted to use the generic GPIO helpers. - ATH79 is converted to use the generic GPIO helpers. New drivers: - WinSystems WS16C48 - Acces 104-DIO-48E - F81866 (a F7188x variant) - Qoric (a MPC8xxx variant) - TS-4800 - SPI serializers (pisosr): simple 74xx shift registers connected to SPI to obtain a dirt-cheap output-only GPIO expander. - Texas Instruments TPIC2810 - Texas Instruments TPS65218 - Texas Instruments TPS65912 - X-Gene (ARM64) standby GPIO controller" * tag 'gpio-v4.6-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (194 commits) Revert "Share upstreaming patches" gpio: mcp23s08: Fix clearing of interrupt. gpiolib: Fix comment referring to gpio_*() in gpiod_*() gpio: pca953x: Fix pca953x_gpio_set_multiple() on 64-bit gpio: xgene: Fix kconfig for standby GIPO contoller gpio: Add generic serializer DT binding gpio: uapi: use 0xB4 as ioctl() major gpio: tps65912: fix bad merge Revert "gpio: lp3943: Drop pin_used and lp3943_gpio_request/lp3943_gpio_free" gpio: omap: drop dev field from gpio_bank structure gpio: mpc8xxx: Slightly update the code for better readability gpio: mpc8xxx: Remove *read_reg and *write_reg from struct mpc8xxx_gpio_chip gpio: mpc8xxx: Fixup setting gpio direction output gpio: mcp23s08: Add support for mcp23s18 dt-bindings: gpio: altera: Fix altr,interrupt-type property gpio: add driver for MEN 16Z127 GPIO controller gpio: lp3943: Drop pin_used and lp3943_gpio_request/lp3943_gpio_free gpio: timberdale: Switch to devm_ioremap_resource() gpio: ts4800: Add IMX51 dependency gpiolib: rewrite gpiodev_add_to_list ...
- Loading branch information
Showing
169 changed files
with
4,405 additions
and
2,663 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,7 @@ | ||
What: /sys/class/gpio/ | ||
Date: July 2008 | ||
KernelVersion: 2.6.27 | ||
Contact: David Brownell <[email protected]> | ||
Contact: Linus Walleij <[email protected]> | ||
Description: | ||
|
||
As a Kconfig option, individual GPIO signals may be accessed from | ||
|
@@ -26,3 +26,5 @@ Description: | |
/label ... (r/o) descriptive, not necessarily unique | ||
/ngpio ... (r/o) number of GPIOs; numbered N to N + (ngpio - 1) | ||
|
||
This ABI is deprecated and will be removed after 2020. It is | ||
replaced with the GPIO character device. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
What: /dev/gpiochip[0-9]+ | ||
Date: November 2015 | ||
KernelVersion: 4.4 | ||
Contact: [email protected] | ||
Description: | ||
The character device files /dev/gpiochip* are the interface | ||
between GPIO chips and userspace. | ||
|
||
The ioctl(2)-based ABI is defined and documented in | ||
[include/uapi]<linux/gpio.h>. | ||
|
||
The following file operations are supported: | ||
|
||
open(2) | ||
Currently the only useful flags are O_RDWR. | ||
|
||
ioctl(2) | ||
Initiate various actions. | ||
See the inline documentation in [include/uapi]<linux/gpio.h> | ||
for descriptions of all ioctls. | ||
|
||
close(2) | ||
Stops and free up the I/O contexts that was associated | ||
with the file descriptor. | ||
|
||
Users: TBD |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
Generic Parallel-in/Serial-out Shift Register GPIO Driver | ||
|
||
This binding describes generic parallel-in/serial-out shift register | ||
devices that can be used for GPI (General Purpose Input). This includes | ||
SN74165 serial-out shift registers and the SN65HVS88x series of | ||
industrial serializers. | ||
|
||
Required properties: | ||
- compatible : Should be "pisosr-gpio". | ||
- gpio-controller : Marks the device node as a GPIO controller. | ||
- #gpio-cells : Should be two. For consumer use see gpio.txt. | ||
|
||
Optional properties: | ||
- ngpios : Number of used GPIO lines (0..n-1), default is 8. | ||
- load-gpios : GPIO pin specifier attached to load enable, this | ||
pin is pulsed before reading from the device to | ||
load input pin values into the the device. | ||
|
||
For other required and optional properties of SPI slave | ||
nodes please refer to ../spi/spi-bus.txt. | ||
|
||
Example: | ||
|
||
gpio@0 { | ||
compatible = "ti,sn65hvs882", "pisosr-gpio"; | ||
gpio-controller; | ||
#gpio-cells = <2>; | ||
|
||
load-gpios = <&gpio2 23 GPIO_ACTIVE_LOW>; | ||
|
||
reg = <0>; | ||
spi-max-frequency = <1000000>; | ||
spi-cpol; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
* TS-4800 FPGA's GPIO controller bindings | ||
|
||
Required properties: | ||
- compatible: Must be "technologic,ts4800-gpio". | ||
- #gpio-cells: Should be two. The first cell is the pin number. | ||
- reg: Physical base address of the controller and length | ||
of memory mapped region. | ||
|
||
Optional property: | ||
- ngpios: See "gpio.txt" | ||
|
||
Example: | ||
|
||
gpio1: gpio { | ||
compatible = "technologic,ts4800-gpio"; | ||
reg = <0x10020 0x6>; | ||
ngpios = <8>; | ||
gpio-controller; | ||
#gpio-cells = <2>; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
* TPS65912 Power Management Integrated Circuit bindings | ||
|
||
Required properties: | ||
- compatible : Should be "ti,tps65912". | ||
- reg : Slave address or chip select number (I2C / SPI). | ||
- interrupt-parent : The parent interrupt controller. | ||
- interrupts : The interrupt line the device is connected to. | ||
- interrupt-controller : Marks the device node as an interrupt controller. | ||
- #interrupt-cells : The number of cells to describe an IRQ, should be 2. | ||
The first cell is the IRQ number. | ||
The second cell is the flags, encoded as trigger | ||
masks from ../interrupt-controller/interrupts.txt. | ||
- 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 flags. | ||
See ../gpio/gpio.txt for more information. | ||
- regulators: : List of child nodes that specify the regulator | ||
initialization data. Child nodes must be named | ||
after their hardware counterparts: dcdc[1-4] and | ||
ldo[1-10]. Each child nodes is defined using the | ||
standard binding for regulators. | ||
|
||
Example: | ||
|
||
pmic: tps65912@2d { | ||
compatible = "ti,tps65912"; | ||
reg = <0x2d>; | ||
interrupt-parent = <&gpio1>; | ||
interrupts = <28 IRQ_TYPE_LEVEL_LOW>; | ||
interrupt-controller; | ||
#interrupt-cells = <2>; | ||
gpio-controller; | ||
#gpio-cells = <2>; | ||
|
||
regulators { | ||
dcdc1 { | ||
regulator-name = "vdd_core"; | ||
regulator-min-microvolt = <912000>; | ||
regulator-max-microvolt = <1144000>; | ||
regulator-boot-on; | ||
regulator-always-on; | ||
}; | ||
|
||
ldo1 { | ||
regulator-name = "ldo1"; | ||
regulator-min-microvolt = <1900000>; | ||
regulator-max-microvolt = <1900000>; | ||
}; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -319,6 +319,7 @@ Code Seq#(hex) Include File Comments | |
<mailto:[email protected]> | ||
0xB1 00-1F PPPoX <mailto:[email protected]> | ||
0xB3 00 linux/mmc/ioctl.h | ||
0xB4 00-0F linux/gpio.h <mailto:[email protected]> | ||
0xC0 00-0F linux/usb/iowarrior.h | ||
0xCA 00-0F uapi/misc/cxl.h | ||
0xCA 80-8F uapi/scsi/cxlflash_ioctl.h | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -238,6 +238,12 @@ L: [email protected] | |
S: Maintained | ||
F: drivers/hwmon/abituguru3.c | ||
|
||
ACCES 104-DIO-48E GPIO DRIVER | ||
M: William Breathitt Gray <[email protected]> | ||
L: [email protected] | ||
S: Maintained | ||
F: drivers/gpio/gpio-104-dio-48e.c | ||
|
||
ACCES 104-IDI-48 GPIO DRIVER | ||
M: "William Breathitt Gray" <[email protected]> | ||
L: [email protected] | ||
|
@@ -4827,10 +4833,14 @@ L: [email protected] | |
T: git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git | ||
S: Maintained | ||
F: Documentation/gpio/ | ||
F: Documentation/ABI/testing/gpio-cdev | ||
F: Documentation/ABI/obsolete/sysfs-gpio | ||
F: drivers/gpio/ | ||
F: include/linux/gpio/ | ||
F: include/linux/gpio.h | ||
F: include/asm-generic/gpio.h | ||
F: include/uapi/linux/gpio.h | ||
F: tools/gpio/ | ||
|
||
GRE DEMULTIPLEXER DRIVER | ||
M: Dmitry Kozlov <[email protected]> | ||
|
@@ -11931,6 +11941,12 @@ M: David Härdeman <[email protected]> | |
S: Maintained | ||
F: drivers/media/rc/winbond-cir.c | ||
|
||
WINSYSTEMS WS16C48 GPIO DRIVER | ||
M: William Breathitt Gray <[email protected]> | ||
L: [email protected] | ||
S: Maintained | ||
F: drivers/gpio/gpio-ws16c48.c | ||
|
||
WIMAX STACK | ||
M: Inaky Perez-Gonzalez <[email protected]> | ||
M: [email protected] | ||
|
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.