All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] mmc: fsl_esdhc: Set fallback mode to 1-bit
@ 2022-05-11 18:27 ` Pali Rohár
  2022-05-11 18:27   ` [PATCH 2/2] mmc: fsl_esdhc: Add new config option for default fallback mode Pali Rohár
  2022-05-16 23:39   ` [PATCH 1/2] mmc: fsl_esdhc: Set fallback mode to 1-bit Jaehoon Chung
  0 siblings, 2 replies; 6+ messages in thread
From: Pali Rohár @ 2022-05-11 18:27 UTC (permalink / raw)
  To: Peng Fan, Jaehoon Chung, Priyanka Jain, Sinan Akman; +Cc: u-boot

8-bit mode is not supported by SD cards and on P2020 are four SDHC pins
shared with SPI (so if P2020 board have also SPI then only 4-bit SDHC mode
is provided). So 8-bit SDHC mode is really bad default.

When max bus width is not provided then set mode to 1-bit. This mode is
supported by all cards, so it is the best option for fallback mode.

Also P2020 bootrom sets mode to 1-bit when booting from SD/MMC card.

Signed-off-by: Pali Rohár <pali@kernel.org>
---
 drivers/mmc/fsl_esdhc.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c
index 3b3587bd8d72..834f8933b0c6 100644
--- a/drivers/mmc/fsl_esdhc.c
+++ b/drivers/mmc/fsl_esdhc.c
@@ -963,9 +963,8 @@ int fsl_esdhc_initialize(struct bd_info *bis, struct fsl_esdhc_cfg *cfg)
 	} else if (cfg->max_bus_width == 1) {
 		mmc_cfg->host_caps |= MMC_MODE_1BIT;
 	} else {
-		mmc_cfg->host_caps |= MMC_MODE_1BIT | MMC_MODE_4BIT |
-				      MMC_MODE_8BIT;
-		printf("No max bus width provided. Assume 8-bit supported.\n");
+		mmc_cfg->host_caps |= MMC_MODE_1BIT;
+		printf("No max bus width provided. Fallback to 1-bit mode.\n");
 	}
 
 	if (IS_ENABLED(CONFIG_ESDHC_DETECT_8_BIT_QUIRK))
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/2] mmc: fsl_esdhc: Add new config option for default fallback mode
  2022-05-11 18:27 ` [PATCH 1/2] mmc: fsl_esdhc: Set fallback mode to 1-bit Pali Rohár
@ 2022-05-11 18:27   ` Pali Rohár
  2022-05-16 23:40     ` Jaehoon Chung
  2022-05-16 23:39   ` [PATCH 1/2] mmc: fsl_esdhc: Set fallback mode to 1-bit Jaehoon Chung
  1 sibling, 1 reply; 6+ messages in thread
From: Pali Rohár @ 2022-05-11 18:27 UTC (permalink / raw)
  To: Peng Fan, Jaehoon Chung, Priyanka Jain, Sinan Akman; +Cc: u-boot

Currently default fallback SDHC mode is 1-bit. Add new config option
CONFIG_SYS_FSL_ESDHC_DEFAULT_BUS_WIDTH to allow specifying default fallback
mode. This is useful e.g. for SPL builds which loads other parts from SD
card during boot process.

Signed-off-by: Pali Rohár <pali@kernel.org>
---
 drivers/mmc/Kconfig     | 5 +++++
 drivers/mmc/fsl_esdhc.c | 1 +
 2 files changed, 6 insertions(+)

diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig
index f04cc44e1973..df15dff6248f 100644
--- a/drivers/mmc/Kconfig
+++ b/drivers/mmc/Kconfig
@@ -826,6 +826,11 @@ config FSL_ESDHC_VS33_NOT_SUPPORT
 	  For eSDHC, power supply is through peripheral circuit. 3.3V support is
 	  common. Select this if 3.3V power supply not supported.
 
+config SYS_FSL_ESDHC_DEFAULT_BUS_WIDTH
+	int
+	depends on FSL_ESDHC
+	default 1
+
 config FSL_ESDHC_IMX
 	bool "Freescale/NXP i.MX eSDHC controller support"
 	help
diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c
index 834f8933b0c6..a4c22942c2be 100644
--- a/drivers/mmc/fsl_esdhc.c
+++ b/drivers/mmc/fsl_esdhc.c
@@ -988,6 +988,7 @@ int fsl_esdhc_mmc_init(struct bd_info *bis)
 
 	cfg = calloc(sizeof(struct fsl_esdhc_cfg), 1);
 	cfg->esdhc_base = CONFIG_SYS_FSL_ESDHC_ADDR;
+	cfg->max_bus_width = CONFIG_SYS_FSL_ESDHC_DEFAULT_BUS_WIDTH;
 	/* Prefer peripheral clock which provides higher frequency. */
 	if (gd->arch.sdhc_per_clk)
 		cfg->sdhc_clk = gd->arch.sdhc_per_clk;
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/2] mmc: fsl_esdhc: Set fallback mode to 1-bit
  2022-05-11 18:27 ` [PATCH 1/2] mmc: fsl_esdhc: Set fallback mode to 1-bit Pali Rohár
  2022-05-11 18:27   ` [PATCH 2/2] mmc: fsl_esdhc: Add new config option for default fallback mode Pali Rohár
@ 2022-05-16 23:39   ` Jaehoon Chung
  1 sibling, 0 replies; 6+ messages in thread
