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