Commit fa889d85 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull GPIO updates from Linus Walleij:
 "This is the bulk of GPIO changes for the v5.6 kernel cycle.

  This is a pretty calm cycle so far, nothing special going on really.
  Some more changes will come in from the irqchip and pin control trees.

  I also deleted an orphan include file for FMC that was dangling since
  subsystem was removed.

  Core changes:

   - Document the usecases for the kernelspace vs userspace handling of
     GPIOs.

   - Handle MSI (message signalled interrupts) properly in the core
     hierarchical irqdomain code.

   - Fix a rare race condition while initializing the descriptor array.

  New drivers:

   - Xylon LogiCVC GPIO driver.

   - WDC934x GPIO controller driver.

  Driver improvements:

   - Implemented suspend/resume in the Tegra driver.

   - MPC8xx edge detection fixup.

   - Properly convert ThunderX to use hierarchical irqdomain with
     GPIOLIB_IRQCHIP on top of the revert of the previous buggy
     switchover. This time it works (hopefully).

  Misc:

   - Drop a FMC remnant file <linux/ipmi-fru.h>

   - A slew of fixes"

* tag 'gpio-v5.6-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (48 commits)
  MAINTAINERS: Replace Tien Hock Loh as Altera PIO maintainer
  gpiolib: hold gpio devices lock until ->descs array is initialised
  gpio: aspeed-sgpio: fixed typos
  gpio: mvebu: clear irq in edge cause register before unmask edge irq
  gpiolib: Lower verbosity when allocating hierarchy irq
  gpiolib: Remove duplicated function gpio_do_set_config()
  gpio: Fix the no return statement warning
  gpio: wcd934x: Add support to wcd934x gpio controller
  gpiolib: remove set but not used variable 'config'
  gpio: vx855: fixed a typo
  gpio: mockup: sort headers alphabetically
  gpio: mockup: update the license tag
  gpio: Remove the unused flags
  gpiolib: Set lockdep class for hierarchical irq domains
  gpio: thunderx: Switch to GPIOLIB_IRQCHIP
  gpiolib: Add the support for the msi parent domain
  gpiolib: Add support for the irqdomain which doesn't use irq_fwspec as arg
  gpio: Add use guidance documentation
  dt-bindings: gpio: wcd934x: Add bindings for gpio
  gpio: altera: change to platform_get_irq_optional to avoid false-positive error
  ...
parents b3a60822 0282c72d
Loading
Loading
Loading
Loading
+47 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/gpio/qcom,wcd934x-gpio.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: WCD9340/WCD9341 GPIO controller

maintainers:
  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>

description: |
  Qualcomm Technologies Inc WCD9340/WCD9341 Audio Codec has integrated
  gpio controller to control 5 gpios on the chip.

properties:
  compatible:
    enum:
      - qcom,wcd9340-gpio
      - qcom,wcd9341-gpio

  reg:
    maxItems: 1

  gpio-controller: true

  '#gpio-cells':
    const: 2

required:
  - compatible
  - reg
  - gpio-controller
  - "#gpio-cells"

additionalProperties: false

examples:
  - |
    wcdgpio: gpio@42 {
        compatible = "qcom,wcd9340-gpio";
        reg = <0x042 0x2>;
        gpio-controller;
        #gpio-cells = <2>;
    };

...
+2 −1
Original line number Diff line number Diff line
@@ -18,7 +18,8 @@ Required Properties:
    - "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.
    - "renesas,gpio-r8a7796": for R8A7796 (R-Car M3-W) compatible GPIO controller.
    - "renesas,gpio-r8a7796": for R8A77960 (R-Car M3-W) compatible GPIO controller.
    - "renesas,gpio-r8a77961": for R8A77961 (R-Car M3-W+) compatible GPIO controller.
    - "renesas,gpio-r8a77965": for R8A77965 (R-Car M3-N) compatible GPIO controller.
    - "renesas,gpio-r8a77970": for R8A77970 (R-Car V3M) compatible GPIO controller.
    - "renesas,gpio-r8a77980": for R8A77980 (R-Car V3H) compatible GPIO controller.
+69 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
# Copyright 2019 Bootlin
%YAML 1.2
---
$id: "http://devicetree.org/schemas/gpio/xylon,logicvc-gpio.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"

title: Xylon LogiCVC GPIO controller

maintainers:
  - Paul Kocialkowski <paul.kocialkowski@bootlin.com>

description: |
  The LogiCVC GPIO describes the GPIO block included in the LogiCVC display
  controller. These are meant to be used for controlling display-related
  signals.

  The controller exposes GPIOs from the display and power control registers,
  which are mapped by the driver as follows:
  - GPIO[4:0] (display control) mapped to index 0-4
  - EN_BLIGHT (power control) mapped to index 5
  - EN_VDD (power control) mapped to index 6
  - EN_VEE (power control) mapped to index 7
  - V_EN (power control) mapped to index 8

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

  compatible:
    enum:
      - xylon,logicvc-3.02.a-gpio

  reg:
    maxItems: 1

  "#gpio-cells":
    const: 2

  gpio-controller: true

  gpio-line-names:
    minItems: 1
    maxItems: 9

required:
  - compatible
  - reg
  - "#gpio-cells"
  - gpio-controller

examples:
  - |
    logicvc: logicvc@43c00000 {
      compatible = "xylon,logicvc-3.02.a", "syscon", "simple-mfd";
      reg = <0x43c00000 0x6000>;

      #address-cells = <1>;
      #size-cells = <1>;

      logicvc_gpio: gpio@40 {
        compatible = "xylon,logicvc-3.02.a-gpio";
        reg = <0x40 0x40>;
        gpio-controller;
        #gpio-cells = <2>;
        gpio-line-names = "GPIO0", "GPIO1", "GPIO2", "GPIO3", "GPIO4",
               "EN_BLIGHT", "EN_VDD", "EN_VEE", "V_EN";
      };
    };
+50 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
# Copyright 2019 Bootlin
%YAML 1.2
---
$id: "http://devicetree.org/schemas/mfd/xylon,logicvc.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"

title: Xylon LogiCVC multi-function device

maintainers:
  - Paul Kocialkowski <paul.kocialkowski@bootlin.com>

description: |
  The LogiCVC is a display controller that also contains a GPIO controller.
  As a result, a multi-function device is exposed as parent of the display
  and GPIO blocks.

properties:
  compatible:
    items:
      - enum:
          - xylon,logicvc-3.02.a
      - const: syscon
      - const: simple-mfd

  reg:
    maxItems: 1

select:
  properties:
    compatible:
      contains:
        enum:
          - xylon,logicvc-3.02.a

  required:
    - compatible

required:
  - compatible
  - reg

examples:
  - |
    logicvc: logicvc@43c00000 {
      compatible = "xylon,logicvc-3.02.a", "syscon", "simple-mfd";
      reg = <0x43c00000 0x6000>;
      #address-cells = <1>;
      #size-cells = <1>;
    };
+2 −0
Original line number Diff line number Diff line
@@ -1060,6 +1060,8 @@ patternProperties:
    description: Xilinx
  "^xunlong,.*":
    description: Shenzhen Xunlong Software CO.,Limited
  "^xylon,.*":
    description: Xylon
  "^yones-toptech,.*":
    description: Yones Toptech Co., Ltd.
  "^ysoft,.*":
Loading