Merge tag 'gpio-v4.12-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.12 kernel cycle. Core changes: - Return NULL from gpiod_get_optional() when GPIOLIB is disabled. This was a much discussed change. It affects use cases where people write drivers that might or might not be using GPIO resources. I have decided that this is the lesser evil right now. - Make gpiod_count() behave consistently across different hardware descriptions. - Fix the syntax around open drain/open source to not infer active high/low semantics. New drivers: - A new single-register fixed-direction framework driver for hardware that have lines controlled by a single register that just work in one direction (out or in), including IRQ support. - Support the Fintek F71889A GPIO SuperIO controller. - Support the National NI 169445 MMIO GPIO. - Support for the X-Gene derivative of the DWC GPIO controller - Support for the Rohm BD9571MWV-M PMIC GPIO controller. - Refactor the Gemini GPIO driver to a generic Faraday FTGPIO driver and replace both the Gemini and the Moxa ART custom drivers with this driver. Driver improvements: - A whole slew of drivers have their spinlocks chaned to raw spinlocks as they provide irqchips, and thus we are progressing on realtime compliance. - Use devm_irq_alloc_descs() in a slew of drivers, getting managed resources. - Support for the embedded PWM controller inside the MVEBU driver. - Debounce, open source and open drain support for the Aspeed driver. - Misc smaller fixes like spelling and syntax and whatnot" * tag 'gpio-v4.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (77 commits) gpio: f7188x: Add a missing break gpio: omap: return error if requested debounce time is not possible gpio: Add ROHM BD9571MWV-M PMIC GPIO driver gpio: gpio-wcove: fix GPIO IRQ status mask gpio: DT bindings, move tca9554 from pcf857x to pca953x gpio: move tca9554 from pcf857x to pca953x gpio: arizona: Correct check whether the pin is an input gpio: Add XRA1403 DTS binding documentation dt-bindings: add exar to vendor prefixes list gpio: gpio-wcove: fix irq pending status bit width gpio: dwapb: use dwapb_read instead of readl_relaxed gpio: aspeed: Add open-source and open-drain support gpio: aspeed: Add debounce support gpio: aspeed: dt: Add optional clocks property gpio: aspeed: dt: Fix description alignment in bindings document gpio: mvebu: Add limited PWM support gpio: Use unsigned int for interrupt numbers gpio: f7188x: Add F71889A GPIO support. gpio: core: Decouple open drain/source flag with active low/high gpio: arizona: Correct handling for reading input GPIOs ...
This commit is contained in:
@@ -1,8 +1,11 @@
|
||||
Cortina Systems Gemini GPIO Controller
|
||||
Faraday Technology FTGPIO010 GPIO Controller
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : Must be "cortina,gemini-gpio"
|
||||
- compatible : Should be one of
|
||||
"cortina,gemini-gpio", "faraday,ftgpio010"
|
||||
"moxa,moxart-gpio", "faraday,ftgpio010"
|
||||
"faraday,ftgpio010"
|
||||
- reg : Should contain registers location and length
|
||||
- interrupts : Should contain the interrupt line for the GPIO block
|
||||
- gpio-controller : marks this as a GPIO controller
|
||||
@@ -14,7 +17,7 @@ Required properties:
|
||||
Example:
|
||||
|
||||
gpio@4d000000 {
|
||||
compatible = "cortina,gemini-gpio";
|
||||
compatible = "cortina,gemini-gpio", "faraday,ftgpio010";
|
||||
reg = <0x4d000000 0x100>;
|
||||
interrupts = <22 IRQ_TYPE_LEVEL_HIGH>;
|
||||
gpio-controller;
|
@@ -17,7 +17,8 @@ Required properties:
|
||||
|
||||
Optional properties:
|
||||
|
||||
- interrupt-parent : The parent interrupt controller, optional if inherited
|
||||
- interrupt-parent : The parent interrupt controller, optional if inherited
|
||||
- clocks : A phandle to the HPLL clock node for debounce timings
|
||||
|
||||
The gpio and interrupt properties are further described in their respective
|
||||
bindings documentation:
|
||||
|
@@ -38,6 +38,24 @@ Required properties:
|
||||
- #gpio-cells: Should be two. The first cell is the pin number. The
|
||||
second cell is reserved for flags, unused at the moment.
|
||||
|
||||
Optional properties:
|
||||
|
||||
In order to use the GPIO lines in PWM mode, some additional optional
|
||||
properties are required. Only Armada 370 and XP support these properties.
|
||||
|
||||
- compatible: Must contain "marvell,armada-370-xp-gpio"
|
||||
|
||||
- reg: an additional register set is needed, for the GPIO Blink
|
||||
Counter on/off registers.
|
||||
|
||||
- reg-names: Must contain an entry "pwm" corresponding to the
|
||||
additional register range needed for PWM operation.
|
||||
|
||||
- #pwm-cells: Should be two. The first cell is the GPIO line number. The
|
||||
second cell is the period in nanoseconds.
|
||||
|
||||
- clocks: Must be a phandle to the clock for the GPIO controller.
|
||||
|
||||
Example:
|
||||
|
||||
gpio0: gpio@d0018100 {
|
||||
@@ -51,3 +69,17 @@ Example:
|
||||
#interrupt-cells = <2>;
|
||||
interrupts = <16>, <17>, <18>, <19>;
|
||||
};
|
||||
|
||||
gpio1: gpio@18140 {
|
||||
compatible = "marvell,armada-370-xp-gpio";
|
||||
reg = <0x18140 0x40>, <0x181c8 0x08>;
|
||||
reg-names = "gpio", "pwm";
|
||||
ngpios = <17>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
#pwm-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
interrupts = <87>, <88>, <89>;
|
||||
clocks = <&coreclk 0>;
|
||||
};
|
||||
|
@@ -26,6 +26,7 @@ Required properties:
|
||||
ti,tca6416
|
||||
ti,tca6424
|
||||
ti,tca9539
|
||||
ti,tca9554
|
||||
onsemi,pca9654
|
||||
exar,xra1202
|
||||
|
||||
|
@@ -25,7 +25,6 @@ Required Properties:
|
||||
- "nxp,pcf8574": For the NXP PCF8574
|
||||
- "nxp,pcf8574a": For the NXP PCF8574A
|
||||
- "nxp,pcf8575": For the NXP PCF8575
|
||||
- "ti,tca9554": For the TI TCA9554
|
||||
|
||||
- reg: I2C slave address.
|
||||
|
||||
|
27
Documentation/devicetree/bindings/gpio/gpio-thunderx.txt
Normal file
27
Documentation/devicetree/bindings/gpio/gpio-thunderx.txt
Normal file
@@ -0,0 +1,27 @@
|
||||
Cavium ThunderX/OCTEON-TX GPIO controller bindings
|
||||
|
||||
Required Properties:
|
||||
- reg: The controller bus address.
|
||||
- gpio-controller: Marks the device node as a GPIO controller.
|
||||
- #gpio-cells: Must be 2.
|
||||
- First cell is the GPIO pin number relative to the controller.
|
||||
- Second cell is a standard generic flag bitfield as described in gpio.txt.
|
||||
|
||||
Optional Properties:
|
||||
- compatible: "cavium,thunder-8890-gpio", unused as PCI driver binding is used.
|
||||
- interrupt-controller: Marks the device node as an interrupt controller.
|
||||
- #interrupt-cells: Must be present and have value of 2 if
|
||||
"interrupt-controller" is present.
|
||||
- First cell is the GPIO pin number relative to the controller.
|
||||
- Second cell is triggering flags as defined in interrupts.txt.
|
||||
|
||||
Example:
|
||||
|
||||
gpio_6_0: gpio@6,0 {
|
||||
compatible = "cavium,thunder-8890-gpio";
|
||||
reg = <0x3000 0 0 0 0>; /* DEVFN = 0x30 (6:0) */
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
};
|
46
Documentation/devicetree/bindings/gpio/gpio-xra1403.txt
Normal file
46
Documentation/devicetree/bindings/gpio/gpio-xra1403.txt
Normal file
@@ -0,0 +1,46 @@
|
||||
GPIO Driver for XRA1403 16-BIT GPIO Expander With Reset Input from EXAR
|
||||
|
||||
The XRA1403 is an 16-bit GPIO expander with an SPI interface. Features available:
|
||||
- Individually programmable inputs:
|
||||
- Internal pull-up resistors
|
||||
- Polarity inversion
|
||||
- Individual interrupt enable
|
||||
- Rising edge and/or Falling edge interrupt
|
||||
- Input filter
|
||||
- Individually programmable outputs
|
||||
- Output Level Control
|
||||
- Output Three-State Control
|
||||
|
||||
Properties
|
||||
----------
|
||||
Check documentation for SPI and GPIO controllers regarding properties needed to configure the node.
|
||||
|
||||
- compatible = "exar,xra1403".
|
||||
- reg - SPI id of the device.
|
||||
- gpio-controller - marks the node as gpio.
|
||||
- #gpio-cells - should be two where the first cell is the pin number
|
||||
and the second one is used for optional parameters.
|
||||
|
||||
Optional properties:
|
||||
-------------------
|
||||
- reset-gpios: in case available used to control the device reset line.
|
||||
- interrupt-controller - marks the node as interrupt controller.
|
||||
- #interrupt-cells - should be two and represents the number of cells
|
||||
needed to encode interrupt source.
|
||||
|
||||
Example
|
||||
--------
|
||||
|
||||
gpioxra0: gpio@2 {
|
||||
compatible = "exar,xra1403";
|
||||
reg = <2>;
|
||||
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
|
||||
reset-gpios = <&gpio3 6 GPIO_ACTIVE_LOW>;
|
||||
spi-max-frequency = <1000000>;
|
||||
};
|
@@ -1,19 +0,0 @@
|
||||
MOXA ART GPIO Controller
|
||||
|
||||
Required properties:
|
||||
|
||||
- #gpio-cells : Should be 2, The first cell is the pin number,
|
||||
the second cell is used to specify polarity:
|
||||
0 = active high
|
||||
1 = active low
|
||||
- compatible : Must be "moxa,moxart-gpio"
|
||||
- reg : Should contain registers location and length
|
||||
|
||||
Example:
|
||||
|
||||
gpio: gpio@98700000 {
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
compatible = "moxa,moxart-gpio";
|
||||
reg = <0x98700000 0xC>;
|
||||
};
|
@@ -0,0 +1,38 @@
|
||||
Bindings for the National Instruments 169445 GPIO NAND controller
|
||||
|
||||
The 169445 GPIO NAND controller has two memory mapped GPIO registers, one
|
||||
for input (the ready signal) and one for output (control signals). It is
|
||||
intended to be used with the GPIO NAND driver.
|
||||
|
||||
Required properties:
|
||||
- compatible: should be "ni,169445-nand-gpio"
|
||||
- reg-names: must contain
|
||||
"dat" - data register
|
||||
- reg: address + size pairs describing the GPIO register sets;
|
||||
order must correspond with the order of entries in reg-names
|
||||
- #gpio-cells: must be set to 2. The first cell is the pin number and
|
||||
the second cell is used to specify the gpio polarity:
|
||||
0 = active high
|
||||
1 = active low
|
||||
- gpio-controller: Marks the device node as a gpio controller.
|
||||
|
||||
Optional properties:
|
||||
- no-output: disables driving output on the pins
|
||||
|
||||
Examples:
|
||||
gpio1: nand-gpio-out@1f300010 {
|
||||
compatible = "ni,169445-nand-gpio";
|
||||
reg = <0x1f300010 0x4>;
|
||||
reg-names = "dat";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
};
|
||||
|
||||
gpio2: nand-gpio-in@1f300014 {
|
||||
compatible = "ni,169445-nand-gpio";
|
||||
reg = <0x1f300014 0x4>;
|
||||
reg-names = "dat";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
no-output;
|
||||
};
|
@@ -103,6 +103,7 @@ ettus NI Ettus Research
|
||||
eukrea Eukréa Electromatique
|
||||
everest Everest Semiconductor Co. Ltd.
|
||||
everspin Everspin Technologies, Inc.
|
||||
exar Exar Corporation
|
||||
excito Excito
|
||||
ezchip EZchip Semiconductor
|
||||
faraday Faraday Technology Corporation
|
||||
|
Reference in New Issue
Block a user