Based on kernel version 6.13
. Page generated on 2025-01-21 08:20 EST
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | APM X-Gene Standby GPIO controller bindings This is a gpio controller in the standby domain. It also supports interrupt in some particular pins which are sourced to its parent interrupt controller as diagram below: +-----------------+ | X-Gene standby | | GPIO controller +------ GPIO_0 +------------+ | | ... | Parent IRQ | EXT_INT_0 | +------ GPIO_8/EXT_INT_0 | controller | (SPI40) | | ... | (GICv2) +--------------+ +------ GPIO_[N+8]/EXT_INT_N | | ... | | | | EXT_INT_N | +------ GPIO_[N+9] | | (SPI[40 + N])| | ... | +--------------+ +------ GPIO_MAX +------------+ +-----------------+ Required properties: - compatible: "apm,xgene-gpio-sb" for the X-Gene Standby GPIO controller - reg: Physical base address and size of the controller's registers - #gpio-cells: Should be two. - first cell is the pin number - second cell is used to specify the gpio polarity: 0 = active high 1 = active low - gpio-controller: Marks the device node as a GPIO controller. - interrupts: The EXT_INT_0 parent interrupt resource must be listed first. - interrupt-cells: Should be two. - first cell is 0-N corresponding for EXT_INT_0 to EXT_INT_N. - second cell is used to specify flags. - interrupt-controller: Marks the device node as an interrupt controller. - apm,nr-gpios: Optional, specify number of gpios pin. - apm,nr-irqs: Optional, specify number of interrupt pins. - apm,irq-start: Optional, specify lowest gpio pin support interrupt. Example: sbgpio: gpio@17001000{ compatible = "apm,xgene-gpio-sb"; reg = <0x0 0x17001000 0x0 0x400>; #gpio-cells = <2>; gpio-controller; interrupts = <0x0 0x28 0x1>, <0x0 0x29 0x1>, <0x0 0x2a 0x1>, <0x0 0x2b 0x1>, <0x0 0x2c 0x1>, <0x0 0x2d 0x1>; interrupt-parent = <&gic>; #interrupt-cells = <2>; interrupt-controller; apm,nr-gpios = <22>; apm,nr-irqs = <6>; apm,irq-start = <8>; }; testuser { compatible = "example,testuser"; /* Use the GPIO_13/EXT_INT_5 line as an active high triggered * level interrupt */ interrupts = <5 4>; interrupt-parent = <&sbgpio>; }; |