[PATCH 88/133] [Jaunty SRU] ARM.imx51 Freescale:ENGR00112374 Make unifi v6 work
Brad Figg
brad.figg at canonical.com
Thu Jul 9 16:49:18 UTC 2009
From: Richard Zhao <b20223 at freescale.com>
1. Remove CONFIG_NET_SCHED. Because unifiV6's using old QoS interface.
2. Add mmc2 iomux
3. some fixes on unifi_fs
Signed-off-by: Richard Zhao <b20223 at freescale.com>
Signed-off-by: Brad Figg <brad.figg at canonical.com>
---
arch/arm/configs/imx51_defconfig | 39 +-------------------------------
arch/arm/mach-mx51/mx51_3stack_gpio.c | 24 ++++++++++++++++++++
drivers/mmc/card/unifi_fs/fs_lx.c | 17 ++++++++++++-
3 files changed, 41 insertions(+), 39 deletions(-)
diff --git a/arch/arm/configs/imx51_defconfig b/arch/arm/configs/imx51_defconfig
index c809444..3af68e0 100644
--- a/arch/arm/configs/imx51_defconfig
+++ b/arch/arm/configs/imx51_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.28
-# Thu May 7 08:51:48 2009
+# Wed May 13 11:08:25 2009
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -399,38 +399,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_LAPB is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
-CONFIG_NET_SCHED=y
-
-#
-# Queueing/Scheduling
-#
-# CONFIG_NET_SCH_CBQ is not set
-# CONFIG_NET_SCH_HTB is not set
-# CONFIG_NET_SCH_HFSC is not set
-# CONFIG_NET_SCH_PRIO is not set
-# CONFIG_NET_SCH_MULTIQ is not set
-# CONFIG_NET_SCH_RED is not set
-# CONFIG_NET_SCH_SFQ is not set
-# CONFIG_NET_SCH_TEQL is not set
-# CONFIG_NET_SCH_TBF is not set
-# CONFIG_NET_SCH_GRED is not set
-# CONFIG_NET_SCH_DSMARK is not set
-# CONFIG_NET_SCH_NETEM is not set
-
-#
-# Classification
-#
-# CONFIG_NET_CLS_BASIC is not set
-# CONFIG_NET_CLS_TCINDEX is not set
-# CONFIG_NET_CLS_ROUTE4 is not set
-# CONFIG_NET_CLS_FW is not set
-# CONFIG_NET_CLS_U32 is not set
-# CONFIG_NET_CLS_RSVP is not set
-# CONFIG_NET_CLS_RSVP6 is not set
-# CONFIG_NET_CLS_FLOW is not set
-# CONFIG_NET_EMATCH is not set
-# CONFIG_NET_CLS_ACT is not set
-CONFIG_NET_SCH_FIFO=y
+# CONFIG_NET_SCHED is not set
#
# Network testing
@@ -739,10 +708,6 @@ CONFIG_DEVKMEM=y
# CONFIG_SERIAL_NONSTANDARD is not set
CONFIG_FM_SI4702=m
CONFIG_MXC_IIM=y
-
-#
-# IMX SIM support
-#
CONFIG_IMX_SIM=m
#
diff --git a/arch/arm/mach-mx51/mx51_3stack_gpio.c b/arch/arm/mach-mx51/mx51_3stack_gpio.c
index 9c0d7fd..9d03b70 100644
--- a/arch/arm/mach-mx51/mx51_3stack_gpio.c
+++ b/arch/arm/mach-mx51/mx51_3stack_gpio.c
@@ -371,6 +371,30 @@ static struct mxc_iomux_pin_cfg __initdata mxc_iomux_pins[] = {
(PAD_CTL_HYS_ENABLE | PAD_CTL_100K_PU),
},
{
+ MX51_PIN_SD2_CMD, IOMUX_CONFIG_ALT0 | IOMUX_CONFIG_SION,
+ (PAD_CTL_DRV_MAX | PAD_CTL_22K_PU | PAD_CTL_SRE_FAST),
+ },
+ {
+ MX51_PIN_SD2_CLK, IOMUX_CONFIG_ALT0 | IOMUX_CONFIG_SION,
+ (PAD_CTL_DRV_MAX | PAD_CTL_22K_PU | PAD_CTL_SRE_FAST),
+ },
+ {
+ MX51_PIN_SD2_DATA0, IOMUX_CONFIG_ALT0,
+ (PAD_CTL_DRV_MAX | PAD_CTL_22K_PU | PAD_CTL_SRE_FAST),
+ },
+ {
+ MX51_PIN_SD2_DATA1, IOMUX_CONFIG_ALT0,
+ (PAD_CTL_DRV_MAX | PAD_CTL_22K_PU | PAD_CTL_SRE_FAST),
+ },
+ {
+ MX51_PIN_SD2_DATA2, IOMUX_CONFIG_ALT0,
+ (PAD_CTL_DRV_MAX | PAD_CTL_22K_PU | PAD_CTL_SRE_FAST),
+ },
+ {
+ MX51_PIN_SD2_DATA3, IOMUX_CONFIG_ALT0,
+ (PAD_CTL_DRV_MAX | PAD_CTL_22K_PU | PAD_CTL_SRE_FAST),
+ },
+ {
MX51_PIN_UART1_RXD, IOMUX_CONFIG_ALT0,
(PAD_CTL_HYS_ENABLE | PAD_CTL_PKE_ENABLE | PAD_CTL_PUE_PULL |
PAD_CTL_DRV_HIGH | PAD_CTL_SRE_FAST),
diff --git a/drivers/mmc/card/unifi_fs/fs_lx.c b/drivers/mmc/card/unifi_fs/fs_lx.c
index a33b6ce..4dc252e 100644
--- a/drivers/mmc/card/unifi_fs/fs_lx.c
+++ b/drivers/mmc/card/unifi_fs/fs_lx.c
@@ -200,6 +200,18 @@ int fs_sdio_enable_interrupt(struct sdio_dev *fdev, int enable)
}
EXPORT_SYMBOL(fs_sdio_enable_interrupt);
+int fs_sdio_disable(struct sdio_dev *fdev)
+{
+ int err;
+ sdio_claim_host(fdev->func);
+ err = sdio_disable_func(fdev->func);
+ sdio_release_host(fdev->func);
+ if (err)
+ printk(KERN_ERR "fs_lx:fs_sdio_disable error,err=%d\n", err);
+ return err;
+}
+EXPORT_SYMBOL(fs_sdio_disable);
+
int fs_sdio_enable(struct sdio_dev *fdev)
{
int err = 0;
@@ -347,7 +359,8 @@ int fs_sdio_register_driver(struct fs_driver *driver)
/* Switch us on, sdio device may exist if power is on by default. */
plat_data->hardreset(0);
- mxc_mmc_force_detect(plat_data->host_id);
+ if (available_sdio_dev)
+ mxc_mmc_force_detect(plat_data->host_id);
/* Wait for card removed */
for (retry = 0; retry < 100; retry++) {
if (!available_sdio_dev)
@@ -366,7 +379,7 @@ int fs_sdio_register_driver(struct fs_driver *driver)
break;
msleep(50);
}
- if (retry == 1000)
+ if (retry == 100)
printk(KERN_ERR "fs_sdio_register_driver: Timeout waiting"
" for card added\n");
/* Store the context to the device driver to the global */
--
1.6.0.4
More information about the kernel-team
mailing list