From: Jaehoon Chung @ 2022-05-16 23:39 UTC (permalink / raw)
  To: Pali Rohár, Peng Fan, Priyanka Jain, Sinan Akman; +Cc: u-boot

On 5/12/22 03:27, Pali Rohár wrote:
> 8-bit mode is not supported by SD cards and on P2020 are four SDHC pins
> shared with SPI (so if P2020 board have also SPI then only 4-bit SDHC mode
> is provided). So 8-bit SDHC mode is really bad default.
> 
> When max bus width is not provided then set mode to 1-bit. This mode is
> supported by all cards, so it is the best option for fallback mode.
> 
> Also P2020 bootrom sets mode to 1-bit when booting from SD/MMC card.
> 
> Signed-off-by: Pali Rohár <pali@kernel.org>

Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>

Add minor comment.

> ---
>  drivers/mmc/fsl_esdhc.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c
> index 3b3587bd8d72..834f8933b0c6 100644
> --- a/drivers/mmc/fsl_esdhc.c
> +++ b/drivers/mmc/fsl_esdhc.c
> @@ -963,9 +963,8 @@ int fsl_esdhc_initialize(struct bd_info *bis, struct fsl_esdhc_cfg *cfg)
>  	} else if (cfg->max_bus_width == 1) {
>  		mmc_cfg->host_caps |= MMC_MODE_1BIT;
>  	} else {
> -		mmc_cfg->host_caps |= MMC_MODE_1BIT | MMC_MODE_4BIT |
> -				      MMC_MODE_8BIT;
> -		printf("No max bus width provided. Assume 8-bit supported.\n");
> +		mmc_cfg->host_caps |= MMC_MODE_1BIT;

I'm not sure that it really needs to use "|". 

Best Regards,
Jaehoon Chung

> +		printf("No max bus width provided. Fallback to 1-bit mode.\n");
>  	}
>  
>  	if (IS_ENABLED(CONFIG_ESDHC_DETECT_8_BIT_QUIRK))


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] mmc: fsl_esdhc: Add new config option for default fallback mode
  2022-05-11 18:27   ` [PATCH 2/2] mmc: fsl_esdhc: Add new config option for default fallback mode Pali Rohár
@ 2022-05-16 23:40     ` Jaehoon Chung
  2022-05-17  7:27       ` Pali Rohár
  0 siblings, 1 reply; 6+ messages in thread
From: Jaehoon Chung @ 2022-05-16 23:40 UTC (permalink / raw)
  To: Pali Rohár, Peng Fan, Priyanka Jain, Sinan Akman; +Cc: u-boot

On 5/12/22 03:27, Pali Rohár wrote:
> Currently default fallback SDHC mode is 1-bit. Add new config option
> CONFIG_SYS_FSL_ESDHC_DEFAULT_BUS_WIDTH to allow specifying default fallback
> mode. This is useful e.g. for SPL builds which loads other parts from SD
> card during boot process.
> 
> Signed-off-by: Pali Rohár <pali@kernel.org>
> ---
>  drivers/mmc/Kconfig     | 5 +++++
>  drivers/mmc/fsl_esdhc.c | 1 +
>  2 files changed, 6 insertions(+)
> 
> diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig
> index f04cc44e1973..df15dff6248f 100644
> --- a/drivers/mmc/Kconfig
> +++ b/drivers/mmc/Kconfig
> @@ -826,6 +826,11 @@ config FSL_ESDHC_VS33_NOT_SUPPORT
>  	  For eSDHC, power supply is through peripheral circuit. 3.3V support is
>  	  common. Select this if 3.3V power supply not supported.
>  
> +config SYS_FSL_ESDHC_DEFAULT_BUS_WIDTH
> +	int
> +	depends on FSL_ESDHC
> +	default 1

Is there any reason not to use dt?

Best Regards,
Jaehoon Chung

> +
>  config FSL_ESDHC_IMX
>  	bool "Freescale/NXP i.MX eSDHC controller support"
>  	help
> diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c
> index 834f8933b0c6..a4c22942c2be 100644
> --- a/drivers/mmc/fsl_esdhc.c
> +++ b/drivers/mmc/fsl_esdhc.c
> @@ -988,6 +988,7 @@ int fsl_esdhc_mmc_init(struct bd_info *bis)
>  
>  	cfg = calloc(sizeof(struct fsl_esdhc_cfg), 1);
>  	cfg->esdhc_base = CONFIG_SYS_FSL_ESDHC_ADDR;
> +	cfg->max_bus_width = CONFIG_SYS_FSL_ESDHC_DEFAULT_BUS_WIDTH;
>  	/* Prefer peripheral clock which provides higher frequency. */
>  	if (gd->arch.sdhc_per_clk)
>  		cfg->sdhc_clk = gd->arch.sdhc_per_clk;


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] mmc: fsl_esdhc: Add new config option for default fallback mode
  2022-05-16 23:40     ` Jaehoon Chung
