48 [kDtSocProxyRegBlockCore] = 0x22030000,
51 [kDtSocProxyMemoryCtn] = 0x40000000,
54 [kDtSocProxyMemoryCtn] = 0x80000000,
67 [kDtSocProxyPeriphIoSocGpi0] = {
71 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpi0,
75 [kDtSocProxyPeriphIoSocGpi1] = {
79 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpi1,
83 [kDtSocProxyPeriphIoSocGpi2] = {
87 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpi2,
91 [kDtSocProxyPeriphIoSocGpi3] = {
95 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpi3,
99 [kDtSocProxyPeriphIoSocGpi4] = {
103 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpi4,
107 [kDtSocProxyPeriphIoSocGpi5] = {
111 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpi5,
115 [kDtSocProxyPeriphIoSocGpi6] = {
119 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpi6,
123 [kDtSocProxyPeriphIoSocGpi7] = {
127 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpi7,
131 [kDtSocProxyPeriphIoSocGpi8] = {
135 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpi8,
139 [kDtSocProxyPeriphIoSocGpi9] = {
143 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpi9,
147 [kDtSocProxyPeriphIoSocGpi10] = {
151 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpi10,
155 [kDtSocProxyPeriphIoSocGpi11] = {
159 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpi11,
163 [kDtSocProxyPeriphIoSocGpi12] = {
168 .outsel_or_dt_pad = 0,
171 [kDtSocProxyPeriphIoSocGpi13] = {
176 .outsel_or_dt_pad = 0,
179 [kDtSocProxyPeriphIoSocGpi14] = {
184 .outsel_or_dt_pad = 0,
187 [kDtSocProxyPeriphIoSocGpi15] = {
192 .outsel_or_dt_pad = 0,
195 [kDtSocProxyPeriphIoSocGpo0] = {
199 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpo0,
203 [kDtSocProxyPeriphIoSocGpo1] = {
207 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpo1,
211 [kDtSocProxyPeriphIoSocGpo2] = {
215 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpo2,
219 [kDtSocProxyPeriphIoSocGpo3] = {
223 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpo3,
227 [kDtSocProxyPeriphIoSocGpo4] = {
231 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpo4,
235 [kDtSocProxyPeriphIoSocGpo5] = {
239 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpo5,
243 [kDtSocProxyPeriphIoSocGpo6] = {
247 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpo6,
251 [kDtSocProxyPeriphIoSocGpo7] = {
255 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpo7,
259 [kDtSocProxyPeriphIoSocGpo8] = {
263 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpo8,
267 [kDtSocProxyPeriphIoSocGpo9] = {
271 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpo9,
275 [kDtSocProxyPeriphIoSocGpo10] = {
279 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpo10,
283 [kDtSocProxyPeriphIoSocGpo11] = {
287 .periph_input_or_direct_pad = kTopDarjeelingDirectPadsSocProxySocGpo11,
291 [kDtSocProxyPeriphIoSocGpo12] = {
295 .periph_input_or_direct_pad = 0,
299 [kDtSocProxyPeriphIoSocGpo13] = {
303 .periph_input_or_direct_pad = 0,
307 [kDtSocProxyPeriphIoSocGpo14] = {
311 .periph_input_or_direct_pad = 0,
315 [kDtSocProxyPeriphIoSocGpo15] = {
319 .periph_input_or_direct_pad = 0,
332#define TRY_GET_DT(dt, default) ({ if ((dt) < (dt_soc_proxy_t)0 || (dt) >= kDtSocProxyCount) return (default); &soc_proxy_desc[dt]; })
350 return TRY_GET_DT(dt, 0xdeadbeef)->reg_addr[reg_block];
357 return TRY_GET_DT(dt, 0xdeadbeef)->mem_addr[mem];
371 if (first_irq == kDtPlicIrqIdNone) {
372 return kDtPlicIrqIdNone;
382 if (first_irq == kDtPlicIrqIdNone) {
395 return (
dt_alert_id_t)((uint32_t)soc_proxy_desc[dt].first_alert + (uint32_t)alert);
402 if (alert < soc_proxy_desc[dt].first_alert || alert >= soc_proxy_desc[dt].first_alert + (
dt_alert_id_t)count) {
413 return TRY_GET_DT(dt, kDtPeriphIoConstantHighZ)->periph_io[sig];