Commit dd8efeb7 authored by Krzysztof Kozlowski's avatar Krzysztof Kozlowski Committed by Linus Walleij
Browse files

dt-bindings: gpio: convert bindings for NXP PCA953x family to dtschema



Convert the NXP PCA953x family of GPIO expanders bindings to device tree
schema.

Signed-off-by: default avatarKrzysztof Kozlowski <krzk@kernel.org>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20200916155715.21009-2-krzk@kernel.org


Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 60e74329
Loading
Loading
Loading
Loading
+0 −90
Original line number Diff line number Diff line
* NXP PCA953x I2C GPIO multiplexer

Required properties:
 - compatible: Has to contain one of the following:
	nxp,pca6416
	nxp,pca9505
	nxp,pca9534
	nxp,pca9535
	nxp,pca9536
	nxp,pca9537
	nxp,pca9538
	nxp,pca9539
	nxp,pca9554
	nxp,pca9555
	nxp,pca9556
	nxp,pca9557
	nxp,pca9574
	nxp,pca9575
	nxp,pca9698
	nxp,pcal6416
	nxp,pcal6524
	nxp,pcal9535
	nxp,pcal9555a
	maxim,max7310
	maxim,max7312
	maxim,max7313
	maxim,max7315
	ti,pca6107
	ti,pca9536
	ti,tca6408
	ti,tca6416
	ti,tca6424
	ti,tca9539
	ti,tca9554
	onnn,cat9554
	onnn,pca9654
	exar,xra1202
 - gpio-controller: if used as gpio expander.
 - #gpio-cells: if used as gpio expander.
 - interrupt-controller: if to be used as interrupt expander.
 - #interrupt-cells: if to be used as interrupt expander.

Optional properties:
 - interrupts: interrupt specifier for the device's interrupt output.
 - reset-gpios: GPIO specification for the RESET input. This is an
		active low signal to the PCA953x.
 - vcc-supply:	power supply regulator.

Example:


	gpio@20 {
		compatible = "nxp,pca9505";
		reg = <0x20>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_pca9505>;
		gpio-controller;
		#gpio-cells = <2>;
		interrupt-parent = <&gpio3>;
		interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
	};


Example with Interrupts:


	gpio99: gpio@22 {
		compatible = "nxp,pcal6524";
		reg = <0x22>;
		interrupt-parent = <&gpio6>;
		interrupts = <1 IRQ_TYPE_EDGE_FALLING>;	/* gpio6_161 */
		interrupt-controller;
		#interrupt-cells = <2>;
		vcc-supply = <&vdds_1v8_main>;
		gpio-controller;
		#gpio-cells = <2>;
		gpio-line-names =
			"hdmi-ct-hpd", "hdmi.ls-oe", "p02", "p03", "vibra", "fault2", "p06", "p07",
			"en-usb", "en-host1", "en-host2", "chg-int", "p14", "p15", "mic-int", "en-modem",
			"shdn-hs-amp", "chg-status+red", "green", "blue", "en-esata", "fault1", "p26", "p27";
	};

	ts3a227@3b {
		compatible = "ti,ts3a227e";
		reg = <0x3b>;
		interrupt-parent = <&gpio99>;
		interrupts = <14 IRQ_TYPE_EDGE_RISING>;
		ti,micbias = <0>;	/* 2.1V */
	};
+166 −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/gpio-pca95xx.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: NXP PCA95xx I2C GPIO multiplexer

maintainers:
  - Krzysztof Kozlowski <krzk@kernel.org>

