[PATCH 00/41] omap_hsmmc: Add ADMA support and UHS/HS200/DDR support
From: Kishon Vijay Abraham I
Date: Fri May 19 2017 - 04:31:37 EST
This series adds UHS, HS200, DDR mode and ADMA support to
omap_hsmmc driver used to improve the throughput of MMC/SD in dra7
SoCs.
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
values.
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
Balaji T K (1):
mmc: host: omap_hsmmc: Add voltage switch support for UHS SD card
Kishon Vijay Abraham I (30):
mmc: host: omap_hsmmc: Support pbias and vmmc_aux to switch to 1.8v
mmc: host: omap_hsmmc: Separate setting voltage capabilities from bus
power
mmc: host: omap_hsmmc: Program HCTL based on signal_voltage set by mmc
core
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: Remove incorrect voltage switch sequence
mmc: host: omap_hsmmc: Prepare *set_timing() to be used for iodelay
setting
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: dra72-evm: Add vmmc_aux supply to mmc1
ARM: dts: dra72-evm-revc: Add vmmc_aux supply to mmc1
ARM: dts: am57xx-beagle-x15-revb1: Fix supply name used for MMC1 IO
lines
ARM: dts: dra7-evm: Add pinmux configuration for MMC
ARM: dts: am57xx-beagle-x15: Add pinmux configuration for MMC
ARM: dts: am571x-idk: Add pinmux configuration for MMC
ARM: dts: am572x-idk: Add pinmux configuration for MMC
ARM: dts: dra72-evm: Add pinmux configuration for MMC
ARM: dts: dra72-evm-revc: Add pinmux configuration for MMC
ARM: dts: dra71-evm: Add pinmux configuration for MMC
ARM: dts: dra7: Add "max-frequency" property to MMC dt nodes
ARM: dts: dra7: Use new dra7-specific compatible string
ARM: dts: dra7: Add supported MMC/SD modes in MMC dt nodes
ARM: dts: am57xx-beagle-x15-common: Set MMC2 IO voltage to 3.3V
ARM: omap2plus_defconfig: Enable PINCTRL_TI_IODELAY
ARM: multi_v7_defconfig: Enable PINCTRL_TI_IODELAY
Documentation: ARM: Document new dependencies for MMC on DRA7
Mugunthan V N (1):
mmc: host: omap_hsmmc: Add software timer when timeout greater than
hardware capablility
Ravikumar Kattekola (2):
ARM: dts: dra7-evm: Correct the vmmc-supply for mmc2
ARM: dts: dra72-evm-common: Correct vmmc-supply for mmc2
Sekhar Nori (6):
mmc: omap_hsmmc: Support non-1.8V IO controllers
ARM: dts: dra72x: Create a common file with MMC/SD IOdelay data
ARM: dts: dra74x: Create a common file with MMC/SD IOdelay data
ARM: dts: am57xx-idk: Move common MMC/SD properties to common file
ARM: dts: am57xx-idk: Set MMC2 IO voltage to 3.3V
ARM: OMAP2+: Add pdata-quirks for MMC/SD on DRA74x EVM
Tony Lindgren (1):
ARM: dts: Add dra7 iodelay configuration
Documentation/arm/OMAP/README | 4 +
.../devicetree/bindings/mmc/ti-omap-hsmmc.txt | 6 +
arch/arm/boot/dts/am571x-idk.dts | 27 +-
arch/arm/boot/dts/am572x-idk.dts | 27 +-
arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi | 30 +-
arch/arm/boot/dts/am57xx-beagle-x15-revb1.dts | 18 +-
arch/arm/boot/dts/am57xx-beagle-x15.dts | 17 +
arch/arm/boot/dts/am57xx-idk-common.dtsi | 10 +
arch/arm/boot/dts/dra7-evm.dts | 28 +-
arch/arm/boot/dts/dra7.dtsi | 35 +-
arch/arm/boot/dts/dra71-evm.dts | 28 +
arch/arm/boot/dts/dra72-evm-common.dtsi | 2 -
arch/arm/boot/dts/dra72-evm-revc.dts | 32 +
arch/arm/boot/dts/dra72-evm.dts | 32 +
arch/arm/boot/dts/dra72x-mmc-iodelay.dtsi | 350 ++++++
arch/arm/boot/dts/dra74x-mmc-iodelay.dtsi | 648 +++++++++++
arch/arm/configs/multi_v7_defconfig | 1 +
arch/arm/configs/omap2plus_defconfig | 1 +
arch/arm/mach-omap2/pdata-quirks.c | 31 +
drivers/mmc/host/omap_hsmmc.c | 1158 ++++++++++++++++----
include/dt-bindings/pinctrl/dra.h | 3 +
include/linux/platform_data/hsmmc-omap.h | 10 +
22 files changed, 2256 insertions(+), 242 deletions(-)
create mode 100644 arch/arm/boot/dts/dra72x-mmc-iodelay.dtsi
create mode 100644 arch/arm/boot/dts/dra74x-mmc-iodelay.dtsi
--
2.11.0