Kernel-4.18.0-80.el8_gpio-pca953x

  • NXP PCA953x I2C GPIO multiplexer

Required properties:

  • compatible: Has to contain one of the following:
    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,pcal6524
    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,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:

  • 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>;
    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 */
};