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