/* * Faraday FTSDC010 Secure Digital Memory Card Host Controller * * Copyright (C) 2011 Andes Technology Corporation * Macpaul Lin, Andes Technology Corporation * * SPDX-License-Identifier: GPL-2.0+ */ #include #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 */