From: Sascha Hauer Date: Mon, 12 Nov 2012 11:08:12 +0000 (+0100) Subject: Merge remote-tracking branch 'arm-soc/imx/multiplatform' into imx25-dt X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=53640f41b97792b0889bb70f26f99c06743162a1;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git Merge remote-tracking branch 'arm-soc/imx/multiplatform' into imx25-dt --- 53640f41b97792b0889bb70f26f99c06743162a1 diff --cc arch/arm/mach-imx/devices/platform-mxc-mmc.c index 000000000000,7da19afa1bba..b8203c760c8f mode 000000,100644..100644 --- a/arch/arm/mach-imx/devices/platform-mxc-mmc.c +++ b/arch/arm/mach-imx/devices/platform-mxc-mmc.c @@@ -1,0 -1,75 +1,75 @@@ + /* + * Copyright (C) 2010 Pengutronix + * Uwe Kleine-Koenig + * + * This program is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License version 2 as published by the + * Free Software Foundation. + */ + #include + + #include "../hardware.h" + #include "devices-common.h" + + #define imx_mxc_mmc_data_entry_single(soc, _devid, _id, _hwid, _size) \ + { \ + .devid = _devid, \ + .id = _id, \ + .iobase = soc ## _SDHC ## _hwid ## _BASE_ADDR, \ + .iosize = _size, \ + .irq = soc ## _INT_SDHC ## _hwid, \ + .dmareq = soc ## _DMA_REQ_SDHC ## _hwid, \ + } + #define imx_mxc_mmc_data_entry(soc, _devid, _id, _hwid, _size) \ + [_id] = imx_mxc_mmc_data_entry_single(soc, _devid, _id, _hwid, _size) + + #ifdef CONFIG_SOC_IMX21 + const struct imx_mxc_mmc_data imx21_mxc_mmc_data[] __initconst = { + #define imx21_mxc_mmc_data_entry(_id, _hwid) \ + imx_mxc_mmc_data_entry(MX21, "imx21-mmc", _id, _hwid, SZ_4K) + imx21_mxc_mmc_data_entry(0, 1), + imx21_mxc_mmc_data_entry(1, 2), + }; + #endif /* ifdef CONFIG_SOC_IMX21 */ + + #ifdef CONFIG_SOC_IMX27 + const struct imx_mxc_mmc_data imx27_mxc_mmc_data[] __initconst = { + #define imx27_mxc_mmc_data_entry(_id, _hwid) \ + imx_mxc_mmc_data_entry(MX27, "imx21-mmc", _id, _hwid, SZ_4K) + imx27_mxc_mmc_data_entry(0, 1), + imx27_mxc_mmc_data_entry(1, 2), + }; + #endif /* ifdef CONFIG_SOC_IMX27 */ + + #ifdef CONFIG_SOC_IMX31 + const struct imx_mxc_mmc_data imx31_mxc_mmc_data[] __initconst = { + #define imx31_mxc_mmc_data_entry(_id, _hwid) \ + imx_mxc_mmc_data_entry(MX31, "imx31-mmc", _id, _hwid, SZ_16K) + imx31_mxc_mmc_data_entry(0, 1), + imx31_mxc_mmc_data_entry(1, 2), + }; + #endif /* ifdef CONFIG_SOC_IMX31 */ + + struct platform_device *__init imx_add_mxc_mmc( + const struct imx_mxc_mmc_data *data, + const struct imxmmc_platform_data *pdata) + { + struct resource res[] = { + { + .start = data->iobase, - .end = data->iobase + SZ_4K - 1, ++ .end = data->iobase + data->iosize - 1, + .flags = IORESOURCE_MEM, + }, { + .start = data->irq, + .end = data->irq, + .flags = IORESOURCE_IRQ, + }, { + .start = data->dmareq, + .end = data->dmareq, + .flags = IORESOURCE_DMA, + }, + }; + return imx_add_platform_device_dmamask(data->devid, data->id, + res, ARRAY_SIZE(res), + pdata, sizeof(*pdata), DMA_BIT_MASK(32)); + }