12#include "hw/top/dt/dt_spi_host.h"
21 uint32_t
reg_addr[kDtSpiHostRegBlockCount];
22 uint32_t
mem_addr[kDtSpiHostMemoryCount];
23 uint32_t
mem_size[kDtSpiHostMemoryCount];
42 [kDtSpiHostRegBlockCore] = 0x40060000,
56 [kDtSpiHostPeriphIoSck] = {
60 .periph_input_or_direct_pad = kTopEnglishbreakfastDirectPadsSpiHost0Sck,
64 [kDtSpiHostPeriphIoCsb] = {
68 .periph_input_or_direct_pad = kTopEnglishbreakfastDirectPadsSpiHost0Csb,
72 [kDtSpiHostPeriphIoSd0] = {
76 .periph_input_or_direct_pad = kTopEnglishbreakfastDirectPadsSpiHost0Sd0,
80 [kDtSpiHostPeriphIoSd1] = {
84 .periph_input_or_direct_pad = kTopEnglishbreakfastDirectPadsSpiHost0Sd1,
88 [kDtSpiHostPeriphIoSd2] = {
92 .periph_input_or_direct_pad = kTopEnglishbreakfastDirectPadsSpiHost0Sd2,
96 [kDtSpiHostPeriphIoSd3] = {
100 .periph_input_or_direct_pad = kTopEnglishbreakfastDirectPadsSpiHost0Sd3,
113#define TRY_GET_DT(dt, default) ({ if ((dt) < (dt_spi_host_t)0 || (dt) >= kDtSpiHostCount) return (default); &spi_host_desc[dt]; })
131 return TRY_GET_DT(dt, 0xdeadbeef)->reg_addr[reg_block];
138 return TRY_GET_DT(dt, 0xdeadbeef)->mem_addr[mem];
152 if (first_irq == kDtPlicIrqIdNone) {
153 return kDtPlicIrqIdNone;
163 if (first_irq == kDtPlicIrqIdNone) {
178 return TRY_GET_DT(dt, kDtPeriphIoConstantHighZ)->periph_io[sig];