mbox series

[v3,0/3] mmc: Add OMAP SDHCI driver

Message ID 20170906114556.32532-1-kishon@ti.com
Headers show
Series mmc: Add OMAP SDHCI driver | expand

Message

Kishon Vijay Abraham I Sept. 6, 2017, 11:45 a.m. UTC
This is the first step in deprecating omap_hsmmc driver completely
and moving to sdhci-omap driver which uses the sdhci library.

This patch that adds a new SDHCI quirk "MMC_RSP_136" has already been
merged and hence removed it in this revision.

Apart from the quirk, sdhci-omap has it's own callbacks
to set_clock (clock divider programming is different from generic sdhci)
, set_power, set_bus_width, set_bus_mode and platform_send_init_74_clocks.
These callback functions are implemented based on omap_hsmmc driver.
Since sdhci-omap driver requires pbias regulator fixes to be present, I've
sent them as part of this series.

The sdhci-omap driver supports only the high speed mode and UHS/HS200
mode will be added in a later series.

It has been tested only in boards having DRA7 SoCs like dra7-evm, dra72-evm,
am571x-idk, am572x-idk, am57xx-evm. (Tested only eMMC and SD.
SDIO support will be added later). The plan is to fully convert DRA7
SoC to use SDHCI driver and then convert other legacy platforms to use
SDHCI.

For sdhci-omap to be functional, the following tag should be merged (There
are no compilation dependencies).
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator
tags/regulator-pbias-variants

However the above regulator tag will impact omap_hsmmc driver. so [1]
should be merged before everything else is merged.

[1] -> https://lkml.org/lkml/2017/8/31/300

The patch to add config and dts changes to use sdhci-omap will be sent
separately.

Next Steps:
*) Add UHS support to sdhci-omap
*) Add SDIO support
*) Add support for older TI platforms

Changes from v3:
*) removed omap_hsmmc and pbias-regulator patches from the series
*) Fixed dt-binding documentation (remove '0x' in node name)
*) stop clock if MMC core sends '0' in frequency

Changes from v2:
*) Rebased on git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc.git next
*) Included a couple of patches from Ravikumar to fix pbias-regulator driver
   to support max-voltage of 3.3V. This is required for sdhci-omap driver.
*) Create sdhci-omap as a new driver with MMC generic bindings and hence doesn't
   have bindings like ti,dual-volt added for omap-hsmmc. (Instead of
   ti,dual-volt, sdhci-omap driver uses the supported regulator voltage to
   set controller IO voltage capabilities).
   When omap-hsmmc driver is deprecated, support for these properties will
   be added to sdhci-omap.
*) Fixed minor comments from Adrian).

Changes from v1:
*) Remove the quirks and instead use sdhci_omap specific callbacks for
   set_power, set_busmode etc.
*) Add a patch from Adrian to tidy reading 136-bit responses

I've also pushed the entire series along with dependent dt patches @
https://github.com/kishon/linux-wip.git sdhci_v3 (in case someone
wants to test)

Kishon Vijay Abraham I (3):
  dt-bindings: sdhci-omap: Add bindings for the sdhci-omap controller
  mmc: sdhci-omap: Add OMAP SDHCI driver
  MAINTAINERS: Add TI OMAP SDHCI Maintainer

 .../devicetree/bindings/mmc/sdhci-omap.txt         |  16 +
 MAINTAINERS                                        |   6 +
 drivers/mmc/host/Kconfig                           |  12 +
 drivers/mmc/host/Makefile                          |   1 +
 drivers/mmc/host/sdhci-omap.c                      | 607 +++++++++++++++++++++
 5 files changed, 642 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/mmc/sdhci-omap.txt
 create mode 100644 drivers/mmc/host/sdhci-omap.c

Comments

Tony Lindgren Sept. 7, 2017, 4:30 p.m. UTC | #1
* Kishon Vijay Abraham I <kishon@ti.com> [170906 04:47]:
> This is the first step in deprecating omap_hsmmc driver completely
> and moving to sdhci-omap driver which uses the sdhci library.

Looks good to me. A beverage coming your way at some conf
on me for sure for dealing with this :)

