12#include "dt/dt_gpio.h"
46 [kDtGpioRegBlockCore] = 0x40040000,
57 [kDtGpioPeriphIoGpio0] = {
65 [kDtGpioPeriphIoGpio1] = {
73 [kDtGpioPeriphIoGpio2] = {
81 [kDtGpioPeriphIoGpio3] = {
89 [kDtGpioPeriphIoGpio4] = {
97 [kDtGpioPeriphIoGpio5] = {
105 [kDtGpioPeriphIoGpio6] = {
113 [kDtGpioPeriphIoGpio7] = {
121 [kDtGpioPeriphIoGpio8] = {
129 [kDtGpioPeriphIoGpio9] = {
137 [kDtGpioPeriphIoGpio10] = {
145 [kDtGpioPeriphIoGpio11] = {
153 [kDtGpioPeriphIoGpio12] = {
161 [kDtGpioPeriphIoGpio13] = {
169 [kDtGpioPeriphIoGpio14] = {
177 [kDtGpioPeriphIoGpio15] = {
185 [kDtGpioPeriphIoGpio16] = {
193 [kDtGpioPeriphIoGpio17] = {
201 [kDtGpioPeriphIoGpio18] = {
209 [kDtGpioPeriphIoGpio19] = {
217 [kDtGpioPeriphIoGpio20] = {
225 [kDtGpioPeriphIoGpio21] = {
233 [kDtGpioPeriphIoGpio22] = {
241 [kDtGpioPeriphIoGpio23] = {
249 [kDtGpioPeriphIoGpio24] = {
257 [kDtGpioPeriphIoGpio25] = {
265 [kDtGpioPeriphIoGpio26] = {
273 [kDtGpioPeriphIoGpio27] = {
281 [kDtGpioPeriphIoGpio28] = {
289 [kDtGpioPeriphIoGpio29] = {
297 [kDtGpioPeriphIoGpio30] = {
305 [kDtGpioPeriphIoGpio31] = {
322#define TRY_GET_DT(dt, default) ({ if ((dt) < (dt_gpio_t)0 || (dt) >= kDtGpioCount) return (default); &gpio_desc[dt]; })
340 return TRY_GET_DT(dt, 0xdeadbeef)->base_addr[reg_block];
347 if (first_irq == kDtPlicIrqIdNone) {
348 return kDtPlicIrqIdNone;
358 if (first_irq == kDtPlicIrqIdNone) {
371 return (
dt_alert_id_t)((uint32_t)gpio_desc[dt].first_alert + (uint32_t)alert);
378 if (alert < gpio_desc[dt].first_alert || alert >= gpio_desc[dt].first_alert + (
dt_alert_id_t)count) {
389 return TRY_GET_DT(dt, kDtPeriphIoConstantHighZ)->periph_io[sig];