Skip to content

omap_hsmmc: Add ADMA support and UHS/HS200/DDR support

Kishon Vijay Abraham I linux-arm-kernel linux-devicetree linux-mmc linux-omap lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest41 patches 4 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/41mmc: host: omap_hsmmc: Support pbias and vmmc_aux to switch to 1.8vdrivers/mmc/host/omap_hsmmc.c+33 -170 replies
2/41mmc: host: omap_hsmmc: Separate setting voltage capabilities from bus powerdrivers/mmc/host/omap_hsmmc.c+19 -90 replies
3/41mmc: host: omap_hsmmc: Program HCTL based on signal_voltage set by mmc coredrivers/mmc/host/omap_hsmmc.c+7 -90 replies
4/41mmc: host: omap_hsmmc: Add voltage switch support for UHS SD carddrivers/mmc/host/omap_hsmmc.c+165 -00 replies
5/41mmc: host: omap_hsmmc: Set clk rate to the max frequencydrivers/mmc/host/omap_hsmmc.c+15 -80 replies
6/41mmc: host: omap_hsmmc: Add tuning supportdrivers/mmc/host/omap_hsmmc.c+200 -00 replies
7/41mmc: host: omap_hsmmc: Allow io voltage switch even for fixed vdddrivers/mmc/host/omap_hsmmc.c+0 -70 replies
8/41mmc: host: omap_hsmmc: Remove incorrect voltage switch sequencedrivers/mmc/host/omap_hsmmc.c+0 -790 replies
9/41mmc: host: omap_hsmmc: Add software timer when timeout greater than hardware capablilitydrivers/mmc/host/omap_hsmmc.c+109 -170 replies
10/41mmc: host: omap_hsmmc: Prepare *set_timing() to be used for iodelay settingdrivers/mmc/host/omap_hsmmc.c+9 -00 replies
11/41mmc: host: omap_hsmmc: Add new compatible string to support dra7Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt drivers/mmc/host/omap_hsmmc.c include/linux/platform_data/hsmmc-omap.h+12 -01 reply
12/41mmc: host: omap_hsmmc: Fix error path sequencedrivers/mmc/host/omap_hsmmc.c+3 -30 replies
13/41mmc: host: omap_hsmmc: Add support to set IODELAY valuesDocumentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt drivers/mmc/host/omap_hsmmc.c include/linux/platform_data/hsmmc-omap.h+129 -31 reply
14/41mmc: host: omap_hsmmc: Remove *use_dma* memberdrivers/mmc/host/omap_hsmmc.c+16 -210 replies
15/41mmc: host: omap_hsmmc: Enable ADMA2drivers/mmc/host/omap_hsmmc.c include/linux/platform_data/hsmmc-omap.h+271 -370 replies
16/41mmc: omap_hsmmc: Support non-1.8V IO controllersdrivers/mmc/host/omap_hsmmc.c include/linux/platform_data/hsmmc-omap.h+17 -30 replies
17/41ARM: dts: dra72-evm: Add vmmc_aux supply to mmc1arch/arm/boot/dts/dra72-evm.dts+4 -00 replies
18/41ARM: dts: dra72-evm-revc: Add vmmc_aux supply to mmc1arch/arm/boot/dts/dra72-evm-revc.dts+4 -00 replies
19/41ARM: dts: am57xx-beagle-x15-revb1: Fix supply name used for MMC1 IO linesarch/arm/boot/dts/am57xx-beagle-x15-revb1.dts+1 -10 replies
20/41ARM: dts: dra7-evm: Correct the vmmc-supply for mmc2arch/arm/boot/dts/dra7-evm.dts+9 -10 replies
21/41ARM: dts: dra72-evm-common: Correct vmmc-supply for mmc2arch/arm/boot/dts/dra71-evm.dts arch/arm/boot/dts/dra72-evm-common.dtsi arch/arm/boot/dts/dra72-evm-revc.dts +1 more+42 -20 replies
22/41ARM: dts: Add dra7 iodelay configurationarch/arm/boot/dts/dra7.dtsi include/dt-bindings/pinctrl/dra.h+11 -00 replies
23/41ARM: dts: dra72x: Create a common file with MMC/SD IOdelay dataarch/arm/boot/dts/dra72x-mmc-iodelay.dtsi+350 -00 replies
24/41ARM: dts: dra74x: Create a common file with MMC/SD IOdelay dataarch/arm/boot/dts/dra74x-mmc-iodelay.dtsi+648 -00 replies
25/41ARM: dts: dra7-evm: Add pinmux configuration for MMCarch/arm/boot/dts/dra7-evm.dts+18 -00 replies
26/41ARM: dts: am57xx-beagle-x15: Add pinmux configuration for MMCarch/arm/boot/dts/am57xx-beagle-x15-common.dtsi arch/arm/boot/dts/am57xx-beagle-x15-revb1.dts arch/arm/boot/dts/am57xx-beagle-x15.dts+27 -280 replies
27/41ARM: dts: am57xx-idk: Move common MMC/SD properties to common filearch/arm/boot/dts/am571x-idk.dts arch/arm/boot/dts/am572x-idk.dts arch/arm/boot/dts/am57xx-idk-common.dtsi+8 -150 replies
28/41ARM: dts: am571x-idk: Add pinmux configuration for MMCarch/arm/boot/dts/am571x-idk.dts+19 -00 replies
29/41ARM: dts: am572x-idk: Add pinmux configuration for MMCarch/arm/boot/dts/am572x-idk.dts+19 -00 replies
30/41ARM: dts: dra72-evm: Add pinmux configuration for MMCarch/arm/boot/dts/dra72-evm.dts+14 -00 replies
31/41ARM: dts: dra72-evm-revc: Add pinmux configuration for MMCarch/arm/boot/dts/dra72-evm-revc.dts+14 -00 replies
32/41ARM: dts: dra71-evm: Add pinmux configuration for MMCarch/arm/boot/dts/dra71-evm.dts+14 -00 replies
33/41ARM: dts: dra7: Add "max-frequency" property to MMC dt nodesarch/arm/boot/dts/dra7.dtsi+5 -00 replies
34/41ARM: dts: dra7: Use new dra7-specific compatible stringarch/arm/boot/dts/dra7.dtsi+4 -40 replies
35/41ARM: dts: dra7: Add supported MMC/SD modes in MMC dt nodesarch/arm/boot/dts/am571x-idk.dts arch/arm/boot/dts/am57xx-beagle-x15-revb1.dts arch/arm/boot/dts/am57xx-beagle-x15.dts +2 more+23 -00 replies
36/41ARM: dts: am57xx-idk: Set MMC2 IO voltage to 3.3Varch/arm/boot/dts/am57xx-idk-common.dtsi+1 -00 replies
37/41ARM: dts: am57xx-beagle-x15-common: Set MMC2 IO voltage to 3.3Varch/arm/boot/dts/am57xx-beagle-x15-common.dtsi+1 -00 replies
38/41ARM: OMAP2+: Add pdata-quirks for MMC/SD on DRA74x EVMarch/arm/mach-omap2/pdata-quirks.c+31 -00 replies
39/41ARM: omap2plus_defconfig: Enable PINCTRL_TI_IODELAYarch/arm/configs/omap2plus_defconfig+1 -00 replies
40/41ARM: multi_v7_defconfig: Enable PINCTRL_TI_IODELAYarch/arm/configs/multi_v7_defconfig+1 -00 replies
41/41Documentation: ARM: Document new dependencies for MMC on DRA7Documentation/arm/OMAP/README+4 -00 replies

Reviews trailers per patch

1 of 41 patches has a Reviewed-by or Acked-by.

PatchRob Herring
1/41
2/41
3/41
4/41
5/41
6/41
7/41
8/41
9/41
10/41
11/41A-b
12/41
13/41
14/41
15/41
16/41
17/41
18/41
19/41
20/41
21/41
22/41
23/41
24/41
25/41
26/41
27/41
28/41
29/41
30/41
31/41
32/41
33/41
34/41
35/41
36/41
37/41
38/41
39/41
40/41
41/41

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCH 00/41] omap_hsmmc: Add ADMA support and UHS/HS200/DDR support

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
Signature · 1 line
2.11.0