Kernel-4.18.0-80.el8_gpio-vf610

  • Freescale VF610 PORT/GPIO module

The Freescale PORT/GPIO modules are two adjacent modules providing GPIO
functionality. Each pair serves 32 GPIOs. The VF610 has 5 instances of
each, and each PORT module has its own interrupt.

Required properties for GPIO node:

  • compatible : Should be “fsl,-gpio”, below is supported list:
         "fsl,vf610-gpio"
         "fsl,imx7ulp-gpio"
    
  • reg : The first reg tuple represents the PORT module, the second tuple
    the GPIO module.
  • interrupts : Should be the port interrupt shared by all 32 pins.
  • gpio-controller : Marks the device node as a gpio controller.
  • #gpio-cells : Should be two. The first cell is the pin number and
    the second cell is used to specify the gpio polarity:
    0 = active high
    1 = active low
    
  • interrupt-controller: Marks the device node as an interrupt controller.
  • #interrupt-cells : Should be 2. The first cell is the GPIO number.
    The second cell bits[3:0] is used to specify 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.
    

Note: Each GPIO port should have an alias correctly numbered in “aliases”
node.

Examples:

aliases {
gpio0 = &gpio1;
gpio1 = &gpio2;
};

gpio1: gpio@40049000 {
compatible = “fsl,vf610-gpio”;
reg = <0x40049000 0x1000 0x400ff000 0x40>;
interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
gpio-ranges = <&iomuxc 0 0 32>;
};

gpio2: gpio@4004a000 {
compatible = “fsl,vf610-gpio”;
reg = <0x4004a000 0x1000 0x400ff040 0x40>;
interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
gpio-ranges = <&iomuxc 0 32 32>;
};