Re: [PATCH 3/4] mmc: arm_pl180_mmci: Simplify code using mmc_of_parse()

2021-07-09 Thread Jaehoon Chung
On 7/6/21 11:54 PM, Stephan Gerhold wrote:
> Simplify the code a bit by using the common mmc_of_parse() function
> instead of duplicating the device tree parsing code. We can still get
> a default value for cfg->f_max by assigning it before calling
> mmc_of_parse().
> 
> Another advantage of this refactoring is that we parse more properties
> now, e.g. "non-removable" can be used to disable CD entirely.
> 
> Signed-off-by: Stephan Gerhold 

Reviewed-by: Jaehoon Chung 

Best Regards,
Jaehoon Chung

> ---
> 
>  drivers/mmc/arm_pl180_mmci.c | 19 ---
>  1 file changed, 4 insertions(+), 15 deletions(-)
> 
> diff --git a/drivers/mmc/arm_pl180_mmci.c b/drivers/mmc/arm_pl180_mmci.c
> index e632eed03f..809b86570a 100644
> --- a/drivers/mmc/arm_pl180_mmci.c
> +++ b/drivers/mmc/arm_pl180_mmci.c
> @@ -424,7 +424,6 @@ static int arm_pl180_mmc_probe(struct udevice *dev)
>   struct pl180_mmc_host *host = dev_get_priv(dev);
>   struct mmc_config *cfg = >cfg;
>   struct clk clk;
> - u32 bus_width;
>   u32 periphid;
>   int ret;
>  
> @@ -457,24 +456,14 @@ static int arm_pl180_mmc_probe(struct udevice *dev)
>   cfg->voltages = VOLTAGE_WINDOW_SD;
>   cfg->host_caps = 0;
>   cfg->f_min = host->clock_in / (2 * (SDI_CLKCR_CLKDIV_INIT_V1 + 1));
> - cfg->f_max = dev_read_u32_default(dev, "max-frequency", MMC_CLOCK_MAX);
> + cfg->f_max = MMC_CLOCK_MAX;
>   cfg->b_max = CONFIG_SYS_MMC_MAX_BLK_COUNT;
>  
>   gpio_request_by_name(dev, "cd-gpios", 0, >cd_gpio, GPIOD_IS_IN);
>  
> - bus_width = dev_read_u32_default(dev, "bus-width", 1);
> - switch (bus_width) {
> - case 8:
> - cfg->host_caps |= MMC_MODE_8BIT;
> - /* Hosts capable of 8-bit transfers can also do 4 bits */
> - case 4:
> - cfg->host_caps |= MMC_MODE_4BIT;
> - break;
> - case 1:
> - break;
> - default:
> - dev_err(dev, "Invalid bus-width value %u\n", bus_width);
> - }
> + ret = mmc_of_parse(dev, cfg);
> + if (ret)
> + return ret;
>  
>   arm_pl180_mmc_init(host);
>   mmc->priv = host;
> 



Re: [PATCH 3/4] mmc: arm_pl180_mmci: Simplify code using mmc_of_parse()

2021-07-08 Thread Patrice CHOTARD
Hi Stephan

