summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-mx27/Kconfig23
-rw-r--r--arch/arm/mach-mx27/devices.c35
2 files changed, 44 insertions, 14 deletions
diff --git a/arch/arm/mach-mx27/Kconfig b/arch/arm/mach-mx27/Kconfig
index 2b1e255c09ee..96c6207f6b89 100644
--- a/arch/arm/mach-mx27/Kconfig
+++ b/arch/arm/mach-mx27/Kconfig
@@ -38,6 +38,29 @@ config I2C_MXC_SELECT2
help
Enable MX31 I2C2 module.
+config MXC_SDHC1
+ bool "Enable SDHC1 module"
+ default n if MACH_MX27LITE
+ default y
+ depends on MMC_MXC
+ help
+ Enable MX27 Secure Digital Host Controller Interface 1.
+
+config MXC_SDHC2
+ bool "Enable SDHC2 module"
+ default y if MACH_MX27LITE
+ default n
+ depends on MMC_MXC
+ help
+ Enable MX27 Secure Digital Host Controller Interface 2.
+
+config MXC_SDHC3
+ bool "Enable SDHC3 module"
+ default n
+ depends on MMC_MXC
+ help
+ Enable MX27 Secure Digital Host Controller Interface 3.
+
endmenu
endmenu
diff --git a/arch/arm/mach-mx27/devices.c b/arch/arm/mach-mx27/devices.c
index b8d25b1cf919..cdde8069c9c3 100644
--- a/arch/arm/mach-mx27/devices.c
+++ b/arch/arm/mach-mx27/devices.c
@@ -157,6 +157,7 @@ static struct mxc_mmc_platform_data mmc_data = {
.status = sdhc_get_card_det_status,
};
+#ifdef CONFIG_MXC_SDHC1
/*!
* Resource definition for the SDHC1
*/
@@ -183,6 +184,20 @@ static struct resource mxcsdhc1_resources[] = {
},
};
+/*! Device Definition for MXC SDHC1 */
+static struct platform_device mxcsdhc1_device = {
+ .name = "mxcmci",
+ .id = 0,
+ .dev = {
+ .release = mxc_nop_release,
+ .platform_data = &mmc_data,
+ },
+ .num_resources = ARRAY_SIZE(mxcsdhc1_resources),
+ .resource = mxcsdhc1_resources,
+};
+#endif
+
+#ifdef CONFIG_MXC_SDHC2
/*!
* Resource definition for the SDHC2
*/
@@ -209,18 +224,6 @@ static struct resource mxcsdhc2_resources[] = {
},
};
-/*! Device Definition for MXC SDHC1 */
-static struct platform_device mxcsdhc1_device = {
- .name = "mxcmci",
- .id = 0,
- .dev = {
- .release = mxc_nop_release,
- .platform_data = &mmc_data,
- },
- .num_resources = ARRAY_SIZE(mxcsdhc1_resources),
- .resource = mxcsdhc1_resources,
-};
-
/*! Device Definition for MXC SDHC2 */
static struct platform_device mxcsdhc2_device = {
.name = "mxcmci",
@@ -232,6 +235,7 @@ static struct platform_device mxcsdhc2_device = {
.num_resources = ARRAY_SIZE(mxcsdhc2_resources),
.resource = mxcsdhc2_resources,
};
+#endif
#ifdef CONFIG_MXC_SDHC3
/*!
@@ -277,19 +281,22 @@ static inline void mxc_init_mmc(void)
{
int cd_irq;
+#ifdef CONFIG_MXC_SDHC1
cd_irq = sdhc_init_card_det(0);
if (cd_irq) {
mxcsdhc1_device.resource[2].start = cd_irq;
mxcsdhc1_device.resource[2].end = cd_irq;
}
+ (void)platform_device_register(&mxcsdhc1_device);
+#endif
+#ifdef CONFIG_MXC_SDHC2
cd_irq = sdhc_init_card_det(1);
if (cd_irq) {
mxcsdhc2_device.resource[2].start = cd_irq;
mxcsdhc2_device.resource[2].end = cd_irq;
}
-
- (void)platform_device_register(&mxcsdhc1_device);
(void)platform_device_register(&mxcsdhc2_device);
+#endif
#ifdef CONFIG_MXC_SDHC3
(void)platform_device_register(&mxcsdhc3_device);
#endif