Re: [PATCH v9 05/10] mmc: sdhci: introduce signal_voltage_switch callback function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2012/12/7 Philip Rakity <prakity@xxxxxxxxxx>:
>
> On Dec 7, 2012, at 2:36 AM, Kevin Liu <kliu5@xxxxxxxxxxx> wrote:
>
>> Some soc/platform need specific handling for signal voltage
>> switch. For example, mmp2/mmp3 need to set the AIB IO domain
>> control register accordingly.
>>
>> Signed-off-by: Bin Wang <binw@xxxxxxxxxxx>
>> Signed-off-by: Philip Rakity <prakity@xxxxxxxxxxx>
>> Signed-off-by: Kevin Liu <kliu5@xxxxxxxxxxx>
>> ---
>> drivers/mmc/host/sdhci.c |   17 +++++++++++++++++
>> drivers/mmc/host/sdhci.h |    1 +
>> 2 files changed, 18 insertions(+), 0 deletions(-)
>>
>> diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
>> index 50d0382..10d06fd 100644
>> --- a/drivers/mmc/host/sdhci.c
>> +++ b/drivers/mmc/host/sdhci.c
>> @@ -1687,6 +1687,15 @@ static int sdhci_do_3_3v_signal_voltage_switch(struct sdhci_host *host,
>>                       return -EIO;
>>               }
>>       }
>> +
>> +     /*
>> +      * May need to apply soc/platfrom settings for the
>> +      * voltage switch
>> +      */
>> +     if (host->ops->signal_voltage_switch)
>> +             host->ops->signal_voltage_switch(host,
>> +                             host->mmc->ios.signal_voltage);
>> +
>>       /* Wait for 5ms */
>>       usleep_range(5000, 5500);
>>
>> @@ -1729,6 +1738,14 @@ static int sdhci_do_1_8v_signal_voltage_switch(struct sdhci_host *host,
>>                       ret = 0;
>>
>>               if (!ret) {
>> +                     /*
>> +                      * May need to apply soc/platfrom settings for the
>> +                      * voltage switch
>> +                      */
>> +                     if (host->ops->signal_voltage_switch)
>> +                             host->ops->signal_voltage_switch(host,
>> +                                     host->mmc->ios.signal_voltage);
>> +
>>                       ctrl |= SDHCI_CTRL_VDD_180;
>>                       sdhci_writew(host, ctrl, SDHCI_HOST_CONTROL2);
>>
>
> I am wondering if this is needed.
>
> A better way would be to install a notifier for voltage switch notification from the regulator in the platform code for sdhci-pxav2 or -pxav3.
> When the regulator changes the voltage the notifier is called and one can tell
> a) The new voltage
> b) The device asking for the voltage switch (passed in via the void data parameter on the request notitifer)
>

Good idea! I will change the patch.

> The only issue I can see is for voltage changes that occur via a SD Host Controller that handles voltage changes.
>

I think we can ignore this issue. If the SD host controller can do the
voltage change without external regulator, then it means it don't need
to do specific soc/platform handling either.  The reason why we need
to do this is because we change the voltage outside of SD host
controller.

Thanks
Kevin
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux