diff mbox series

[U-Boot] mmc: uniphier-sd: Add vqmmc regulator support

Message ID 20170915191054.28337-1-marek.vasut+renesas@gmail.com
State Accepted
Commit 9f13021f81009449c869ea441620cdc77146dee8
Delegated to: Jaehoon Chung
Headers show
Series [U-Boot] mmc: uniphier-sd: Add vqmmc regulator support | expand

Commit Message

Marek Vasut Sept. 15, 2017, 7:10 p.m. UTC
Add initial support for setting the vqmmc regulator. Since we do not
support 1V8 modes, set the regulator to 3V3 and enable it.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Jaehoon Chung <jh80.chung@samsung.com>
---
 drivers/mmc/uniphier-sd.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

Comments

Marek Vasut Sept. 25, 2017, 4:47 p.m. UTC | #1
On 09/15/2017 09:10 PM, Marek Vasut wrote:
> Add initial support for setting the vqmmc regulator. Since we do not
> support 1V8 modes, set the regulator to 3V3 and enable it.
> 
> Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
> Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
> Cc: Jaehoon Chung <jh80.chung@samsung.com>

Anything ?! I don't see this in the PR ...

> ---
>  drivers/mmc/uniphier-sd.c | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> diff --git a/drivers/mmc/uniphier-sd.c b/drivers/mmc/uniphier-sd.c
> index 3c52161067..0d1203cb76 100644
> --- a/drivers/mmc/uniphier-sd.c
> +++ b/drivers/mmc/uniphier-sd.c
> @@ -14,6 +14,7 @@
>  #include <linux/dma-direction.h>
>  #include <linux/io.h>
>  #include <linux/sizes.h>
> +#include <power/regulator.h>
>  #include <asm/unaligned.h>
>  
>  DECLARE_GLOBAL_DATA_PTR;
> @@ -756,6 +757,9 @@ static int uniphier_sd_probe(struct udevice *dev)
>  	fdt_addr_t base;
>  	struct clk clk;
>  	int ret;
> +#ifdef CONFIG_DM_REGULATOR
> +	struct udevice *vqmmc_dev;
> +#endif
>  
>  	base = devfdt_get_addr(dev);
>  	if (base == FDT_ADDR_T_NONE)
> @@ -765,6 +769,15 @@ static int uniphier_sd_probe(struct udevice *dev)
>  	if (!priv->regbase)
>  		return -ENOMEM;
>  
> +#ifdef CONFIG_DM_REGULATOR
> +	ret = device_get_supply_regulator(dev, "vqmmc-supply", &vqmmc_dev);
> +	if (!ret) {
> +		/* Set the regulator to 3.3V until we support 1.8V modes */
> +		regulator_set_value(vqmmc_dev, 3300000);
> +		regulator_set_enable(vqmmc_dev, true);
> +	}
> +#endif
> +
>  	ret = clk_get_by_index(dev, 0, &clk);
>  	if (ret < 0) {
>  		dev_err(dev, "failed to get host clock\n");
>
Jaehoon Chung Sept. 26, 2017, 7:41 a.m. UTC | #2
Hi Marek,

On 09/26/2017 01:47 AM, Marek Vasut wrote:
> On 09/15/2017 09:10 PM, Marek Vasut wrote:
>> Add initial support for setting the vqmmc regulator. Since we do not
>> support 1V8 modes, set the regulator to 3V3 and enable it.
>>
>> Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
>> Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
>> Cc: Jaehoon Chung <jh80.chung@samsung.com>
> 
> Anything ?! I don't see this in the PR ...

Sorry...I missed this patch..First, i have checked on patchwork.
Will pick this patch into u-boot-mmc.

Best Regards,
Jaehoon Chung

> 
>> ---
>>  drivers/mmc/uniphier-sd.c | 13 +++++++++++++
>>  1 file changed, 13 insertions(+)
>>
>> diff --git a/drivers/mmc/uniphier-sd.c b/drivers/mmc/uniphier-sd.c
>> index 3c52161067..0d1203cb76 100644
>> --- a/drivers/mmc/uniphier-sd.c
>> +++ b/drivers/mmc/uniphier-sd.c
>> @@ -14,6 +14,7 @@
>>  #include <linux/dma-direction.h>
>>  #include <linux/io.h>
>>  #include <linux/sizes.h>
>> +#include <power/regulator.h>
>>  #include <asm/unaligned.h>
>>  
>>  DECLARE_GLOBAL_DATA_PTR;
>> @@ -756,6 +757,9 @@ static int uniphier_sd_probe(struct udevice *dev)
>>  	fdt_addr_t base;
>>  	struct clk clk;
>>  	int ret;
>> +#ifdef CONFIG_DM_REGULATOR
>> +	struct udevice *vqmmc_dev;
>> +#endif
>>  
>>  	base = devfdt_get_addr(dev);
>>  	if (base == FDT_ADDR_T_NONE)
>> @@ -765,6 +769,15 @@ static int uniphier_sd_probe(struct udevice *dev)
>>  	if (!priv->regbase)
>>  		return -ENOMEM;
>>  
>> +#ifdef CONFIG_DM_REGULATOR
>> +	ret = device_get_supply_regulator(dev, "vqmmc-supply", &vqmmc_dev);
>> +	if (!ret) {
>> +		/* Set the regulator to 3.3V until we support 1.8V modes */
>> +		regulator_set_value(vqmmc_dev, 3300000);
>> +		regulator_set_enable(vqmmc_dev, true);
>> +	}
>> +#endif
>> +
>>  	ret = clk_get_by_index(dev, 0, &clk);
>>  	if (ret < 0) {
>>  		dev_err(dev, "failed to get host clock\n");
>>
> 
>
Masahiro Yamada Sept. 27, 2017, 3:19 p.m. UTC | #3
2017-09-26 16:41 GMT+09:00 Jaehoon Chung <jh80.chung@samsung.com>:
> Hi Marek,
>
> On 09/26/2017 01:47 AM, Marek Vasut wrote:
>> On 09/15/2017 09:10 PM, Marek Vasut wrote:
>>> Add initial support for setting the vqmmc regulator. Since we do not
>>> support 1V8 modes, set the regulator to 3V3 and enable it.
>>>
>>> Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
>>> Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
>>> Cc: Jaehoon Chung <jh80.chung@samsung.com>
>>
>> Anything ?! I don't see this in the PR ...
>
> Sorry...I missed this patch..First, i have checked on patchwork.
> Will pick this patch into u-boot-mmc.
>
> Best Regards,
> Jaehoon Chung
>


UniPhier SoCs have different mechanism for 3.3/1.8 switching,
but it is not a problem for me because I do not have a plan
for enabling CONFIG_DM_REGULATOR.

Acked-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Marek Vasut Sept. 27, 2017, 3:50 p.m. UTC | #4
On 09/27/2017 05:19 PM, Masahiro Yamada wrote:
> 2017-09-26 16:41 GMT+09:00 Jaehoon Chung <jh80.chung@samsung.com>:
>> Hi Marek,
>>
>> On 09/26/2017 01:47 AM, Marek Vasut wrote:
>>> On 09/15/2017 09:10 PM, Marek Vasut wrote:
>>>> Add initial support for setting the vqmmc regulator. Since we do not
>>>> support 1V8 modes, set the regulator to 3V3 and enable it.
>>>>
>>>> Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
>>>> Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
>>>> Cc: Jaehoon Chung <jh80.chung@samsung.com>
>>>
>>> Anything ?! I don't see this in the PR ...
>>
>> Sorry...I missed this patch..First, i have checked on patchwork.
>> Will pick this patch into u-boot-mmc.
>>
>> Best Regards,
>> Jaehoon Chung
>>
> 
> 
> UniPhier SoCs have different mechanism for 3.3/1.8 switching,
> but it is not a problem for me because I do not have a plan
> for enabling CONFIG_DM_REGULATOR.
> 
> Acked-by: Masahiro Yamada <yamada.masahiro@socionext.com>

Cool, thanks!

Is there a documentation for the uniphier mechanism somewhere ?
Masahiro Yamada Sept. 27, 2017, 4:13 p.m. UTC | #5
2017-09-28 0:50 GMT+09:00 Marek Vasut <marek.vasut@gmail.com>:
> On 09/27/2017 05:19 PM, Masahiro Yamada wrote:
>> 2017-09-26 16:41 GMT+09:00 Jaehoon Chung <jh80.chung@samsung.com>:
>>> Hi Marek,
>>>
>>> On 09/26/2017 01:47 AM, Marek Vasut wrote:
>>>> On 09/15/2017 09:10 PM, Marek Vasut wrote:
>>>>> Add initial support for setting the vqmmc regulator. Since we do not
>>>>> support 1V8 modes, set the regulator to 3V3 and enable it.
>>>>>
>>>>> Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
>>>>> Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
>>>>> Cc: Jaehoon Chung <jh80.chung@samsung.com>
>>>>
>>>> Anything ?! I don't see this in the PR ...
>>>
>>> Sorry...I missed this patch..First, i have checked on patchwork.
>>> Will pick this patch into u-boot-mmc.
>>>
>>> Best Regards,
>>> Jaehoon Chung
>>>
>>
>>
>> UniPhier SoCs have different mechanism for 3.3/1.8 switching,
>> but it is not a problem for me because I do not have a plan
>> for enabling CONFIG_DM_REGULATOR.
>>
>> Acked-by: Masahiro Yamada <yamada.masahiro@socionext.com>
>
> Cool, thanks!
>
> Is there a documentation for the uniphier mechanism somewhere ?
>

No document available.

Only crappy private documents.

They say SoC spec books are CONFIDENTIAL!!
Sigh.
Marek Vasut Sept. 27, 2017, 7:29 p.m. UTC | #6
On 09/27/2017 06:13 PM, Masahiro Yamada wrote:
> 2017-09-28 0:50 GMT+09:00 Marek Vasut <marek.vasut@gmail.com>:
>> On 09/27/2017 05:19 PM, Masahiro Yamada wrote:
>>> 2017-09-26 16:41 GMT+09:00 Jaehoon Chung <jh80.chung@samsung.com>:
>>>> Hi Marek,
>>>>
>>>> On 09/26/2017 01:47 AM, Marek Vasut wrote:
>>>>> On 09/15/2017 09:10 PM, Marek Vasut wrote:
>>>>>> Add initial support for setting the vqmmc regulator. Since we do not
>>>>>> support 1V8 modes, set the regulator to 3V3 and enable it.
>>>>>>
>>>>>> Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
>>>>>> Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
>>>>>> Cc: Jaehoon Chung <jh80.chung@samsung.com>
>>>>>
>>>>> Anything ?! I don't see this in the PR ...
>>>>
>>>> Sorry...I missed this patch..First, i have checked on patchwork.
>>>> Will pick this patch into u-boot-mmc.
>>>>
>>>> Best Regards,
>>>> Jaehoon Chung
>>>>
>>>
>>>
>>> UniPhier SoCs have different mechanism for 3.3/1.8 switching,
>>> but it is not a problem for me because I do not have a plan
>>> for enabling CONFIG_DM_REGULATOR.
>>>
>>> Acked-by: Masahiro Yamada <yamada.masahiro@socionext.com>
>>
>> Cool, thanks!
>>
>> Is there a documentation for the uniphier mechanism somewhere ?
>>
> 
> No document available.

I hope that new 96borad will have documentation available, *ahem* :-)

> Only crappy private documents.
> 
> They say SoC spec books are CONFIDENTIAL!!
> Sigh.

OK, I'll keep in mind there's a uniphier-specific way to toggle the 1V8
when adding HS200 support, so you can fill that in when you have time.

Thanks!
Jaehoon Chung Sept. 29, 2017, 2:30 a.m. UTC | #7
On 09/26/2017 01:47 AM, Marek Vasut wrote:
> On 09/15/2017 09:10 PM, Marek Vasut wrote:
>> Add initial support for setting the vqmmc regulator. Since we do not
>> support 1V8 modes, set the regulator to 3V3 and enable it.
>>
>> Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
>> Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
>> Cc: Jaehoon Chung <jh80.chung@samsung.com>
> 
> Anything ?! I don't see this in the PR ...

Applied to u-boot-mmc. Thanks!

Best Regards,
Jaehoon Chung

> 
>> ---
>>  drivers/mmc/uniphier-sd.c | 13 +++++++++++++
>>  1 file changed, 13 insertions(+)
>>
>> diff --git a/drivers/mmc/uniphier-sd.c b/drivers/mmc/uniphier-sd.c
>> index 3c52161067..0d1203cb76 100644
>> --- a/drivers/mmc/uniphier-sd.c
>> +++ b/drivers/mmc/uniphier-sd.c
>> @@ -14,6 +14,7 @@
>>  #include <linux/dma-direction.h>
>>  #include <linux/io.h>
>>  #include <linux/sizes.h>
>> +#include <power/regulator.h>
>>  #include <asm/unaligned.h>
>>  
>>  DECLARE_GLOBAL_DATA_PTR;
>> @@ -756,6 +757,9 @@ static int uniphier_sd_probe(struct udevice *dev)
>>  	fdt_addr_t base;
>>  	struct clk clk;
>>  	int ret;
>> +#ifdef CONFIG_DM_REGULATOR
>> +	struct udevice *vqmmc_dev;
>> +#endif
>>  
>>  	base = devfdt_get_addr(dev);
>>  	if (base == FDT_ADDR_T_NONE)
>> @@ -765,6 +769,15 @@ static int uniphier_sd_probe(struct udevice *dev)
>>  	if (!priv->regbase)
>>  		return -ENOMEM;
>>  
>> +#ifdef CONFIG_DM_REGULATOR
>> +	ret = device_get_supply_regulator(dev, "vqmmc-supply", &vqmmc_dev);
>> +	if (!ret) {
>> +		/* Set the regulator to 3.3V until we support 1.8V modes */
>> +		regulator_set_value(vqmmc_dev, 3300000);
>> +		regulator_set_enable(vqmmc_dev, true);
>> +	}
>> +#endif
>> +
>>  	ret = clk_get_by_index(dev, 0, &clk);
>>  	if (ret < 0) {
>>  		dev_err(dev, "failed to get host clock\n");
>>
> 
>
diff mbox series

Patch

diff --git a/drivers/mmc/uniphier-sd.c b/drivers/mmc/uniphier-sd.c
index 3c52161067..0d1203cb76 100644
--- a/drivers/mmc/uniphier-sd.c
+++ b/drivers/mmc/uniphier-sd.c
@@ -14,6 +14,7 @@ 
 #include <linux/dma-direction.h>
 #include <linux/io.h>
 #include <linux/sizes.h>
+#include <power/regulator.h>
 #include <asm/unaligned.h>
 
 DECLARE_GLOBAL_DATA_PTR;
@@ -756,6 +757,9 @@  static int uniphier_sd_probe(struct udevice *dev)
 	fdt_addr_t base;
 	struct clk clk;
 	int ret;
+#ifdef CONFIG_DM_REGULATOR
+	struct udevice *vqmmc_dev;
+#endif
 
 	base = devfdt_get_addr(dev);
 	if (base == FDT_ADDR_T_NONE)
@@ -765,6 +769,15 @@  static int uniphier_sd_probe(struct udevice *dev)
 	if (!priv->regbase)
 		return -ENOMEM;
 
+#ifdef CONFIG_DM_REGULATOR
+	ret = device_get_supply_regulator(dev, "vqmmc-supply", &vqmmc_dev);
+	if (!ret) {
+		/* Set the regulator to 3.3V until we support 1.8V modes */
+		regulator_set_value(vqmmc_dev, 3300000);
+		regulator_set_enable(vqmmc_dev, true);
+	}
+#endif
+
 	ret = clk_get_by_index(dev, 0, &clk);
 	if (ret < 0) {
 		dev_err(dev, "failed to get host clock\n");