On 7/6/21 4:54 PM, Stephan Gerhold wrote:
> Simplify the code a bit by using the common mmc_of_parse() function
> instead of duplicating the device tree parsing code. We can still get
> a default value for cfg->f_max by assigning it before calling
> mmc_of_parse().
> 
> Another advantage of this refactoring is that we parse more properties
> now, e.g. "non-removable" can be used to disable CD entirely.
> 
> Signed-off-by: Stephan Gerhold 
> ---
> 
>  drivers/mmc/arm_pl180_mmci.c | 19 ---
>  1 file changed, 4 insertions(+), 15 deletions(-)
> 
> diff --git a/drivers/mmc/arm_pl180_mmci.c b/drivers/mmc/arm_pl180_mmci.c
> index e632eed03f..809b86570a 100644
> --- a/drivers/mmc/arm_pl180_mmci.c
> +++ b/drivers/mmc/arm_pl180_mmci.c
> @@ -424,7 +424,6 @@ static int arm_pl180_mmc_probe(struct udevice *dev)
>   struct pl180_mmc_host *host = dev_get_priv(dev);
>   struct mmc_config *cfg = >cfg;
>   struct clk clk;
> - u32 bus_width;
>   u32 periphid;
>   int ret;
>  
> @@ -457,24 +456,14 @@ static int arm_pl180_mmc_probe(struct udevice *dev)
>   cfg->voltages = VOLTAGE_WINDOW_SD;
>   cfg->host_caps = 0;
>   cfg->f_min = host->clock_in / (2 * (SDI_CLKCR_CLKDIV_INIT_V1 + 1));
> - cfg->f_max = dev_read_u32_default(dev, "max-frequency", MMC_CLOCK_MAX);
> + cfg->f_max = MMC_CLOCK_MAX;
>   cfg->b_max = CONFIG_SYS_MMC_MAX_BLK_COUNT;
>  
>   gpio_request_by_name(dev, "cd-gpios", 0, >cd_gpio, GPIOD_IS_IN);
>  
> - bus_width = dev_read_u32_default(dev, "bus-width", 1);
> - switch (bus_width) {
> - case 8:
> - cfg->host_caps |= MMC_MODE_8BIT;
> - /* Hosts capable of 8-bit transfers can also do 4 bits */
> - case 4:
> - cfg->host_caps |= MMC_MODE_4BIT;
> - break;
> - case 1:
> - break;
> - default:
> - dev_err(dev, "Invalid bus-width value %u\n", bus_width);
> - }
> + ret = mmc_of_parse(dev, cfg);
> + if (ret)
> + return ret;
>  
>   arm_pl180_mmc_init(host);
>   mmc->priv = host;
> 
Reviewed-by: Patrice Chotard 
Tested-by: Patrice Chotard  on stm32f769-disco

Thanks
Patrice


[PATCH 3/4] mmc: arm_pl180_mmci: Simplify code using mmc_of_parse()

2021-07-06 Thread Stephan Gerhold
Simplify the code a bit by using the common mmc_of_parse() function
instead of duplicating the device tree parsing code. We can still get
a default value for cfg->f_max by assigning it before calling
mmc_of_parse().

Another advantage of this refactoring is that we parse more properties
now, e.g. "non-removable" can be used to disable CD entirely.

Signed-off-by: Stephan Gerhold 
---

 drivers/mmc/arm_pl180_mmci.c | 19 ---
 1 file changed, 4 insertions(+), 15 deletions(-)

diff --git a/drivers/mmc/arm_pl180_mmci.c b/drivers/mmc/arm_pl180_mmci.c
index e632eed03f..809b86570a 100644
--- a/drivers/mmc/arm_pl180_mmci.c
+++ b/drivers/mmc/arm_pl180_mmci.c
@@ -424,7 +424,6 @@ static int arm_pl180_mmc_probe(struct udevice *dev)
struct pl180_mmc_host *host = dev_get_priv(dev);
struct mmc_config *cfg = >cfg;
struct clk clk;
-   u32 bus_width;
u32 periphid;
int ret;
 
@@ -457,24 +456,14 @@ static int arm_pl180_mmc_probe(struct udevice *dev)
cfg->voltages = VOLTAGE_WINDOW_SD;
cfg->host_caps = 0;
cfg->f_min = host->clock_in / (2 * (SDI_CLKCR_CLKDIV_INIT_V1 + 1));
-   cfg->f_max = dev_read_u32_default(dev, "max-frequency", MMC_CLOCK_MAX);
+   cfg->f_max = MMC_CLOCK_MAX;
cfg->b_max = CONFIG_SYS_MMC_MAX_BLK_COUNT;
 
gpio_request_by_name(dev, "cd-gpios", 0, >cd_gpio, GPIOD_IS_IN);
 
-   bus_width = dev_read_u32_default(dev, "bus-width", 1);
-   switch (bus_width) {
-   case 8:
-   cfg->host_caps |= MMC_MODE_8BIT;
-   /* Hosts capable of 8-bit transfers can also do 4 bits */
-   case 4:
-   cfg->host_caps |= MMC_MODE_4BIT;
-   break;
-   case 1:
-   break;
-   default:
-   dev_err(dev, "Invalid bus-width value %u\n", bus_width);
-   }
+   ret = mmc_of_parse(dev, cfg);
+   if (ret)
+   return ret;
 
arm_pl180_mmc_init(host);
mmc->priv = host;
-- 
2.32.0