diff --git a/hw/sd/dwc_sdmmc.c b/hw/sd/dwc_sdmmc.c index 9b9cf1a7726a..de08604a7678 100644 --- a/hw/sd/dwc_sdmmc.c +++ b/hw/sd/dwc_sdmmc.c @@ -417,6 +417,10 @@ static void dwc_sdmmc_write(void *opaque, hwaddr offset, dwc_sdmmc_update_irq(s); break; + case A_SDMMC_CLKSRC: + s->clksrc = value; + break; + case A_SDMMC_CMD: { s->cmd = value; if (FIELD_EX32(value, SDMMC_CMD, START)) { @@ -484,6 +488,8 @@ static uint64_t dwc_sdmmc_read(void *opaque, hwaddr offset, switch (offset) { case A_SDMMC_CTRL: return s->ctrl; + case A_SDMMC_CLKSRC: + return s->clksrc; case A_SDMMC_INTMASK: return s->intmask; case A_SDMMC_CMD: diff --git a/include/hw/sd/dwc_sdmmc.h b/include/hw/sd/dwc_sdmmc.h index 6520e6db4c10..4a762e1dbaea 100644 --- a/include/hw/sd/dwc_sdmmc.h +++ b/include/hw/sd/dwc_sdmmc.h @@ -35,6 +35,7 @@ typedef struct DWCSDMMCState { qemu_irq irq; uint32_t ctrl; + uint32_t clksrc; uint32_t cmd; uint32_t cmdarg; uint32_t resp[4];