Lines Matching +full:rk3288 +full:- +full:dw +full:- +full:mshc

1 // SPDX-License-Identifier: GPL-2.0+
9 #include <dt-structs.h>
38 struct udevice *dev = host->priv; in rockchip_dwmmc_get_mmc_clk()
42 ret = clk_set_rate(&priv->clk, freq); in rockchip_dwmmc_get_mmc_clk()
55 struct dwmci_host *host = &priv->host; in rockchip_dwmmc_ofdata_to_platdata()
57 host->name = dev->name; in rockchip_dwmmc_ofdata_to_platdata()
58 host->ioaddr = dev_read_addr_ptr(dev); in rockchip_dwmmc_ofdata_to_platdata()
59 host->buswidth = dev_read_u32_default(dev, "bus-width", 4); in rockchip_dwmmc_ofdata_to_platdata()
60 host->get_mmc_clk = rockchip_dwmmc_get_mmc_clk; in rockchip_dwmmc_ofdata_to_platdata()
61 host->priv = dev; in rockchip_dwmmc_ofdata_to_platdata()
63 /* use non-removeable as sdcard and emmc as judgement */ in rockchip_dwmmc_ofdata_to_platdata()
64 if (dev_read_bool(dev, "non-removable")) in rockchip_dwmmc_ofdata_to_platdata()
65 host->dev_index = 0; in rockchip_dwmmc_ofdata_to_platdata()
67 host->dev_index = 1; in rockchip_dwmmc_ofdata_to_platdata()
69 priv->fifo_depth = dev_read_u32_default(dev, "fifo-depth", 0); in rockchip_dwmmc_ofdata_to_platdata()
71 if (priv->fifo_depth < 0) in rockchip_dwmmc_ofdata_to_platdata()
72 return -EINVAL; in rockchip_dwmmc_ofdata_to_platdata()
73 priv->fifo_mode = dev_read_bool(dev, "fifo-mode"); in rockchip_dwmmc_ofdata_to_platdata()
76 * 'clock-freq-min-max' is deprecated in rockchip_dwmmc_ofdata_to_platdata()
79 if (dev_read_u32_array(dev, "clock-freq-min-max", priv->minmax, 2)) { in rockchip_dwmmc_ofdata_to_platdata()
80 int val = dev_read_u32_default(dev, "max-frequency", -EINVAL); in rockchip_dwmmc_ofdata_to_platdata()
85 priv->minmax[0] = 400000; /* 400 kHz */ in rockchip_dwmmc_ofdata_to_platdata()
86 priv->minmax[1] = val; in rockchip_dwmmc_ofdata_to_platdata()
88 debug("%s: 'clock-freq-min-max' property was deprecated.\n", in rockchip_dwmmc_ofdata_to_platdata()
100 struct dwmci_host *host = &priv->host; in rockchip_dwmmc_probe()
105 struct dtd_rockchip_rk3288_dw_mshc *dtplat = &plat->dtplat; in rockchip_dwmmc_probe()
107 host->name = dev->name; in rockchip_dwmmc_probe()
108 host->ioaddr = map_sysmem(dtplat->reg[0], dtplat->reg[1]); in rockchip_dwmmc_probe()
109 host->buswidth = dtplat->bus_width; in rockchip_dwmmc_probe()
110 host->get_mmc_clk = rockchip_dwmmc_get_mmc_clk; in rockchip_dwmmc_probe()
111 host->priv = dev; in rockchip_dwmmc_probe()
112 host->dev_index = 0; in rockchip_dwmmc_probe()
113 priv->fifo_depth = dtplat->fifo_depth; in rockchip_dwmmc_probe()
114 priv->fifo_mode = 0; in rockchip_dwmmc_probe()
115 priv->minmax[0] = 400000; /* 400 kHz */ in rockchip_dwmmc_probe()
116 priv->minmax[1] = dtplat->max_frequency; in rockchip_dwmmc_probe()
118 ret = clk_get_by_index_platdata(dev, 0, dtplat->clocks, &priv->clk); in rockchip_dwmmc_probe()
122 ret = clk_get_by_index(dev, 0, &priv->clk); in rockchip_dwmmc_probe()
126 host->fifoth_val = MSIZE(0x2) | in rockchip_dwmmc_probe()
127 RX_WMARK(priv->fifo_depth / 2 - 1) | in rockchip_dwmmc_probe()
128 TX_WMARK(priv->fifo_depth / 2); in rockchip_dwmmc_probe()
130 host->fifo_mode = priv->fifo_mode; in rockchip_dwmmc_probe()
134 ret = uclass_get_device_by_phandle(UCLASS_PWRSEQ, dev, "mmc-pwrseq", in rockchip_dwmmc_probe()
142 dwmci_setup_cfg(&plat->cfg, host, priv->minmax[1], priv->minmax[0]); in rockchip_dwmmc_probe()
143 host->mmc = &plat->mmc; in rockchip_dwmmc_probe()
144 host->mmc->priv = &priv->host; in rockchip_dwmmc_probe()
145 host->mmc->dev = dev; in rockchip_dwmmc_probe()
146 upriv->mmc = host->mmc; in rockchip_dwmmc_probe()
155 return dwmci_bind(dev, &plat->mmc, &plat->cfg); in rockchip_dwmmc_bind()
159 { .compatible = "rockchip,rk2928-dw-mshc" },
160 { .compatible = "rockchip,rk3288-dw-mshc" },
182 ret = gpio_request_by_name(dev, "reset-gpios", 0, &reset, GPIOD_IS_OUT); in rockchip_dwmmc_pwrseq_set_power()
198 { .compatible = "mmc-pwrseq-emmc" },