727e589448
In Infineon XMC4XXX SoCs, gpio interrupts are triggered via an Event Request Unit (ERU) module. A subset of the gpios are connected to the ERU. The ERU monitors edge triggers and creates a SR. This driver configures the ERU for a target port/pin combination for rising/falling edge events. Note that the ERU module does not generate SR based on the gpio level. Internally the ERU tracks the *status* of an event. The status is set on a positive edge and unset on a negative edge (or vice-versa depending on the configuration). The value of the status is used to implement a level triggered interrupt; The ISR checks the status flag and calls the callback function if the status is set. The ERU configurations for supported port/pin combinations are stored in a devicetree file dts/arm/infineon/xmc4xxx_x_x-intc.dtsi. The configurations are stored in the opaque array uint16 port_line_mapping[]. Signed-off-by: Andriy Gelman <andriy.gelman@gmail.com>
23 lines
640 B
YAML
23 lines
640 B
YAML
description: Infineon XMC4XXX series Interrupt Controller
|
|
|
|
compatible: "infineon,xmc4xxx-intc"
|
|
|
|
include: base.yaml
|
|
|
|
properties:
|
|
reg:
|
|
required: true
|
|
|
|
port-line-mapping:
|
|
type: array
|
|
required: true
|
|
description: |
|
|
An array to store the Event Request Unit (ERU) configuration for a given port/pin
|
|
combintation. The array elements are opaque fields set using the macro
|
|
XMC4XXX_INTC_SET_LINE_MAP(port, pin, eru_src, line);
|
|
eru_src defines where the specific port/pin combination is connected in the ERU.
|
|
line defines the SR line that will be raised by the event.
|
|
|
|
interrupts:
|
|
required: true
|