Commit 00d59fde authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull MMC updates from Ulf Hansson:
 "This time, this pull request contains changes crossing subsystems and
  archs/platforms, which is mainly because of a bigger modernization of
  moving from legacy GPIO to GPIO descriptors for MMC (by Linus
  Walleij).

  Additionally, once again, I am funneling changes to
  drivers/misc/cardreader/* and drivers/memstick/* through my MMC tree,
  mostly due to that we lack a maintainer for these.

  Summary:

  MMC core:
   - Cleanup BKOPS support
   - Introduce MMC_CAP_SYNC_RUNTIME_PM
   - slot-gpio: Delete legacy slot GPIO handling

  MMC host:
   - alcor: Add new mmc host driver for Alcor Micro PCI based cardreader
   - bcm2835: Several improvements to better recover from errors
   - jz4740: Rework and fixup pre|post_req support
   - mediatek: Add support for SDIO IRQs
   - meson-gx: Improve clock phase management
   - meson-gx: Stop descriptor on errors
   - mmci: Complete the sbc error path by sending a stop command
   - renesas_sdhi/tmio: Fixup reset/resume operations
   - renesas_sdhi: Add support for r8a774c0 and R7S9210
   - renesas_sdhi: Whitelist R8A77990 SDHI
   - renesas_sdhi: Fixup eMMC HS400 compatibility issues for H3 and M3-W
   - rtsx_usb_sdmmc: Re-work card detection/removal support
   - rtsx_usb_sdmmc: Re-work runtime PM support
   - sdhci: Fix timeout loops for some variant drivers
   - sdhci: Improve support for error handling due to failing commands
   - sdhci-acpi/pci: Disable LED control for Intel BYT-based controllers
   - sdhci_am654: Add new SDHCI variant driver to support TI's AM654 SOCs
   - sdhci-of-esdhc: Add support for eMMC HS400 mode
   - sdhci-omap: Fixup reset support
   - sdhci-omap: Workaround errata regarding SDR104/HS200 tuning failures
   - sdhci-msm: Fixup sporadic write transfers issues for SDR104/HS200
   - sdhci-msm: Fixup dynamical clock gating issues
   - various: Complete converting all hosts into using slot GPIO descriptors

  Other:
   - Move GPIO mmc platform data for mips/sh/arm to GPIO descriptors
   - Add new Alcor Micro cardreader PCI driver
   - Support runtime power management for memstick rtsx_usb_ms driver
   - Use USB remote wakeups for card detection for rtsx_usb misc driver"

* tag 'mmc-v4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: (99 commits)
  mmc: mediatek: Add MMC_CAP_SDIO_IRQ support
  mmc: renesas_sdhi_internal_dmac: Whitelist r8a774c0
  dt-bindings: mmc: renesas_sdhi: Add r8a774c0 support
  mmc: core: Cleanup BKOPS support
  mmc: core: Drop redundant check in mmc_send_hpi_cmd()
  mmc: sdhci-omap: Workaround errata regarding SDR104/HS200 tuning failures (i929)
  dt-bindings: sdhci-omap: Add note for cpu_thermal
  mmc: sdhci-acpi: Disable LED control for Intel BYT-based controllers
  mmc: sdhci-pci: Disable LED control for Intel BYT-based controllers
  mmc: sdhci: Add quirk to disable LED control
  mmc: mmci: add variant property to set command stop bit
  misc: alcor_pci: fix spelling mistake "invailid" -> "invalid"
  mmc: meson-gx: add signal resampling
  mmc: meson-gx: align default phase on soc vendor tree
  mmc: meson-gx: remove useless lock
  mmc: meson-gx: make sure the descriptor is stopped on errors
  mmc: sdhci_am654: Add Initial Support for AM654 SDHCI driver
  dt-bindings: mmc: sdhci-of-arasan: Add deprecated message for AM65
  dt-bindings: mmc: sdhci-am654: Document bindings for the host controllers on TI's AM654 SOCs
  mmc: sdhci-msm: avoid unused function warning
  ...
parents 75f95da0 5215b2e9
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -16,6 +16,10 @@ Required Properties:
    - "rockchip,rk3399-sdhci-5.1", "arasan,sdhci-5.1": rk3399 eMMC PHY
      For this device it is strongly suggested to include arasan,soc-ctl-syscon.
    - "ti,am654-sdhci-5.1", "arasan,sdhci-5.1": TI AM654 MMC PHY
	Note: This binding has been deprecated and moved to [5].

  [5] Documentation/devicetree/bindings/mmc/sdhci-am654.txt

  - reg: From mmc bindings: Register location and length.
  - clocks: From clock bindings: Handles to clock inputs.
  - clock-names: From clock bindings: Tuple including "clk_xin" and "clk_ahb"
+1 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@ Required properties:
	       "fsl,imx6sl-usdhc"
	       "fsl,imx6sx-usdhc"
	       "fsl,imx7d-usdhc"
	       "fsl,imx8qxp-usdhc"

Optional properties:
- fsl,wp-controller : Indicate to use controller internal write protection
+36 −0
Original line number Diff line number Diff line
Device Tree Bindings for the SDHCI Controllers present on TI's AM654 SOCs

The bindings follow the mmc[1], clock[2] and interrupt[3] bindings.
Only deviations are documented here.

  [1] Documentation/devicetree/bindings/mmc/mmc.txt
  [2] Documentation/devicetree/bindings/clock/clock-bindings.txt
  [3] Documentation/devicetree/bindings/interrupt-controller/interrupts.txt

Required Properties:
	- compatible: should be "ti,am654-sdhci-5.1"
	- reg: Must be two entries.
		- The first should be the sdhci register space
		- The second should the subsystem/phy register space
	- clocks: Handles to the clock inputs.
	- clock-names: Tuple including "clk_xin" and "clk_ahb"
	- interrupts: Interrupt specifiers
	- ti,otap-del-sel: Output Tap Delay select
	- ti,trm-icp: DLL trim select
	- ti,driver-strength-ohm: driver strength in ohms.
				  Valid values are 33, 40, 50, 66 and 100 ohms.

Example:

	sdhci0: sdhci@4f80000 {
		compatible = "ti,am654-sdhci-5.1";
		reg = <0x0 0x4f80000 0x0 0x260>, <0x0 0x4f90000 0x0 0x134>;
		power-domains = <&k3_pds 47>;
		clocks = <&k3_clks 47 0>, <&k3_clks 47 1>;
		clock-names = "clk_ahb", "clk_xin";
		interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
		sdhci-caps-mask = <0x80000007 0x0>;
		mmc-ddr-1_8v;
		ti,otap-del-sel = <0x2>;
		ti,trm-icp = <0x8>;
	};
+18 −5
Original line number Diff line number Diff line
@@ -4,15 +4,28 @@ This file documents differences between the core properties in mmc.txt
and the properties used by the sdhci-msm driver.

Required properties:
- compatible: Should contain:
- compatible: Should contain a SoC-specific string and a IP version string:
	version strings:
		"qcom,sdhci-msm-v4" for sdcc versions less than 5.0
		"qcom,sdhci-msm-v5" for sdcc versions >= 5.0
		"qcom,sdhci-msm-v5" for sdcc version 5.0
		For SDCC version 5.0.0, MCI registers are removed from SDCC
		interface and some registers are moved to HC. New compatible
		string is added to support this change - "qcom,sdhci-msm-v5".
	full compatible strings with SoC and version:
		"qcom,apq8084-sdhci", "qcom,sdhci-msm-v4"
		"qcom,msm8974-sdhci", "qcom,sdhci-msm-v4"
		"qcom,msm8916-sdhci", "qcom,sdhci-msm-v4"
		"qcom,msm8992-sdhci", "qcom,sdhci-msm-v4"
		"qcom,msm8996-sdhci", "qcom,sdhci-msm-v4"
		"qcom,sdm845-sdhci", "qcom,sdhci-msm-v5"
		"qcom,qcs404-sdhci", "qcom,sdhci-msm-v5"
	NOTE that some old device tree files may be floating around that only
	have the string "qcom,sdhci-msm-v4" without the SoC compatible string
	but doing that should be considered a deprecated practice.

- reg: Base address and length of the register in the following order:
	- Host controller register map (required)
	- SD Core register map (required)
	- SD Core register map (required for msm-v4 and below)
- interrupts: Should contain an interrupt-specifiers for the interrupts:
	- Host controller interrupt (required)
- pinctrl-names: Should contain only one value - "default".
@@ -29,7 +42,7 @@ Required properties:
Example:

	sdhc_1: sdhci@f9824900 {
		compatible = "qcom,sdhci-msm-v4";
		compatible = "qcom,msm8974-sdhci", "qcom,sdhci-msm-v4";
		reg = <0xf9824900 0x11c>, <0xf9824000 0x800>;
		interrupts = <0 123 0>;
		bus-width = <8>;
@@ -46,7 +59,7 @@ Example:
	};

	sdhc_2: sdhci@f98a4900 {
		compatible = "qcom,sdhci-msm-v4";
		compatible = "qcom,msm8974-sdhci", "qcom,sdhci-msm-v4";
		reg = <0xf98a4900 0x11c>, <0xf98a4000 0x800>;
		interrupts = <0 125 0>;
		bus-width = <4>;
+2 −0
Original line number Diff line number Diff line
@@ -2,6 +2,8 @@

Refer to mmc.txt for standard MMC bindings.

For UHS devices which require tuning, the device tree should have a "cpu_thermal" node which maps to the appropriate thermal zone. This is used to get the temperature of the zone during tuning.

Required properties:
- compatible: Should be "ti,dra7-sdhci" for DRA7 and DRA72 controllers
	      Should be "ti,k2g-sdhci" for K2G
Loading