12#include "hw/top/dt/dt_otp_macro.h"
36 [kDtOtpMacroRegBlockPrim] = 0x40138000,
49 [kDtOtpMacroPeriphIoTest0] = {
53 .periph_input_or_direct_pad = 0,
57 [kDtOtpMacroPeriphIoTest1] = {
61 .periph_input_or_direct_pad = 0,
62 .outsel_or_dt_pad = 0,
65 [kDtOtpMacroPeriphIoTest2] = {
69 .periph_input_or_direct_pad = 0,
70 .outsel_or_dt_pad = 0,
73 [kDtOtpMacroPeriphIoTest3] = {
77 .periph_input_or_direct_pad = 0,
78 .outsel_or_dt_pad = 0,
81 [kDtOtpMacroPeriphIoTest4] = {
85 .periph_input_or_direct_pad = 0,
86 .outsel_or_dt_pad = 0,
89 [kDtOtpMacroPeriphIoTest5] = {
93 .periph_input_or_direct_pad = 0,
94 .outsel_or_dt_pad = 0,
97 [kDtOtpMacroPeriphIoTest6] = {
101 .periph_input_or_direct_pad = 0,
102 .outsel_or_dt_pad = 0,
105 [kDtOtpMacroPeriphIoTest7] = {
109 .periph_input_or_direct_pad = 0,
110 .outsel_or_dt_pad = 0,
122#define TRY_GET_DT(dt, default) ({ if ((dt) < (dt_otp_macro_t)0 || (dt) >= kDtOtpMacroCount) return (default); &otp_macro_desc[dt]; })
140 return TRY_GET_DT(dt, 0xdeadbeef)->reg_addr[reg_block];
147 return TRY_GET_DT(dt, 0xdeadbeef)->mem_addr[mem];
163 return TRY_GET_DT(dt, kDtPeriphIoConstantHighZ)->periph_io[sig];