properties:
  compatible:
    enum:
      - exar,xra1202
      - maxim,max7310
      - maxim,max7312
      - maxim,max7313
      - maxim,max7315
      - nxp,pca6416
      - nxp,pca9505
      - nxp,pca9534
      - nxp,pca9535
      - nxp,pca9536
      - nxp,pca9537
      - nxp,pca9538
      - nxp,pca9539
      - nxp,pca9554
      - nxp,pca9555
      - nxp,pca9556
      - nxp,pca9557
      - nxp,pca9574
      - nxp,pca9575
      - nxp,pca9698
      - nxp,pcal6416
      - nxp,pcal6524
      - nxp,pcal9535
      - nxp,pcal9555a
      - onnn,cat9554
      - onnn,pca9654
      - ti,pca6107
      - ti,pca9536
      - ti,tca6408
      - ti,tca6416
      - ti,tca6424
      - ti,tca9539
      - ti,tca9554

  reg:
    maxItems: 1

  gpio-controller: true

  '#gpio-cells':
    const: 2

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

  interrupts:
    maxItems: 1

  interrupt-controller: true

  '#interrupt-cells':
    const: 2

  reset-gpios:
    description:
      GPIO specification for the RESET input. This is an active low signal to
      the PCA953x.

  vcc-supply:
    description:
      Optional power supply

  wakeup-source:
    $ref: /schemas/types.yaml#/definitions/flag

patternProperties:
  "^(hog-[0-9]+|.+-hog(-[0-9]+)?)$":
    type: object
    properties:
      gpio-hog: true
      gpios: true
      input: true
      output-high: true
      output-low: true
      line-name: true

    required:
      - gpio-hog
      - gpios

    additionalProperties: false

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

additionalProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/irq.h>

    i2c0 {
        #address-cells = <1>;
        #size-cells = <0>;

        gpio@20 {
            compatible = "nxp,pca9505";
            reg = <0x20>;
            pinctrl-names = "default";
            pinctrl-0 = <&pinctrl_pca9505>;
            gpio-controller;
            #gpio-cells = <2>;
            interrupt-parent = <&gpio3>;
            interrupts = <23 IRQ_TYPE_LEVEL_LOW>;

            usb3-sata-sel-hog {
                gpio-hog;
                gpios = <4 GPIO_ACTIVE_HIGH>;
                output-low;
                line-name = "usb3_sata_sel";
            };
        };
    };

  - |
    #include <dt-bindings/interrupt-controller/irq.h>

    i2c1 {
        #address-cells = <1>;
        #size-cells = <0>;

        gpio99: gpio@22 {
            compatible = "nxp,pcal6524";
            reg = <0x22>;
            interrupt-parent = <&gpio6>;
            interrupts = <1 IRQ_TYPE_EDGE_FALLING>; /* gpio6_161 */
            interrupt-controller;
            #interrupt-cells = <2>;
            vcc-supply = <&vdds_1v8_main>;
            gpio-controller;
            #gpio-cells = <2>;
            gpio-line-names = "hdmi-ct-hpd", "hdmi.ls-oe", "p02", "p03",
                              "vibra", "fault2", "p06", "p07", "en-usb",
                              "en-host1", "en-host2", "chg-int", "p14", "p15",
                              "mic-int", "en-modem", "shdn-hs-amp",
                              "chg-status+red", "green", "blue", "en-esata",
                              "fault1", "p26", "p27";
        };

        ts3a227@3b {
            compatible = "ti,ts3a227e";
            reg = <0x3b>;
            interrupt-parent = <&gpio99>;
            interrupts = <14 IRQ_TYPE_EDGE_RISING>;
            ti,micbias = <0>; /* 2.1V */
        };
    };
+0 −4
Original line number Diff line number Diff line
@@ -306,10 +306,6 @@ properties:
          - nuvoton,npct601
            # Nuvoton Temperature Sensor
          - nuvoton,w83773g
            # Octal SMBus and I2C registered interface
          - nxp,pca9556
            # 8-bit I2C-bus and SMBus I/O port with reset
          - nxp,pca9557
            # OKI ML86V7667 video decoder
          - oki,ml86v7667
            # OV5642: Color CMOS QSXGA (5-megapixel) Image Sensor with OmniBSI and Embedded TrueFocus