thanks for reply Jaehoon,
  The reason I had hard coded was the PCI card that I was using had a
single SD/MMC slot. I will make necessary change and submit another
patch.

On Fri, Sep 30, 2011 at 7:21 AM, Jaehoon Chung <jh80.ch...@samsung.com> wrote:
> Hi Shashidhar.
>
> On 09/30/2011 02:40 AM, Shashidhar Hiremath wrote:
>
>> Support of PCI mode for the dw_mmc driver This Patch adds the support for 
>> the scenario where the Synopsys Designware IP is present on the PCI bus.The 
>> patch adds the minimal modifications necessary for the driver to work on PCI 
>> platform. The Driver has also been tested for on the PCI platform with 
>> single Card Slot.
>>
>> Signed-off-by: Shashidhar Hiremath <shashidh...@vayavyalabs.com>
>> ---
>> v2:
>> *As per Suggestions by Will Newton and James Hogan
>> -Reduced the number of ifdefs
>>
>>  drivers/mmc/host/Kconfig   |   11 ++
>>  drivers/mmc/host/dw_mmc.c  |  352 
>> ++++++++++++++++++++++++++++++++++++++++++++
>>  drivers/mmc/host/dw_mmc.h  |   13 ++
>>  include/linux/mmc/dw_mmc.h |    4 +
>>  4 files changed, 380 insertions(+), 0 deletions(-)
>>
>> diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig
>> index 8c87096..84d8908 100644
>> --- a/drivers/mmc/host/Kconfig
>> +++ b/drivers/mmc/host/Kconfig
>> @@ -526,6 +526,17 @@ config MMC_DW
>>         block, this provides host support for SD and MMC interfaces, in both
>>         PIO and external DMA modes.
>>
>> +config MMC_DW_PCI
>> +     bool "MMC_DW Support On PCI bus"
>> +     depends on MMC_DW && PCI
>> +     help
>> +       This selects the PCI for the Synopsys Designware Mobile Storage IP.
>> +
>> +       If you have a controller with this interface, say Y or M here.
>> +
>> +       If unsure, say N.
>> +
>> +
>>  config MMC_DW_IDMAC
>>       bool "Internal DMAC interface"
>>       depends on MMC_DW
>> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
>> index ff0f714..0bd9e16 100644
>> --- a/drivers/mmc/host/dw_mmc.c
>> +++ b/drivers/mmc/host/dw_mmc.c
>> @@ -21,6 +21,7 @@
>>  #include <linux/interrupt.h>
>>  #include <linux/ioport.h>
>>  #include <linux/module.h>
>> +#include <linux/pci.h>
>>  #include <linux/platform_device.h>
>>  #include <linux/scatterlist.h>
>>  #include <linux/seq_file.h>
>> @@ -101,6 +102,7 @@ struct dw_mci_slot {
>>       int                     last_detect_state;
>>  };
>>
>> +
>>  static struct workqueue_struct *dw_mci_card_workqueue;
>>
>>  #if defined(CONFIG_DEBUG_FS)
>> @@ -682,6 +684,7 @@ static void dw_mci_set_ios(struct mmc_host *mmc, struct 
>> mmc_ios *ios)
>>  {
>>       struct dw_mci_slot *slot = mmc_priv(mmc);
>>       u32 regs;
>> +     u32 card_detect;
>>
>>       /* set default 1 bit mode */
>>       slot->ctype = SDMMC_CTYPE_1BIT;
>> @@ -716,6 +719,13 @@ static void dw_mci_set_ios(struct mmc_host *mmc, struct 
>> mmc_ios *ios)
>>       switch (ios->power_mode) {
>>       case MMC_POWER_UP:
>>               set_bit(DW_MMC_CARD_NEED_INIT, &slot->flags);
>> +             /* Enable Power to the card that has been detected */
>> +             card_detect = mci_readl(slot->host, CDETECT);
>> +             /* Enabling power for card 0 when PCI is the interface */
>> +             mci_writel(slot->host, PWREN, ((~card_detect) & 0x1));
>
>> +             break;
>> +     case MMC_POWER_OFF:
>> +             mci_writel(slot->host, PWREN, 0);
>>               break;
>
>
> Using shift with slot->id.(1bit per card).
>
> Regards,
> Jaehoon Chung
>



-- 
regards,
Shashidhar Hiremath
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to