@ 2022-05-17  7:27       ` Pali Rohár
  2022-05-17  9:20         ` Jaehoon Chung
  0 siblings, 1 reply; 6+ messages in thread
From: Pali Rohár @ 2022-05-17  7:27 UTC (permalink / raw)
  To: Jaehoon Chung; +Cc: Peng Fan, Priyanka Jain, Sinan Akman, u-boot

On Tuesday 17 May 2022 08:40:48 Jaehoon Chung wrote:
> On 5/12/22 03:27, Pali Rohár wrote:
> > Currently default fallback SDHC mode is 1-bit. Add new config option
> > CONFIG_SYS_FSL_ESDHC_DEFAULT_BUS_WIDTH to allow specifying default fallback
> > mode. This is useful e.g. for SPL builds which loads other parts from SD
> > card during boot process.
> > 
> > Signed-off-by: Pali Rohár <pali@kernel.org>
> > ---
> >  drivers/mmc/Kconfig     | 5 +++++
> >  drivers/mmc/fsl_esdhc.c | 1 +
> >  2 files changed, 6 insertions(+)
> > 
> > diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig
> > index f04cc44e1973..df15dff6248f 100644
> > --- a/drivers/mmc/Kconfig
> > +++ b/drivers/mmc/Kconfig
> > @@ -826,6 +826,11 @@ config FSL_ESDHC_VS33_NOT_SUPPORT
> >  	  For eSDHC, power supply is through peripheral circuit. 3.3V support is
> >  	  common. Select this if 3.3V power supply not supported.
> >  
> > +config SYS_FSL_ESDHC_DEFAULT_BUS_WIDTH
> > +	int
> > +	depends on FSL_ESDHC
> > +	default 1
> 
> Is there any reason not to use dt?

This is fallback value for function fsl_esdhc_mmc_init() which is called
when DT is not parsed or used (yet). E.g. this applies for P2020 SPL.

> Best Regards,
> Jaehoon Chung
> 
> > +
> >  config FSL_ESDHC_IMX
> >  	bool "Freescale/NXP i.MX eSDHC controller support"
> >  	help
> > diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c
> > index 834f8933b0c6..a4c22942c2be 100644
> > --- a/drivers/mmc/fsl_esdhc.c
> > +++ b/drivers/mmc/fsl_esdhc.c
> > @@ -988,6 +988,7 @@ int fsl_esdhc_mmc_init(struct bd_info *bis)
> >  
> >  	cfg = calloc(sizeof(struct fsl_esdhc_cfg), 1);
> >  	cfg->esdhc_base = CONFIG_SYS_FSL_ESDHC_ADDR;
> > +	cfg->max_bus_width = CONFIG_SYS_FSL_ESDHC_DEFAULT_BUS_WIDTH;
> >  	/* Prefer peripheral clock which provides higher frequency. */
> >  	if (gd->arch.sdhc_per_clk)
> >  		cfg->sdhc_clk = gd->arch.sdhc_per_clk;
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] mmc: fsl_esdhc: Add new config option for default fallback mode
  2022-05-17  7:27       ` Pali Rohár
@ 2022-05-17  9:20         ` Jaehoon Chung
  0 siblings, 0 replies; 6+ messages in thread
