summaryrefslogtreecommitdiff
path: root/src/soc/ti/am335x/mmc.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/ti/am335x/mmc.h')
-rw-r--r--src/soc/ti/am335x/mmc.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/soc/ti/am335x/mmc.h b/src/soc/ti/am335x/mmc.h
new file mode 100644
index 0000000000..757795d313
--- /dev/null
+++ b/src/soc/ti/am335x/mmc.h
@@ -0,0 +1,50 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef AM335X_MMC_H
+#define AM335X_MMC_H
+
+#include <inttypes.h>
+#include <commonlib/sd_mmc_ctrlr.h>
+
+#define MMCHS0_BASE 0x48060000
+
+struct am335x_mmc {
+ uint8_t res1[0x110];
+ uint32_t sysconfig;
+ uint32_t sysstatus;
+ uint8_t res2[0x14];
+ uint32_t con;
+ uint32_t pwcnt;
+ uint32_t dll;
+ uint8_t res3[0xcc];
+ uint32_t blk;
+ uint32_t arg;
+ uint32_t cmd;
+ uint32_t rsp10;
+ uint32_t rsp32;
+ uint32_t rsp54;
+ uint32_t rsp76;
+ uint32_t data;
+ uint32_t pstate;
+ uint32_t hctl;
+ uint32_t sysctl;
+ uint32_t stat;
+ uint32_t ie;
+ uint8_t res4[0x4];
+ uint32_t ac12;
+ uint32_t capa;
+ uint32_t capa2;
+ uint8_t res5[0xc];
+ uint32_t admaes;
+ uint32_t admasal;
+} __packed;
+
+struct am335x_mmc_host {
+ struct sd_mmc_ctrlr sd_mmc_ctrlr;
+ struct am335x_mmc *reg;
+ uint32_t sd_clock_hz;
+};
+
+int am335x_mmc_init_storage(struct am335x_mmc_host *mmc_host);
+
+#endif