mirror_ubuntu-kernels/drivers/mmc/host
Andrew Jeffery 2fc88f9235 mmc: sdhci-of-aspeed: Expose clock phase controls
The Aspeed SD/eMMC controllers expose configurable clock phase
correction by inserting delays of up to 15 logic elements in length into
the bus clock path. The hardware supports independent configuration for
both bus directions on a per-slot basis.

The timing delay per element encoded in the driver was experimentally
determined by scope measurements.

The phase controls for both slots are grouped together in a single
register of the global register block of the SD/MMC controller(s), which
drives the use of a locking scheme between the SDHCIs and the global
register set.

Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Link: https://lore.kernel.org/r/20210114031433.2388532-3-andrew@aj.id.au
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
2021-02-01 11:54:47 +01:00
..
alcor.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v5.4 2020-09-07 14:24:21 +02:00
android-goldfish.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
atmel-mci.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
au1xmmc.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
bcm2835.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.14 2020-09-07 14:24:21 +02:00
cavium-octeon.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.14 2020-09-07 14:24:21 +02:00
cavium-thunderx.c mmc: cavium: Add missed pci_release_regions 2019-12-18 12:55:11 +01:00
cavium.c mmc: host: Drop redundant MMC_CAP_ERASE 2020-05-28 11:22:14 +02:00
cavium.h
cb710-mmc.c mmc: cb710: Inform the mmc core about the maximum busy timeout 2020-05-28 11:22:13 +02:00
cb710-mmc.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
cqhci.c mmc: cqhci: add new cqhci_host_ops pre_enable() and post_disable() 2020-09-07 09:11:31 +02:00
cqhci.h mmc: cqhci: add new cqhci_host_ops pre_enable() and post_disable() 2020-09-07 09:11:31 +02:00
davinci_mmc.c mmc: davinci: remove unneeded semicolon 2020-11-16 11:59:28 +01:00
dw_mmc-bluefield.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.19 2020-09-07 14:24:21 +02:00
dw_mmc-exynos.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
dw_mmc-exynos.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
dw_mmc-hi3798cv200.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.19 2020-09-07 14:24:21 +02:00
dw_mmc-k3.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
dw_mmc-pci.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
dw_mmc-pltfm.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
dw_mmc-pltfm.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
dw_mmc-rockchip.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
dw_mmc-zx.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.14 2020-09-07 14:24:21 +02:00
dw_mmc-zx.h
dw_mmc.c mmc: dw_mmc: replace spin_lock_irqsave by spin_lock in hard IRQ 2020-11-16 11:59:30 +01:00
dw_mmc.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
jz4740_mmc.c mmc: jz4740: remove unused struct component card_detect_irq 2021-02-01 11:54:44 +01:00
Kconfig mmc: mediatek: depend on COMMON_CLK to fix compile tests 2020-11-24 12:36:29 +01:00
Makefile mmc: sdhci-of-sparx5: Add Sparx5 SoC eMMC driver 2020-09-07 09:11:30 +02:00
meson-gx-mmc.c mmc: meson-gx: check for scatterlist size alignment in block mode 2021-02-01 11:54:43 +01:00
meson-mx-sdhc-clkc.c mmc: meson-mx-sdhc: Don't use literal 0 to initialize structs 2020-05-28 11:22:15 +02:00
meson-mx-sdhc-mmc.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that are newer than 5.4 2020-09-07 14:24:21 +02:00
meson-mx-sdhc.h mmc: host: meson-mx-sdhc: new driver for the Amlogic Meson SDHC host 2020-05-28 11:22:14 +02:00
meson-mx-sdio.c mmc: meson-mx-sdio: replace spin_lock_irqsave by spin_lock in hard IRQ 2020-11-16 11:59:29 +01:00
mmc_hsq.c mmc: host: Introduce the request_atomic() for the host 2020-05-28 11:20:59 +02:00
mmc_hsq.h mmc: host: Introduce the request_atomic() for the host 2020-05-28 11:20:59 +02:00
mmc_spi.c Merge branch 'fixes' into next 2020-09-14 11:46:47 +02:00
mmci_qcom_dml.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 2019-06-05 17:36:37 +02:00
mmci_stm32_sdmmc.c mmc: mmci_sdmmc: fix DMA API warning max segment size 2020-05-29 12:38:00 +02:00
mmci.c mmc: mmci: add sdio datactrl mask for sdmmc revisions 2020-07-13 12:18:23 +02:00
mmci.h mmc: mmci_sdmmc: Implement signal voltage callbacks 2020-03-24 14:35:40 +01:00
moxart-mmc.c mmc: moxart: replace spin_lock_irqsave by spin_lock in hard IRQ 2020-11-16 11:59:29 +01:00
mtk-sd.c mmc: mediatek: fix race condition between msdc_request_timeout and irq 2021-02-01 11:54:43 +01:00
mvsdio.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
mvsdio.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
mxcmmc.c mmc: mxc: Convert the driver to DT-only 2020-11-24 15:18:19 +01:00
mxs-mmc.c mmc: mxs-mmc: Fix a resource leak in an error handling path in 'mxs_mmc_probe()' 2021-02-01 11:54:41 +01:00
of_mmc_spi.c mmc: mmc_spi: Convert to use SPDX identifier 2019-04-15 11:55:54 +02:00
omap_hsmmc.c mmc: omap_hsmmc: Simplify bool comparison and conversion 2021-02-01 11:54:47 +01:00
omap.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
owl-mmc.c mmc: owl-mmc: Fix a resource leak in an error handling path and in the remove function 2021-02-01 11:54:42 +01:00
pxamci.c mmc: pxamci: Fix error return code in pxamci_probe 2020-11-24 12:35:34 +01:00
pxamci.h
renesas_sdhi_core.c mmc: renesas_sdhi: Add a condition of cmd/data timeout for retune 2021-02-01 11:54:43 +01:00
renesas_sdhi_internal_dmac.c mmc: renesas_internal_dmac: add pre_req and post_req support 2021-02-01 11:54:43 +01:00
renesas_sdhi_sys_dmac.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.14 2020-09-07 14:24:21 +02:00
renesas_sdhi.h mmc: renesas_sdhi: drop local flag for tuning 2020-09-25 13:24:02 +02:00
rtsx_pci_sdmmc.c mmc: rtsx: add delay before power on 2021-02-01 11:54:45 +01:00
rtsx_usb_sdmmc.c mmc: rtsx_usb_sdmmc: simplify the return expression of sd_change_phase() 2020-09-25 13:24:02 +02:00
s3cmci.c mmc: s3cmci: include GPIO descriptor consumer header 2020-11-16 11:59:27 +01:00
s3cmci.h MMC core: 2019-07-11 18:11:21 -07:00
sdhci_am654.c mmc: sdhci_am654: Add Support for TI's AM64 SoC 2021-02-01 11:54:45 +01:00
sdhci_f_sdh30.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
sdhci_f_sdh30.h mmc: sdhci-milbeaut: add Milbeaut SD controller driver 2019-11-13 16:10:16 +01:00
sdhci-acpi.c mmc: sdhci-acpi: AMDI0040: Allow changing HS200/HS400 driver strength 2020-11-16 11:59:27 +01:00
sdhci-bcm-kona.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
sdhci-brcmstb.c mmc: sdhci-brcmstb: Fix mmc timeout errors on S5 suspend 2021-01-13 12:06:37 +01:00
sdhci-cadence.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.14 2020-09-07 14:24:21 +02:00
sdhci-cns3xxx.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
sdhci-dove.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
sdhci-esdhc-imx.c mmc: sdhci-esdhc-imx: Convert the driver to DT-only 2020-11-23 14:20:03 +01:00
sdhci-esdhc-mcf.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that are newer than 5.4 2020-09-07 14:24:21 +02:00
sdhci-esdhc.h mmc: sdhci-of-esdhc: make sure delay chain locked for HS400 2020-10-28 11:07:01 +01:00
sdhci-iproc.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
sdhci-milbeaut.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that are newer than 5.4 2020-09-07 14:24:21 +02:00
sdhci-msm.c mmc: sdhci-msm: Actually set the actual clock 2021-02-01 11:54:43 +01:00
sdhci-of-arasan.c mmc: sdhci-of-arasan: Use dev_err_probe() to avoid spamming logs 2021-02-01 11:54:46 +01:00
sdhci-of-aspeed.c mmc: sdhci-of-aspeed: Expose clock phase controls 2021-02-01 11:54:47 +01:00
sdhci-of-at91.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
sdhci-of-dwcmshc.c mmc: sdhci-of-dwcmshc: set SDHCI_QUIRK2_PRESET_VALUE_BROKEN 2021-02-01 11:54:42 +01:00
sdhci-of-esdhc.c mmc: sdhci-of-esdhc: Handle pulse width detection erratum for more SoCs 2020-11-10 13:20:37 +01:00
sdhci-of-hlwd.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
sdhci-of-sparx5.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that are newer than 5.4 2020-09-07 14:24:21 +02:00
sdhci-omap.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.19 2020-09-07 14:24:21 +02:00
sdhci-pci-arasan.c
sdhci-pci-core.c mmc: sdhci-pci: Prefer SDR25 timing for High Speed mode for BYT-based Intel controllers 2020-11-17 12:33:06 +01:00
sdhci-pci-data.c treewide: Add SPDX license identifier for missed files 2019-05-21 10:50:45 +02:00
sdhci-pci-dwc-mshc.c
sdhci-pci-gli.c mmc: sdhci-pci-gli: Finetune HS400 RX delay for GL9763E 2021-02-01 11:54:46 +01:00
sdhci-pci-o2micro.c mmc: sdhci-pci-o2micro: Add HW tuning for SDR104 mode 2020-07-24 12:34:42 +02:00
sdhci-pci.h mmc: sdhci-pci-gli: Add Genesys Logic GL9763E support 2020-05-28 11:22:14 +02:00
sdhci-pic32.c mmc: sdhci-pic32: Make pic32_sdhci_probe_platform() void 2020-11-16 11:59:30 +01:00
sdhci-pltfm.c mmc: Remove dev_err() usage after platform_get_irq() 2019-09-11 15:58:39 +02:00
sdhci-pltfm.h mmc: Replace zero-length array with flexible-array member 2020-03-24 14:39:45 +01:00
sdhci-pxav2.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
sdhci-pxav3.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
sdhci-s3c.c mmc: sdhci-s3c: hide forward declaration of of_device_id behind CONFIG_OF 2020-09-25 13:30:52 +02:00
sdhci-sirf.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
sdhci-spear.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
sdhci-sprd.c mmc: sdhci-sprd: Fix some resource leaks in the remove function 2021-02-01 11:54:42 +01:00
sdhci-st.c mmc: sdhci-st: drop of_match_ptr from of_device_id table 2020-11-24 11:26:55 +01:00
sdhci-tegra.c mmc: sdhci: tegra: fix wrong unit with busy_timeout 2020-11-17 12:45:27 +01:00
sdhci-xenon-phy.c mmc: sdhci-xenon: switch to device_* API 2020-12-11 10:08:37 +01:00
sdhci-xenon.c mmc: xenon: add AP807 compatible string 2021-02-01 11:54:45 +01:00
sdhci-xenon.h mmc: sdhci-xenon: switch to device_* API 2020-12-11 10:08:37 +01:00
sdhci.c mmc: sdhci: Use more concise device_property_read_u64 2020-12-04 12:27:58 +01:00
sdhci.h mmc: sdhci: Allow platform controlled voltage switching 2020-07-13 12:18:24 +02:00
sdricoh_cs.c mmc: sdricoh_cs: Respect the cmd->busy_timeout from the mmc core 2020-05-28 11:22:14 +02:00
sh_mmcif.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
sunxi-mmc.c mmc: sunxi-mmc: Ensure host is suspended during system sleep 2021-02-01 11:54:45 +01:00
tifm_sd.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
tmio_mmc_core.c mmc: renesas_sdhi: Add a condition of cmd/data timeout for retune 2021-02-01 11:54:43 +01:00
tmio_mmc.c mmc: tmio: do not print real IOMEM pointer 2020-11-17 12:46:39 +01:00
tmio_mmc.h mmc: renesas_sdhi: Add a condition of cmd/data timeout for retune 2021-02-01 11:54:43 +01:00
toshsd.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
toshsd.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
uniphier-sd.c mmc: tmio: set max_busy_timeout 2020-12-04 13:28:25 +01:00
usdhi6rol0.c mmc: usdhi6rol0: Fix a resource leak in the error handling path of the probe 2021-02-01 11:54:42 +01:00
ushc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
via-sdmmc.c mmc: via-sdmmc: Fix data race bug 2020-09-07 09:11:29 +02:00
vub300.c mmc: vub300: Use scnprintf() for avoiding potential buffer overflow 2020-03-24 14:39:52 +01:00
wbsd.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
wbsd.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
wmt-sdmmc.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00