1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- /*
- * Faraday FTSDC010 Secure Digital Memory Card Host Controller
- *
- * Copyright (C) 2011 Andes Technology Corporation
- * Macpaul Lin, Andes Technology Corporation <macpaul@andestech.com>
- *
- * SPDX-License-Identifier: GPL-2.0+
- */
- #include <mmc.h>
- #ifndef __FTSDC010_MCI_H
- #define __FTSDC010_MCI_H
- struct ftsdc010_chip {
- void __iomem *regs;
- uint32_t wprot; /* write protected (locked) */
- uint32_t rate; /* actual SD clock in Hz */
- uint32_t sclk; /* FTSDC010 source clock in Hz */
- uint32_t fifo; /* fifo depth in bytes */
- uint32_t acmd;
- struct mmc_config cfg; /* mmc configuration */
- const char *name;
- void *ioaddr;
- unsigned int caps;
- unsigned int version;
- unsigned int clock;
- unsigned int bus_hz;
- unsigned int div;
- int dev_index;
- int dev_id;
- int buswidth;
- u32 fifoth_val;
- struct mmc *mmc;
- void *priv;
- bool fifo_mode;
- };
- #ifdef CONFIG_DM_MMC
- /* Export the operations to drivers */
- int ftsdc010_probe(struct udevice *dev);
- extern const struct dm_mmc_ops dm_ftsdc010_ops;
- #endif
- void ftsdc_setup_cfg(struct mmc_config *cfg, const char *name, int buswidth,
- uint caps, u32 max_clk, u32 min_clk);
- void set_bus_width(struct ftsdc010_mmc __iomem *regs, struct mmc_config *cfg);
- #ifdef CONFIG_BLK
- int ftsdc010_bind(struct udevice *dev, struct mmc *mmc, struct mmc_config *cfg);
- #endif
- #endif /* __FTSDC010_MCI_H */
|