Commit 64df5ea9 authored by Linus Walleij's avatar Linus Walleij
Browse files

Merge branch 'ib-nomadik-gpio' into devel

parents 52279c3d a0c807b5
Loading
Loading
Loading
Loading
+0 −31
Original line number Diff line number Diff line
Nomadik GPIO controller

Required properties:
- compatible            : Should be "st,nomadik-gpio".
- reg                   : Physical base address and length of the controller's registers.
- interrupts            : The interrupt outputs from the controller.
- #gpio-cells           : Should be two:
                            The first cell is the pin number.
                            The second cell is used to specify optional parameters:
                              - bits[3:0] trigger type and level flags:
                                  1 = low-to-high edge triggered.
                                  2 = high-to-low edge triggered.
                                  4 = active high level-sensitive.
                                  8 = active low level-sensitive.
- gpio-controller       : Marks the device node as a GPIO controller.
- interrupt-controller  : Marks the device node as an interrupt controller.
- gpio-bank             : Specifies which bank a controller owns.
- st,supports-sleepmode : Specifies whether controller can sleep or not

Example:

                gpio1: gpio@8012e080 {
                        compatible = "st,nomadik-gpio";
                        reg =  <0x8012e080 0x80>;
                        interrupts = <0 120 0x4>;
                        #gpio-cells = <2>;
                        gpio-controller;
                        interrupt-controller;
                        st,supports-sleepmode;
                        gpio-bank = <1>;
                };
+95 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/gpio/st,nomadik-gpio.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Nomadik GPIO controller

description:
  The Nomadik GPIO driver handles Nomadik SoC GPIO blocks. This block has also
  been called ST STA2X11. On the Nomadik platform, this driver is intertwined
  with pinctrl-nomadik.

maintainers:
  - Linus Walleij <linus.walleij@linaro.org>

properties:
  $nodename:
    pattern: "^gpio@[0-9a-f]+$"

  compatible:
    enum:
      - st,nomadik-gpio
      - mobileye,eyeq5-gpio

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  "#gpio-cells":
    const: 2

  gpio-controller: true

  interrupt-controller: true

  "#interrupt-cells":
    const: 2

  gpio-bank:
    description: System-wide GPIO bank index.
    $ref: /schemas/types.yaml#/definitions/uint32

  st,supports-sleepmode:
    description: Whether the controller can sleep or not.
    $ref: /schemas/types.yaml#/definitions/flag

  clocks:
    maxItems: 1

  gpio-ranges:
    maxItems: 1

  ngpios:
    minimum: 0
    maximum: 32

  resets:
    maxItems: 1

required:
  - compatible
  - reg
  - interrupts
  - "#gpio-cells"
  - gpio-controller
  - interrupt-controller
  - gpio-bank

unevaluatedProperties: false

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: mobileye,eyeq5-gpio
    then:
      properties:
        st,supports-sleepmode: false

examples:
  - |
    gpio@8012e080 {
        compatible = "st,nomadik-gpio";
        reg =  <0x8012e080 0x80>;
        interrupts = <0 120 0x4>;
        #gpio-cells = <2>;
        gpio-controller;
        interrupt-controller;
        st,supports-sleepmode;
        gpio-bank = <1>;
    };
+2 −0
Original line number Diff line number Diff line
@@ -2465,6 +2465,7 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik.git
F:	Documentation/devicetree/bindings/arm/ste-*
F:	Documentation/devicetree/bindings/arm/ux500.yaml
F:	Documentation/devicetree/bindings/arm/ux500/
F:	Documentation/devicetree/bindings/gpio/st,nomadik-gpio.yaml
F:	Documentation/devicetree/bindings/i2c/st,nomadik-i2c.yaml
F:	arch/arm/boot/dts/st/ste-*
F:	arch/arm/mach-nomadik/
@@ -2473,6 +2474,7 @@ F: drivers/clk/clk-nomadik.c
F:	drivers/clocksource/clksrc-dbx500-prcmu.c
F:	drivers/dma/ste_dma40*
F:	drivers/pmdomain/st/ste-ux500-pm-domain.c
F:	drivers/gpio/gpio-nomadik.c
F:	drivers/hwspinlock/u8500_hsem.c
F:	drivers/i2c/busses/i2c-nomadik.c
F:	drivers/iio/adc/ab8500-gpadc.c
+12 −0
Original line number Diff line number Diff line
@@ -478,6 +478,18 @@ config GPIO_MXS
	select GPIO_GENERIC
	select GENERIC_IRQ_CHIP

config GPIO_NOMADIK
	bool "Nomadik GPIO driver"
	depends on ARCH_U8500 || ARCH_NOMADIK || MACH_EYEQ5 || COMPILE_TEST
	select GPIOLIB_IRQCHIP
	help
	  Say yes here to support the Nomadik SoC GPIO block. This block is also
	  used by the Mobileye EyeQ5 SoC.

	  It handles up to 32 GPIOs per bank, that can all be interrupt sources.
	  It is deeply interconnected with the associated pinctrl driver as GPIO
	  registers handle muxing ("alternate functions") as well.

config GPIO_NPCM_SGPIO
	bool "Nuvoton SGPIO support"
	depends on ARCH_NPCM || COMPILE_TEST
+1 −0
Original line number Diff line number Diff line
@@ -116,6 +116,7 @@ obj-$(CONFIG_GPIO_MT7621) += gpio-mt7621.o
obj-$(CONFIG_GPIO_MVEBU)		+= gpio-mvebu.o
obj-$(CONFIG_GPIO_MXC)			+= gpio-mxc.o
obj-$(CONFIG_GPIO_MXS)			+= gpio-mxs.o
obj-$(CONFIG_GPIO_NOMADIK)		+= gpio-nomadik.o
obj-$(CONFIG_GPIO_NPCM_SGPIO)		+= gpio-npcm-sgpio.o
obj-$(CONFIG_GPIO_OCTEON)		+= gpio-octeon.o
obj-$(CONFIG_GPIO_OMAP)			+= gpio-omap.o
Loading