72 lines
2.4 KiB
YAML
72 lines
2.4 KiB
YAML
# Copyright 2022-2023 NXP
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
description: |
|
|
NXP S32 GPIO controller.
|
|
|
|
The GPIO controller provides the option to route external input pad interrupts
|
|
to either the SIUL2 EIRQ interrupt controller or, when available on the SoC,
|
|
the WKPU interrupt controller. By default, GPIO interrupts are routed to the
|
|
SIUL2 EIRQ interrupt controller.
|
|
|
|
To route external interrupts to the WKPU interrupt controller, the GPIO
|
|
specifier must be supplied with the flag `NXP_S32_GPIO_INT_WKPU`. For example,
|
|
the following snippet of devicetree source code instructs the GPIO controller
|
|
to route the interrupt from pin 9 of `gpioa` to the WKPU interrupt controller:
|
|
|
|
#include <zephyr/dt-bindings/gpio/nxp-s32-gpio.h>
|
|
|
|
&device {
|
|
gpios = <&gpioa 9 (NXP_S32_GPIO_INT_WKPU | GPIO_ACTIVE_HIGH)>;
|
|
};
|
|
|
|
Explicitly specifying the routing of a GPIO interrupt to a particular
|
|
interrupt controller allows for the allocation of distinct interrupt
|
|
priorities according to application-specific requirements. This is owing to
|
|
the fact that each interrupt controller features its own interrupt vector.
|
|
To illustrate, it is plausible to allocate the board's button interrupts to
|
|
the interrupt controller configured with a lower priority compared to the one
|
|
designated for the data-ready interrupt originating from a sensor. This
|
|
decision is justified by the potentially higher importance of the latter
|
|
interrupt to the overall system operation.
|
|
|
|
The `NXP_S32_GPIO_INT_WKPU` flag is intended exclusively for specifying WKPU
|
|
as the interrupt controller for the corresponding GPIO. It's worth noting that
|
|
despite being named WKPU, the flag is not meant to configure GPIOs as wake-up
|
|
sources.
|
|
|
|
compatible: "nxp,s32-gpio"
|
|
|
|
include: [gpio-controller.yaml, base.yaml]
|
|
|
|
properties:
|
|
reg:
|
|
required: true
|
|
|
|
reg-names:
|
|
required: true
|
|
|
|
interrupts:
|
|
description: |
|
|
For GPIO ports that have pins can be used for processing
|
|
external interrupt signal, this is a list of GPIO pins and
|
|
respective external interrupt lines (<gpio-pin eirq-line>).
|
|
|
|
nxp,wkpu:
|
|
type: phandle
|
|
description: |
|
|
NXP WKPU controller associated to this GPIO port.
|
|
|
|
nxp,wkpu-interrupts:
|
|
type: array
|
|
description: |
|
|
Map between WKPU external interrupt sources and pins of this GPIO port,
|
|
as in a tuple `<gpio-pin wkpu-interrupt-source>`.
|
|
|
|
"#gpio-cells":
|
|
const: 2
|
|
|
|
gpio-cells:
|
|
- pin
|
|
- flags
|