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];