Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/gpio/gpio-pca95xx.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006 
0007 title: NXP PCA95xx I2C GPIO multiplexer
0008 
0009 maintainers:
0010   - Krzysztof Kozlowski <krzk@kernel.org>
0011 
0012 description: |+
0013   Bindings for the family of I2C GPIO multiplexers/expanders: NXP PCA95xx,
0014   Maxim MAX73xx
0015 
0016 properties:
0017   compatible:
0018     enum:
0019       - exar,xra1202
0020       - maxim,max7310
0021       - maxim,max7312
0022       - maxim,max7313
0023       - maxim,max7315
0024       - maxim,max7319
0025       - maxim,max7320
0026       - maxim,max7321
0027       - maxim,max7322
0028       - maxim,max7323
0029       - maxim,max7324
0030       - maxim,max7325
0031       - maxim,max7326
0032       - maxim,max7327
0033       - nxp,pca6408
0034       - nxp,pca6416
0035       - nxp,pca9505
0036       - nxp,pca9506
0037       - nxp,pca9534
0038       - nxp,pca9535
0039       - nxp,pca9536
0040       - nxp,pca9537
0041       - nxp,pca9538
0042       - nxp,pca9539
0043       - nxp,pca9554
0044       - nxp,pca9555
0045       - nxp,pca9556
0046       - nxp,pca9557
0047       - nxp,pca9574
0048       - nxp,pca9575
0049       - nxp,pca9698
0050       - nxp,pcal6416
0051       - nxp,pcal6524
0052       - nxp,pcal9535
0053       - nxp,pcal9554b
0054       - nxp,pcal9555a
0055       - onnn,cat9554
0056       - onnn,pca9654
0057       - ti,pca6107
0058       - ti,pca9536
0059       - ti,tca6408
0060       - ti,tca6416
0061       - ti,tca6424
0062       - ti,tca9539
0063       - ti,tca9554
0064 
0065   reg:
0066     maxItems: 1
0067 
0068   gpio-controller: true
0069 
0070   '#gpio-cells':
0071     const: 2
0072 
0073   gpio-line-names:
0074     minItems: 1
0075     maxItems: 40
0076 
0077   interrupts:
0078     maxItems: 1
0079 
0080   interrupt-controller: true
0081 
0082   '#interrupt-cells':
0083     const: 2
0084 
0085   reset-gpios:
0086     maxItems: 1
0087     description:
0088       GPIO specification for the RESET input. This is an active low signal to
0089       the PCA953x.  Not valid for Maxim MAX732x devices.
0090 
0091   vcc-supply:
0092     description:
0093       Optional power supply.  Not valid for Maxim MAX732x devices.
0094 
0095   wakeup-source:
0096     $ref: /schemas/types.yaml#/definitions/flag
0097 
0098 patternProperties:
0099   "^(hog-[0-9]+|.+-hog(-[0-9]+)?)$":
0100     type: object
0101     properties:
0102       gpio-hog: true
0103       gpios: true
0104       input: true
0105       output-high: true
0106       output-low: true
0107       line-name: true
0108 
0109     required:
0110       - gpio-hog
0111       - gpios
0112 
0113     additionalProperties: false
0114 
0115 required:
0116   - compatible
0117   - reg
0118   - gpio-controller
0119   - "#gpio-cells"
0120 
0121 additionalProperties: false
0122 
0123 allOf:
0124   - if:
0125       properties:
0126         compatible:
0127           contains:
0128             enum:
0129               - maxim,max7320
0130               - maxim,max7321
0131               - maxim,max7322
0132               - maxim,max7323
0133               - maxim,max7324
0134               - maxim,max7325
0135               - maxim,max7326
0136               - maxim,max7327
0137     then:
0138       properties:
0139         reset-gpios: false
0140         vcc-supply: false
0141 
0142 examples:
0143   - |
0144     #include <dt-bindings/gpio/gpio.h>
0145     #include <dt-bindings/interrupt-controller/irq.h>
0146 
0147     i2c0 {
0148         #address-cells = <1>;
0149         #size-cells = <0>;
0150 
0151         gpio@20 {
0152             compatible = "nxp,pca9505";
0153             reg = <0x20>;
0154             pinctrl-names = "default";
0155             pinctrl-0 = <&pinctrl_pca9505>;
0156             gpio-controller;
0157             #gpio-cells = <2>;
0158             interrupt-parent = <&gpio3>;
0159             interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
0160 
0161             usb3-sata-sel-hog {
0162                 gpio-hog;
0163                 gpios = <4 GPIO_ACTIVE_HIGH>;
0164                 output-low;
0165                 line-name = "usb3_sata_sel";
0166             };
0167         };
0168     };
0169 
0170   - |
0171     #include <dt-bindings/interrupt-controller/irq.h>
0172 
0173     i2c1 {
0174         #address-cells = <1>;
0175         #size-cells = <0>;
0176 
0177         gpio99: gpio@22 {
0178             compatible = "nxp,pcal6524";
0179             reg = <0x22>;
0180             interrupt-parent = <&gpio6>;
0181             interrupts = <1 IRQ_TYPE_EDGE_FALLING>; /* gpio6_161 */
0182             interrupt-controller;
0183             #interrupt-cells = <2>;
0184             vcc-supply = <&vdds_1v8_main>;
0185             gpio-controller;
0186             #gpio-cells = <2>;
0187             gpio-line-names = "hdmi-ct-hpd", "hdmi.ls-oe", "p02", "p03",
0188                               "vibra", "fault2", "p06", "p07", "en-usb",
0189                               "en-host1", "en-host2", "chg-int", "p14", "p15",
0190                               "mic-int", "en-modem", "shdn-hs-amp",
0191                               "chg-status+red", "green", "blue", "en-esata",
0192                               "fault1", "p26", "p27";
0193         };
0194     };
0195 
0196   - |
0197     #include <dt-bindings/interrupt-controller/irq.h>
0198 
0199     i2c2 {
0200         #address-cells = <1>;
0201         #size-cells = <0>;
0202 
0203         /* MAX7325 with interrupt support enabled */
0204         gpio@6d {
0205             compatible = "maxim,max7325";
0206             reg = <0x6d>;
0207             gpio-controller;
0208             #gpio-cells = <2>;
0209             interrupt-controller;
0210             #interrupt-cells = <2>;
0211             interrupt-parent = <&gpio4>;
0212             interrupts = <29 IRQ_TYPE_EDGE_FALLING>;
0213         };
0214     };
0215 
0216   - |
0217     i2c3 {
0218         #address-cells = <1>;
0219         #size-cells = <0>;
0220 
0221         /* MAX7325 with interrupt support disabled */
0222         gpio@6e {
0223             compatible = "maxim,max7325";
0224             reg = <0x6e>;
0225             gpio-controller;
0226             #gpio-cells = <2>;
0227         };
0228     };