[U-Boot] [RFC 1/2] mmc: introduce mmc_power_init and pwrup hook function

Peng Fan van.freenix at gmail.com
Thu Apr 21 03:22:40 CEST 2016


Hi Simon,

On Wed, Apr 20, 2016 at 08:40:10AM -0600, Simon Glass wrote:
>Hi Peng,
>
>On 10 April 2016 at 23:34, Peng Fan <van.freenix at gmail.com> wrote:
>> Hi Simon,
>>
>> On Sat, Apr 09, 2016 at 12:34:13PM -0600, Simon Glass wrote:
>>>Hi Peng,
>>>
>>>On 15 March 2016 at 19:32, Peng Fan <van.freenix at gmail.com> wrote:
>>>> In device tree, there is vmmc-supply property for SD/MMC.
>>>> Introduce mmc_power_init function and pwrup hook function to let
>>>> the specific drivers handle vmmc-supply.
>>>>
>>>> mmc_power_init will first invoke board_mmc_power_init to
>>>> avoid break boards which already implement board_mmc_power_init.
>>>>
>>>> Then if pwrup hook functions have been implemented for different
>>>> mmc drivers, pwrup will be invoked.
>>>>
>>>> Signed-off-by: Peng Fan <van.freenix at gmail.com>
>>>> Cc: Pantelis Antoniou <panto at antoniou-consulting.com>
>>>> Cc: Andrew Gabbasov <andrew_gabbasov at mentor.com>
>>>> Cc: Simon Glass <sjg at chromium.org>
>>>> Cc: Stephen Warren <swarren at nvidia.com>
>>>> Cc: Clemens Gruber <clemens.gruber at pqgruber.com>
>>>> Cc: Eric Nelson <eric at nelint.com>
>>>> Cc: Stefano Babic <sbabic at denx.de>
>>>> Cc: Fabio Estevam <fabio.estevam at nxp.com>
>>>> ---
>>>>  drivers/mmc/mmc.c | 15 ++++++++++++++-
>>>>  include/mmc.h     |  1 +
>>>>  2 files changed, 15 insertions(+), 1 deletion(-)
>>>
>>>Acked-by: Simon Glass <sjg at chromium.org>
>>>
>>>I wonder if there is a way to handle this property generically?
>>
>> Now I do not have a better idea for this  (:
>>
>> Or we directly more the following piece code to driver/mmc/mmc.c?
>> And Add a device entry for struct mmc.
>>
>> static int xxx_pwrup(struct mmc *mmc)
>> {
>> #ifdef CONFIG_DM_MMC
>>         struct udevice *vmmc_supply;
>>         int ret;
>>
>>         ret = device_get_supply_regulator(mmc->dev, "vmmc-supply",
>>                                           &vmmc_supply);
>>         if (ret) {
>>                 debug("No vmmc supply\n");
>>                 return 0;
>>         }
>>
>>         ret = regulator_set_enable(vmmc_supply, true);
>>         if (ret) {
>>                 puts("Error enabling VMMC supply\n");
>>                 return ret;
>>         }
>> #endif
>>         return 0;
>> }
>>
>
>That seems better to me.

Ok, I'll try this new way.
"
we directly more the following piece code to driver/mmc/mmc.c?
And Add a device entry for struct mmc.
"

Thanks,
Peng.
>
>Regards,
>Simon


More information about the U-Boot mailing list