From: Jaehoon Chung @ 2022-05-17  9:20 UTC (permalink / raw)
  To: Pali Rohár; +Cc: Peng Fan, Priyanka Jain, Sinan Akman, u-boot

On 5/17/22 16:27, Pali Rohár wrote:
> On Tuesday 17 May 2022 08:40:48 Jaehoon Chung wrote:
>> On 5/12/22 03:27, Pali Rohár wrote:
>>> Currently default fallback SDHC mode is 1-bit. Add new config option
>>> CONFIG_SYS_FSL_ESDHC_DEFAULT_BUS_WIDTH to allow specifying default fallback
>>> mode. This is useful e.g. for SPL builds which loads other parts from SD
>>> card during boot process.
>>>
>>> Signed-off-by: Pali Rohár <pali@kernel.org>

Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>

Best Regards,
Jaehoon Chung

>>> ---
>>>  drivers/mmc/Kconfig     | 5 +++++
>>>  drivers/mmc/fsl_esdhc.c | 1 +
>>>  2 files changed, 6 insertions(+)
>>>
>>> diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig
>>> index f04cc44e1973..df15dff6248f 100644
>>> --- a/drivers/mmc/Kconfig
>>> +++ b/drivers/mmc/Kconfig
>>> @@ -826,6 +826,11 @@ config FSL_ESDHC_VS33_NOT_SUPPORT
>>>  	  For eSDHC, power supply is through peripheral circuit. 3.3V support is
>>>  	  common. Select this if 3.3V power supply not supported.
>>>  
>>> +config SYS_FSL_ESDHC_DEFAULT_BUS_WIDTH
>>> +	int
>>> +	depends on FSL_ESDHC
>>> +	default 1
>>
>> Is there any reason not to use dt?
> 
> This is fallback value for function fsl_esdhc_mmc_init() which is called
> when DT is not parsed or used (yet). E.g. this applies for P2020 SPL.
> 
>> Best Regards,
>> Jaehoon Chung
>>
>>> +
>>>  config FSL_ESDHC_IMX
>>>  	bool "Freescale/NXP i.MX eSDHC controller support"
>>>  	help
>>> diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c
>>> index 834f8933b0c6..a4c22942c2be 100644
>>> --- a/drivers/mmc/fsl_esdhc.c
>>> +++ b/drivers/mmc/fsl_esdhc.c
>>> @@ -988,6 +988,7 @@ int fsl_esdhc_mmc_init(struct bd_info *bis)
>>>  
>>>  	cfg = calloc(sizeof(struct fsl_esdhc_cfg), 1);
>>>  	cfg->esdhc_base = CONFIG_SYS_FSL_ESDHC_ADDR;
>>> +	cfg->max_bus_width = CONFIG_SYS_FSL_ESDHC_DEFAULT_BUS_WIDTH;
>>>  	/* Prefer peripheral clock which provides higher frequency. */
>>>  	if (gd->arch.sdhc_per_clk)
>>>  		cfg->sdhc_clk = gd->arch.sdhc_per_clk;
>>
> 


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-05-17  9:21 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <CGME20220511182733epcas1p1e986f0fecb5b3f736b5a0c7a15c5608a@epcas1p1.samsung.com>
2022-05-11 18:27 ` [PATCH 1/2] mmc: fsl_esdhc: Set fallback mode to 1-bit Pali Rohár
2022-05-11 18:27   ` [PATCH 2/2] mmc: fsl_esdhc: Add new config option for default fallback mode Pali Rohár
2022-05-16 23:40     ` Jaehoon Chung
2022-05-17  7:27       ` Pali Rohár
2022-05-17  9:20         ` Jaehoon Chung
2022-05-16 23:39   ` [PATCH 1/2] mmc: fsl_esdhc: Set fallback mode to 1-bit Jaehoon Chung

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.