summaryrefslogtreecommitdiff
path: root/include/dwmmc.h
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2015-08-30 16:55:15 -0600
committerSimon Glass <sjg@chromium.org>2015-09-02 21:28:23 -0600
commite3563f2ec768fb989149362ca0c6ca4a27513924 (patch)
tree0465a7e400294775fd034079802fccd82a1942ff /include/dwmmc.h
parent6a436c9182a90551739a5b7b3f44254234056915 (diff)
downloadu-boot-e3563f2ec768fb989149362ca0c6ca4a27513924.tar.gz
mmc: Support bypass mode with the get_mmc_clk() method
Some SoCs want to adjust the input clock to the DWMMC block as a way of controlling the MMC bus clock. Update the get_mmc_clk() method to support this. Signed-off-by: Simon Glass <sjg@chromium.org> Acked-by: Jaehoon Chung <jh80.chung@samsung.com>
Diffstat (limited to 'include/dwmmc.h')
-rw-r--r--include/dwmmc.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/include/dwmmc.h b/include/dwmmc.h
index 7a7555a73a..25cf42c606 100644
--- a/include/dwmmc.h
+++ b/include/dwmmc.h
@@ -163,7 +163,21 @@ struct dwmci_host {
void (*clksel)(struct dwmci_host *host);
void (*board_init)(struct dwmci_host *host);
- unsigned int (*get_mmc_clk)(struct dwmci_host *host);
+
+ /**
+ * Get / set a particular MMC clock frequency
+ *
+ * This is used to request the current clock frequency of the clock
+ * that drives the DWMMC peripheral. The caller will then use this
+ * information to work out the divider it needs to achieve the
+ * required MMC bus clock frequency. If you want to handle the
+ * clock external to DWMMC, use @freq to select the frequency and
+ * return that value too. Then DWMMC will put itself in bypass mode.
+ *
+ * @host: DWMMC host
+ * @freq: Frequency the host is trying to achieve
+ */
+ unsigned int (*get_mmc_clk)(struct dwmci_host *host, uint freq);
struct mmc_config cfg;
};