Acked-by: Tony Lindgren <tony@atomide.com>
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Adrian Hunter Sept. 14, 2017, 7:26 a.m. UTC | #2
On 06/09/17 14:45, Kishon Vijay Abraham I wrote:
> Create a new sdhci-omap driver to configure the eMMC/SD/SDIO controller
> in TI's OMAP SoCs making use of the SDHCI core library. For OMAP specific
> configurations, populate sdhci_ops with OMAP specific callbacks and use
> SDHCI quirks.
> Enable only high speed mode for both SD and eMMC here and add other
> UHS mode support later.
> 
> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>

Acked-by: Adrian Hunter <adrian.hunter@intel.com>
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Ulf Hansson Sept. 22, 2017, 9:45 a.m. UTC | #3
On 6 September 2017 at 13:45, Kishon Vijay Abraham I <kishon@ti.com> wrote:
> This is the first step in deprecating omap_hsmmc driver completely
> and moving to sdhci-omap driver which uses the sdhci library.
>
> This patch that adds a new SDHCI quirk "MMC_RSP_136" has already been
> merged and hence removed it in this revision.
>
> Apart from the quirk, sdhci-omap has it's own callbacks
> to set_clock (clock divider programming is different from generic sdhci)
> , set_power, set_bus_width, set_bus_mode and platform_send_init_74_clocks.
> These callback functions are implemented based on omap_hsmmc driver.
> Since sdhci-omap driver requires pbias regulator fixes to be present, I've
> sent them as part of this series.
>
> The sdhci-omap driver supports only the high speed mode and UHS/HS200
> mode will be added in a later series.
>
> It has been tested only in boards having DRA7 SoCs like dra7-evm, dra72-evm,
> am571x-idk, am572x-idk, am57xx-evm. (Tested only eMMC and SD.
> SDIO support will be added later). The plan is to fully convert DRA7
> SoC to use SDHCI driver and then convert other legacy platforms to use
> SDHCI.
>
> For sdhci-omap to be functional, the following tag should be merged (There
> are no compilation dependencies).
> git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator
> tags/regulator-pbias-variants

Tag pulled.

>
> However the above regulator tag will impact omap_hsmmc driver. so [1]
> should be merged before everything else is merged.
>
> [1] -> https://lkml.org/lkml/2017/8/31/300

Applied.

>
> The patch to add config and dts changes to use sdhci-omap will be sent
> separately.
>
> Next Steps:
> *) Add UHS support to sdhci-omap
> *) Add SDIO support
> *) Add support for older TI platforms
>
> Changes from v3:
> *) removed omap_hsmmc and pbias-regulator patches from the series
> *) Fixed dt-binding documentation (remove '0x' in node name)
> *) stop clock if MMC core sends '0' in frequency
>
> Changes from v2:
> *) Rebased on git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc.git next
> *) Included a couple of patches from Ravikumar to fix pbias-regulator driver
>    to support max-voltage of 3.3V. This is required for sdhci-omap driver.
> *) Create sdhci-omap as a new driver with MMC generic bindings and hence doesn't
>    have bindings like ti,dual-volt added for omap-hsmmc. (Instead of
>    ti,dual-volt, sdhci-omap driver uses the supported regulator voltage to
>    set controller IO voltage capabilities).
>    When omap-hsmmc driver is deprecated, support for these properties will
>    be added to sdhci-omap.
> *) Fixed minor comments from Adrian).
>
> Changes from v1:
> *) Remove the quirks and instead use sdhci_omap specific callbacks for
>    set_power, set_busmode etc.
> *) Add a patch from Adrian to tidy reading 136-bit responses
>
> I've also pushed the entire series along with dependent dt patches @
> https://github.com/kishon/linux-wip.git sdhci_v3 (in case someone
> wants to test)
>
> Kishon Vijay Abraham I (3):
>   dt-bindings: sdhci-omap: Add bindings for the sdhci-omap controller
>   mmc: sdhci-omap: Add OMAP SDHCI driver
>   MAINTAINERS: Add TI OMAP SDHCI Maintainer
>
>  .../devicetree/bindings/mmc/sdhci-omap.txt         |  16 +
>  MAINTAINERS                                        |   6 +
>  drivers/mmc/host/Kconfig                           |  12 +
>  drivers/mmc/host/Makefile                          |   1 +
>  drivers/mmc/host/sdhci-omap.c                      | 607 +++++++++++++++++++++
>  5 files changed, 642 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/mmc/sdhci-omap.txt
>  create mode 100644 drivers/mmc/host/sdhci-omap.c
>
> --
> 2.11.0
>

Thanks, everything applied/pulled for next! Great work!

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