Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 60b5adff authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull GPIO updates from Linus Walleij:
 "Here is a batch of GPIO changes for v3.11.  I have agreed with Grant
  to take care of the pull requests for this development cycle.

  No special things are happening in the GPIO tree this time (nice with
  some calm) and I have been extra careful to do regression builds and
  it's well boiled in -next.

  GPIO changes for the v3.11 development cycle:
   - Incremental development for the Langwell (Atom SoC), Xilinx, ICH
     and RCAR drivers.
   - Cleanups from Jingoo Han, Axel Lin, Wei Jongjun, Wolfram Sang,
     Tushar Behera, Sachin Kamat and Yijing Wang"

* tag 'gpio-for-v3.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (35 commits)
  Gpio/trivial: replace numeric with standard PM state macros
  gpiolib: remove warnning of allocations with IRQs disabled
  gpio: grgpio: Staticize local symbols
  gpio-langwell: remove Withney point support
  gpio: ich: add GPO_BLINK support
  gpio-sta2x11: Convert to use devm_ioremap_resource
  gpio_msm: Convert to use devm_ioremap_resource
  gpio-rcar: Use OUTDT when reading GPIOs configured as output
  gpio-sta2x11: Fix potential NULL pointer dereference
  gpio/omap: omap_gpio_init_context stub must be inline
  gpio: msm-v1: Remove errant __devinit to fix compile
  gpio: devres: make comments proper
  GPIO: xilinx: Enable driver for Xilinx zynq
  DT: Add documentation for gpio-xilinx
  GPIO: xilinx: Use BIT macro
  GPIO: xilinx: Use __raw_readl/__raw_writel IO functions
  GPIO: xilinx: Add support for dual channel
  GPIO: xilinx: Simplify driver probe function
  gpio: sx150x: convert to use devm_* functions
  MAINTAINERS: add linux-gpio mailing list
  ...
parents a9f4a700 038f0bab
Loading
Loading
Loading
Loading
+48 −0
Original line number Diff line number Diff line
Xilinx plb/axi GPIO controller

Dual channel GPIO controller with configurable number of pins
(from 1 to 32 per channel). Every pin can be configured as
input/output/tristate. Both channels share the same global IRQ but
local interrupts can be enabled on channel basis.

Required properties:
- compatible : Should be "xlnx,xps-gpio-1.00.a"
- reg : Address and length of the register set for the device
- #gpio-cells : Should be two. The first cell is the pin number and the
  second cell is used to specify optional parameters (currently unused).
- gpio-controller : Marks the device node as a GPIO controller.

Optional properties:
- interrupts : Interrupt mapping for GPIO IRQ.
- interrupt-parent : Phandle for the interrupt controller that
  services interrupts for this device.
- xlnx,all-inputs : if n-th bit is setup, GPIO-n is input
- xlnx,dout-default : if n-th bit is 1, GPIO-n default value is 1
- xlnx,gpio-width : gpio width
- xlnx,tri-default : if n-th bit is 1, GPIO-n is in tristate mode
- xlnx,is-dual : if 1, controller also uses the second channel
- xlnx,all-inputs-2 : as above but for the second channel
- xlnx,dout-default-2 : as above but the second channel
- xlnx,gpio2-width : as above but for the second channel
- xlnx,tri-default-2 : as above but for the second channel


Example:
gpio: gpio@40000000 {
	#gpio-cells = <2>;
	compatible = "xlnx,xps-gpio-1.00.a";
	gpio-controller ;
	interrupt-parent = <&microblaze_0_intc>;
	interrupts = < 6 2 >;
	reg = < 0x40000000 0x10000 >;
	xlnx,all-inputs = <0x0>;
	xlnx,all-inputs-2 = <0x0>;
	xlnx,dout-default = <0x0>;
	xlnx,dout-default-2 = <0x0>;
	xlnx,gpio-width = <0x2>;
	xlnx,gpio2-width = <0x2>;
	xlnx,interrupt-present = <0x1>;
	xlnx,is-dual = <0x1>;
	xlnx,tri-default = <0xffffffff>;
	xlnx,tri-default-2 = <0xffffffff>;
} ;
+1 −0
Original line number Diff line number Diff line
@@ -3587,6 +3587,7 @@ GPIO SUBSYSTEM
M:	Grant Likely <grant.likely@linaro.org>
M:	Linus Walleij <linus.walleij@linaro.org>
S:	Maintained
L:	linux-gpio@vger.kernel.org
T:	git git://git.secretlab.ca/git/linux-2.6.git
F:	Documentation/gpio.txt
F:	drivers/gpio/
+2 −2
Original line number Diff line number Diff line
@@ -244,7 +244,7 @@ config GPIO_TS5500

config GPIO_XILINX
	bool "Xilinx GPIO support"
	depends on PPC_OF || MICROBLAZE
	depends on PPC_OF || MICROBLAZE || ARCH_ZYNQ
	help
	  Say yes here to support the Xilinx FPGA GPIO device

@@ -340,7 +340,7 @@ config GPIO_MAX7300
	depends on I2C
	select GPIO_MAX730X
	help
	  GPIO driver for Maxim MAX7301 I2C-based GPIO expander.
	  GPIO driver for Maxim MAX7300 I2C-based GPIO expander.

config GPIO_MAX732X
	tristate "MAX7319, MAX7320-7327 I2C Port Expanders"
+7 −7
Original line number Diff line number Diff line
@@ -34,10 +34,10 @@ static int devm_gpio_match(struct device *dev, void *res, void *data)
}

/**
 *      devm_gpio_request - request a gpio for a managed device
 *      @dev: device to request the gpio for
 *      @gpio: gpio to allocate
 *      @label: the name of the requested gpio
 *      devm_gpio_request - request a GPIO for a managed device
 *      @dev: device to request the GPIO for
 *      @gpio: GPIO to allocate
 *      @label: the name of the requested GPIO
 *
 *      Except for the extra @dev argument, this function takes the
 *      same arguments and performs the same function as
@@ -101,9 +101,9 @@ int devm_gpio_request_one(struct device *dev, unsigned gpio,
EXPORT_SYMBOL(devm_gpio_request_one);

/**
 *      devm_gpio_free - free an interrupt
 *      @dev: device to free gpio for
 *      @gpio: gpio to free
 *      devm_gpio_free - free a GPIO
 *      @dev: device to free GPIO for
 *      @gpio: GPIO to free
 *
 *      Except for the extra @dev argument, this function takes the
 *      same arguments and performs the same function as gpio_free().
+1 −1
Original line number Diff line number Diff line
@@ -286,7 +286,7 @@ static int bt8xxgpio_resume(struct pci_dev *pdev)
	unsigned long flags;
	int err;

	pci_set_power_state(pdev, 0);
	pci_set_power_state(pdev, PCI_D0);
	err = pci_enable_device(pdev);
	if (err)
		return err;
Loading