mbox series

[v3,00/11] mmc: sdhci-omap: Add UHS/HS200 mode support

Message ID 20180307132020.30951-1-kishon@ti.com
Headers show
Series mmc: sdhci-omap: Add UHS/HS200 mode support | expand

Message

Kishon Vijay Abraham I March 7, 2018, 1:20 p.m. UTC
Add UHS/HS200 mode support in sdhci-omap. The programming sequence
for voltage switching, tuning is followed from AM572x TRM
http://www.ti.com/lit/ug/spruhz6i/spruhz6i.pdf
(Similar to all AM57x/DRA7x SoCs). The patch series also implements
workaround for errata published in
http://www.ti.com/lit/er/sprz429k/sprz429k.pdf

patches are created on top of
git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc.git next

Patches in v2 already applied to mmc -next are dropped from the
series.

Changes from v2:
*) Changed SW timeout logic as per Adrians's suggestion
*) Validated SDIO with the current patches (added a couple of fixes
   found while adding SDIO support).
*) Used soc_device_match() instead of pdata-quirks as per Tony's
   suggestions.

Changes from v1:
*) Only poll on DAT0 and DATI for card_busy status
*) Cleanup iodelay patch as suggested by Tony.
*) Added quirk to disable HW timeout
*) Use the existing data timer but program a relatively accurate
   SW timeout value (Impacts all platforms)
*) Fix a bug in sdhci which was using data_timer for non data line
   commands

Kishon Vijay Abraham I (11):
  mmc: sdhci-omap: Fix when capabilities are obtained from
    SDHCI_CAPABILITIES reg
  mmc: sdhci-omap: Remove setting ADMA capability in driver
  mmc: sdhci-omap: Workaround for Errata i843
  mmc: sdhci-omap: Invoke sdhci_get_of_property to read sdhci dt
    properties
  mmc: sdhci: Disable HS200 mode if controller can't support 1.8v
  mmc: sdhci: Add quirk to disable HW timeout
  mmc: sdhci: Program a relatively accurate SW timeout value
  mmc: sdhci-omap: Workaround for Errata i834
  dt-bindings: sdhci-omap: Add K2G specific binding
  mmc: sdhci-omap: Add support for MMC/SD controller in k2g SoC
  mmc: sdhci-omap: Add sdhci_omap specific ops for enable_sdio_irq

 .../devicetree/bindings/mmc/sdhci-omap.txt         |  2 +
 drivers/mmc/host/sdhci-omap.c                      | 78 +++++++++++++++++++---
 drivers/mmc/host/sdhci.c                           | 75 +++++++++++++++++----
 drivers/mmc/host/sdhci.h                           | 15 +++++
 4 files changed, 148 insertions(+), 22 deletions(-)

-- 
2.11.0

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

Comments

Tony Lindgren March 7, 2018, 3:12 p.m. UTC | #1
* Kishon Vijay Abraham I <kishon@ti.com> [180307 13:21]:
> Changes from v2:

> *) Used soc_device_match() instead of pdata-quirks as per Tony's

>    suggestions.


Looks good to me now thanks. For the whole series:

Acked-by: Tony Lindgren <tony@atomide.com>

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Ulf Hansson March 15, 2018, 8:47 a.m. UTC | #2
On 7 March 2018 at 14:20, Kishon Vijay Abraham I <kishon@ti.com> wrote:
> Add UHS/HS200 mode support in sdhci-omap. The programming sequence

> for voltage switching, tuning is followed from AM572x TRM

> http://www.ti.com/lit/ug/spruhz6i/spruhz6i.pdf

> (Similar to all AM57x/DRA7x SoCs). The patch series also implements

> workaround for errata published in

> http://www.ti.com/lit/er/sprz429k/sprz429k.pdf

>

> patches are created on top of

> git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc.git next

>

> Patches in v2 already applied to mmc -next are dropped from the

> series.

>

> Changes from v2:

> *) Changed SW timeout logic as per Adrians's suggestion

> *) Validated SDIO with the current patches (added a couple of fixes

>    found while adding SDIO support).

> *) Used soc_device_match() instead of pdata-quirks as per Tony's

>    suggestions.

>

> Changes from v1:

> *) Only poll on DAT0 and DATI for card_busy status

> *) Cleanup iodelay patch as suggested by Tony.

> *) Added quirk to disable HW timeout

> *) Use the existing data timer but program a relatively accurate

>    SW timeout value (Impacts all platforms)

> *) Fix a bug in sdhci which was using data_timer for non data line

>    commands

>

> Kishon Vijay Abraham I (11):

>   mmc: sdhci-omap: Fix when capabilities are obtained from

>     SDHCI_CAPABILITIES reg

>   mmc: sdhci-omap: Remove setting ADMA capability in driver

>   mmc: sdhci-omap: Workaround for Errata i843

>   mmc: sdhci-omap: Invoke sdhci_get_of_property to read sdhci dt

>     properties

>   mmc: sdhci: Disable HS200 mode if controller can't support 1.8v

>   mmc: sdhci: Add quirk to disable HW timeout

>   mmc: sdhci: Program a relatively accurate SW timeout value

>   mmc: sdhci-omap: Workaround for Errata i834

>   dt-bindings: sdhci-omap: Add K2G specific binding

>   mmc: sdhci-omap: Add support for MMC/SD controller in k2g SoC

>   mmc: sdhci-omap: Add sdhci_omap specific ops for enable_sdio_irq

>

>  .../devicetree/bindings/mmc/sdhci-omap.txt         |  2 +

>  drivers/mmc/host/sdhci-omap.c                      | 78 +++++++++++++++++++---

>  drivers/mmc/host/sdhci.c                           | 75 +++++++++++++++++----

>  drivers/mmc/host/sdhci.h                           | 15 +++++

>  4 files changed, 148 insertions(+), 22 deletions(-)

>

> --

> 2.11.0

>


Overall this looks good to me, however it seems like we need to give
Adrian a little more time to comment.

Kind regards
Uffe
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Adrian Hunter March 15, 2018, 2:18 p.m. UTC | #3
On 07/03/18 15:20, Kishon Vijay Abraham I wrote:
> sdhci can directly get ADMA capability from MMCHS_CAPA register.

> Remove explicitly setting ADMA here as some instances might not have

> ADMA enabled. (sdhci_read_caps() is also removed from here since

> sdhci_setup_host() invokes it).

> 

> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>


Acked-by: Adrian Hunter <adrian.hunter@intel.com>


> ---

>  drivers/mmc/host/sdhci-omap.c | 3 ---

>  1 file changed, 3 deletions(-)

> 

> diff --git a/drivers/mmc/host/sdhci-omap.c b/drivers/mmc/host/sdhci-omap.c

> index 3cce30584d2f..0c40b13fb67d 100644

> --- a/drivers/mmc/host/sdhci-omap.c

> +++ b/drivers/mmc/host/sdhci-omap.c

> @@ -923,9 +923,6 @@ static int sdhci_omap_probe(struct platform_device *pdev)

>  	host->mmc_host_ops.card_busy = sdhci_omap_card_busy;

>  	host->mmc_host_ops.execute_tuning = sdhci_omap_execute_tuning;

>  

> -	sdhci_read_caps(host);

> -	host->caps |= SDHCI_CAN_DO_ADMA2;

> -

>  	ret = sdhci_setup_host(host);

>  	if (ret)

>  		goto err_put_sync;

> 


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