12#include "dt/dt_gpio.h"
45 [kDtGpioRegBlockCore] = 0x40040000,
55 [kDtGpioPeriphIoGpio0] = {
63 [kDtGpioPeriphIoGpio1] = {
71 [kDtGpioPeriphIoGpio2] = {
79 [kDtGpioPeriphIoGpio3] = {
87 [kDtGpioPeriphIoGpio4] = {
95 [kDtGpioPeriphIoGpio5] = {
103 [kDtGpioPeriphIoGpio6] = {
111 [kDtGpioPeriphIoGpio7] = {
119 [kDtGpioPeriphIoGpio8] = {
127 [kDtGpioPeriphIoGpio9] = {
135 [kDtGpioPeriphIoGpio10] = {
143 [kDtGpioPeriphIoGpio11] = {
151 [kDtGpioPeriphIoGpio12] = {
159 [kDtGpioPeriphIoGpio13] = {
167 [kDtGpioPeriphIoGpio14] = {
175 [kDtGpioPeriphIoGpio15] = {
183 [kDtGpioPeriphIoGpio16] = {
191 [kDtGpioPeriphIoGpio17] = {
199 [kDtGpioPeriphIoGpio18] = {
207 [kDtGpioPeriphIoGpio19] = {
215 [kDtGpioPeriphIoGpio20] = {
223 [kDtGpioPeriphIoGpio21] = {
231 [kDtGpioPeriphIoGpio22] = {
239 [kDtGpioPeriphIoGpio23] = {
247 [kDtGpioPeriphIoGpio24] = {
255 [kDtGpioPeriphIoGpio25] = {
263 [kDtGpioPeriphIoGpio26] = {
271 [kDtGpioPeriphIoGpio27] = {
279 [kDtGpioPeriphIoGpio28] = {
287 [kDtGpioPeriphIoGpio29] = {
295 [kDtGpioPeriphIoGpio30] = {
303 [kDtGpioPeriphIoGpio31] = {
313 .input_period_counter_count = 0,
323#define TRY_GET_DT(dt, default) ({ if ((dt) < (dt_gpio_t)0 || (dt) >= kDtGpioCount) return (default); &gpio_desc[dt]; })
341 return TRY_GET_DT(dt, 0xdeadbeef)->base_addr[reg_block];
348 if (first_irq == kDtPlicIrqIdNone) {
349 return kDtPlicIrqIdNone;
359 if (first_irq == kDtPlicIrqIdNone) {
374 return TRY_GET_DT(dt, kDtPeriphIoConstantHighZ)->periph_io[sig];
397 return TRY_GET_DT(dt, 0)->ipgen_ext.input_period_counter_count;