12#include "dt/dt_gpio.h"
46 [kDtGpioRegBlockCore] = 0x30000000,
57 [kDtGpioPeriphIoGpio0] = {
61 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio0,
65 [kDtGpioPeriphIoGpio1] = {
69 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio1,
73 [kDtGpioPeriphIoGpio2] = {
77 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio2,
81 [kDtGpioPeriphIoGpio3] = {
85 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio3,
89 [kDtGpioPeriphIoGpio4] = {
93 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio4,
97 [kDtGpioPeriphIoGpio5] = {
101 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio5,
105 [kDtGpioPeriphIoGpio6] = {
109 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio6,
113 [kDtGpioPeriphIoGpio7] = {
117 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio7,
121 [kDtGpioPeriphIoGpio8] = {
125 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio8,
129 [kDtGpioPeriphIoGpio9] = {
133 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio9,
137 [kDtGpioPeriphIoGpio10] = {
141 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio10,
145 [kDtGpioPeriphIoGpio11] = {
149 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio11,
153 [kDtGpioPeriphIoGpio12] = {
157 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio12,
161 [kDtGpioPeriphIoGpio13] = {
165 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio13,
169 [kDtGpioPeriphIoGpio14] = {
173 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio14,
177 [kDtGpioPeriphIoGpio15] = {
181 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio15,
185 [kDtGpioPeriphIoGpio16] = {
189 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio16,
193 [kDtGpioPeriphIoGpio17] = {
197 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio17,
201 [kDtGpioPeriphIoGpio18] = {
205 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio18,
209 [kDtGpioPeriphIoGpio19] = {
213 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio19,
217 [kDtGpioPeriphIoGpio20] = {
221 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio20,
225 [kDtGpioPeriphIoGpio21] = {
229 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio21,
233 [kDtGpioPeriphIoGpio22] = {
237 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio22,
241 [kDtGpioPeriphIoGpio23] = {
245 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio23,
249 [kDtGpioPeriphIoGpio24] = {
253 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio24,
257 [kDtGpioPeriphIoGpio25] = {
261 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio25,
265 [kDtGpioPeriphIoGpio26] = {
269 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio26,
273 [kDtGpioPeriphIoGpio27] = {
277 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio27,
281 [kDtGpioPeriphIoGpio28] = {
285 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio28,
289 [kDtGpioPeriphIoGpio29] = {
293 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio29,
297 [kDtGpioPeriphIoGpio30] = {
301 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio30,
305 [kDtGpioPeriphIoGpio31] = {
309 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsGpioGpio31,
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];