#include <asm/arch-rockchip/clock.h>
#include <asm/arch-rockchip/periph.h>
struct rockchip_mmc_plat {
#if CONFIG_IS_ENABLED(OF_PLATDATA)
struct dtd_rockchip_rk3288_dw_mshc dtplat;
struct rockchip_dwmmc_priv {
static uint rockchip_dwmmc_get_mmc_clk(struct dwmci_host *host, uint freq)
struct udevice *dev = host->priv;
struct rockchip_dwmmc_priv *priv = dev_get_priv(dev);
ret = clk_set_rate(&priv->clk, freq);
debug("%s: err=%d\n", __func__, ret);
static int rockchip_dwmmc_ofdata_to_platdata(struct udevice *dev)
#if !CONFIG_IS_ENABLED(OF_PLATDATA)
struct rockchip_dwmmc_priv *priv = dev_get_priv(dev);
struct dwmci_host *host = &priv->host;
host->ioaddr = dev_read_addr_ptr(dev);
host->buswidth = dev_read_u32_default(dev, "bus-width", 4);
host->get_mmc_clk = rockchip_dwmmc_get_mmc_clk;