[PATCH 00/16] omap_hsmmc: Add ADMA support and UHS/HS200/DDR support

From: Kishon Vijay Abraham I
Date: Fri Jun 16 2017 - 08:50:00 EST

This is the final part of the series originally sent as
part of [2].

This series adds UHS, HS200, DDR mode and ADMA support to
omap_hsmmc driver used to improve the throughput of MMC/SD in dra7

Changes from [2]:
*) No more updating omap2plus_defconfig or multi_v7_defconfig is
required, so those patches are removed.
*) Addressed Rob Herring's comment on implementing a function
instead of having a macro while getting pinctrl state.

This series is created on top of [3], [4], [5] AND [6]
(i.e after
ARM: dts: omap3-overo: Remove "vqmmc-supply" property from MMC dt node
omap_hsmmc: use mmc_regulator_get_supply() to get regulators
omap*: Fixes/Cleanups for MMC devicetree node
ARM: dts: Add iodelay data for MMC)

The functionality implemented in this series was sent before ([1]) but
was never followed up since supporting high speed modes in dra7 required
IODelay values to be configured. With IODelay driver being merged into
kernel, sending it as a fresh series with support for configuring IODelay

Suggestions of migrating to sdhci driver (from omap_hsmmc driver) is not
addressed since
*) tuning ratio of MMC in dra7 is different from sdhci
*) IOdelay is required for dra7
*) GPIO based card detect is not supported in sdhci
*) Some of the registers don't always have correct values as in sdhci
(like PSTATE).
Supporting all of these in sdhci will result in adding lot of quirks in
sdhci driver.

This series has been tested on beagleboard, pandaboard, beaglebone-black,
beaglebone, am335x-evm, am437x-evm, dra7xx-evm, dra72x-evm, am571x-idk
and am572x-idk.

I can split the series to go into Ulf Hansson's tree and Tony's tree
separately if that is required.

[1] -> https://lkml.org/lkml/2015/8/25/213
[2] -> https://lkml.org/lkml/2017/5/19/19

[3] -> https://lkml.org/lkml/2017/6/9/206
[4] -> https://lkml.org/lkml/2017/6/7/169
[5] -> https://www.spinics.net/lists/arm-kernel/msg586215.html /
[6] -> https://www.mail-archive.com/linux-kernel@xxxxxxxxxxxxxxx/msg1423381.html

Kishon Vijay Abraham I (15):
mmc: host: omap_hsmmc: Support pbias and vmmc_aux to switch to 1.8v
mmc: host: omap_hsmmc: Separate setting voltage capabilities from bus
mmc: host: omap_hsmmc: Remove incorrect voltage switch sequence
mmc: host: omap_hsmmc: Add voltage switch support for UHS SD card
mmc: host: omap_hsmmc: Set clk rate to the max frequency
mmc: host: omap_hsmmc: Add tuning support
mmc: host: omap_hsmmc: Allow io voltage switch even for fixed vdd
mmc: host: omap_hsmmc: Prepare *set_timing() to be used for iodelay
mmc: host: omap_hsmmc: Add new compatible string to support dra7
mmc: host: omap_hsmmc: Fix error path sequence
mmc: host: omap_hsmmc: Add support to set IODELAY values
mmc: host: omap_hsmmc: Remove *use_dma* member
mmc: host: omap_hsmmc: Enable ADMA2
ARM: dts: dra7: Use new dra7-specific compatible string
ARM: dts: dra7: Add supported MMC/SD modes in MMC dt nodes

Mugunthan V N (1):
mmc: host: omap_hsmmc: Add software timer when timeout greater than
hardware capablility

.../devicetree/bindings/mmc/ti-omap-hsmmc.txt | 6 +
arch/arm/boot/dts/am571x-idk.dts | 1 +
arch/arm/boot/dts/am57xx-beagle-x15-revb1.dts | 1 +
arch/arm/boot/dts/am57xx-beagle-x15.dts | 6 +
arch/arm/boot/dts/am57xx-idk-common.dtsi | 1 +
arch/arm/boot/dts/dra7.dtsi | 22 +-
drivers/mmc/host/omap_hsmmc.c | 1179 ++++++++++++++++----
include/linux/platform_data/hsmmc-omap.h | 2 +
8 files changed, 1021 insertions(+), 197 deletions(-)