@@ -20,6 +20,8 @@
#include <linux/dma-mapping.h>
#include <linux/init.h>
+#include <linux/mmc/host.h>
+#include <linux/mmc/sh_mmcif.h>
#include <linux/of_platform.h>
#include <linux/platform_data/rcar-du.h>
#include <mach/clock.h>
@@ -98,11 +100,27 @@ static const struct clk_name clk_names[]
{ "lvds1", "lvds.1", "rcar-du-r8a7790" },
};
+static struct sh_mmcif_plat_data mmcif1_pdata = {
+ .caps = MMC_CAP_4_BIT_DATA |
+ MMC_CAP_8_BIT_DATA |
+ MMC_CAP_NONREMOVABLE,
+ .ccs_unsupported = true,
+ .slave_id_tx = SYS_DMAC_SLAVE_MMCIF1_TX,
+ .slave_id_rx = SYS_DMAC_SLAVE_MMCIF1_RX,
+};
+
+static struct of_dev_auxdata lager_auxdata_lookup[] __initdata = {
+ OF_DEV_AUXDATA("renesas,mmcif-r8a7790", 0xee220000, "sh_mmcif",
+ &mmcif1_pdata),
+ {},
+};
+
static void __init lager_add_standard_devices(void)
{
shmobile_clk_workaround(clk_names, ARRAY_SIZE(clk_names), false);
r8a7790_add_dt_devices();
- of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
+ of_platform_populate(NULL, of_default_bus_match_table,
+ lager_auxdata_lookup, NULL);
lager_add_du_device();
}