xref: /aosp_15_r20/external/coreboot/src/soc/ti/am335x/mmc.h (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifndef AM335X_MMC_H
4 #define AM335X_MMC_H
5 
6 #include <commonlib/sd_mmc_ctrlr.h>
7 
8 #define MMCHS0_BASE 0x48060000
9 
10 struct am335x_mmc {
11 	uint8_t res1[0x110];
12 	uint32_t sysconfig;
13 	uint32_t sysstatus;
14 	uint8_t res2[0x14];
15 	uint32_t con;
16 	uint32_t pwcnt;
17 	uint32_t dll;
18 	uint8_t res3[0xcc];
19 	uint32_t blk;
20 	uint32_t arg;
21 	uint32_t cmd;
22 	uint32_t rsp10;
23 	uint32_t rsp32;
24 	uint32_t rsp54;
25 	uint32_t rsp76;
26 	uint32_t data;
27 	uint32_t pstate;
28 	uint32_t hctl;
29 	uint32_t sysctl;
30 	uint32_t stat;
31 	uint32_t ie;
32 	uint8_t res4[0x4];
33 	uint32_t ac12;
34 	uint32_t capa;
35 	uint32_t capa2;
36 	uint8_t res5[0xc];
37 	uint32_t admaes;
38 	uint32_t admasal;
39 } __packed;
40 
41 struct am335x_mmc_host {
42 	struct sd_mmc_ctrlr sd_mmc_ctrlr;
43 	struct am335x_mmc *reg;
44 	uint32_t sd_clock_hz;
45 };
46 
47 int am335x_mmc_init_storage(struct am335x_mmc_host *mmc_host);
48 
49 #endif
50