12#include "dt/dt_spi_device.h"
46 [kDtSpiDeviceRegBlockCore] = 0x40050000,
57 [kDtSpiDevicePeriphIoSck] = {
61 .periph_input_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceSck,
65 [kDtSpiDevicePeriphIoCsb] = {
69 .periph_input_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceCsb,
73 [kDtSpiDevicePeriphIoTpmCsb] = {
78 .outsel_or_dt_pad = 0,
81 [kDtSpiDevicePeriphIoSd0] = {
85 .periph_input_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceSd0,
89 [kDtSpiDevicePeriphIoSd1] = {
93 .periph_input_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceSd1,
97 [kDtSpiDevicePeriphIoSd2] = {
101 .periph_input_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceSd2,
105 [kDtSpiDevicePeriphIoSd3] = {
109 .periph_input_or_direct_pad = kTopEarlgreyDirectPadsSpiDeviceSd3,
122#define TRY_GET_DT(dt, default) ({ if ((dt) < (dt_spi_device_t)0 || (dt) >= kDtSpiDeviceCount) return (default); &spi_device_desc[dt]; })
140 return TRY_GET_DT(dt, 0xdeadbeef)->base_addr[reg_block];
147 if (first_irq == kDtPlicIrqIdNone) {
148 return kDtPlicIrqIdNone;
158 if (first_irq == kDtPlicIrqIdNone) {
171 return (
dt_alert_id_t)((uint32_t)spi_device_desc[dt].first_alert + (uint32_t)alert);
178 if (alert < spi_device_desc[dt].first_alert || alert >= spi_device_desc[dt].first_alert + (
dt_alert_id_t)count) {
189 return TRY_GET_DT(dt, kDtPeriphIoConstantHighZ)->periph_io[sig];