Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f60342fa authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull MMC updates from Ulf Hansson:
 "MMC core:
   - Decrease polling rate for erase/trim/discard
   - Allow non-sleeping GPIOs for card detect
   - Improve mmc block removal path
   - Enable support for mmc_sw_reset() for SDIO cards
   - Add mmc_sw_reset() to allow users to do a soft reset of the card
   - Allow power delay to be tunable via DT
   - Allow card detect debounce delay to be tunable via DT
   - Enable new quirk to limit clock rate for Marvell 8887 chip
   - Don't show eMMC RPMB and BOOT areas in /proc/partitions
   - Add capability to avoid 3.3V signaling for fragile HWs

  MMC host:
   - Improve/fixup support for handle highmem pages
   - Remove depends on HAS_DMA in case of platform dependency
   - mvsdio: Enable support for erase/trim/discard
   - rtsx_usb: Enable support for erase/trim/discard
   - renesas_sdhi: Fix WP logic regressions
   - renesas_sdhi: Add r8a77965 support
   - renesas_sdhi: Add R8A77980 to whitelist
   - meson: Add optional support for device reset
   - meson: Add support for the Meson-AXG platform
   - dw_mmc: Add new driver for BlueField DW variant
   - mediatek: Add support for 64G DRAM DMA
   - sunxi: Deploy runtime PM support
   - jz4740: Add support for JZ4780
   - jz4740: Enable support for DT based platforms
   - sdhci: Various improvement to timeout handling
   - sdhci: Disable support for HS200/HS400/UHS when no 1.8V support
   - sdhci-omap: Add support for controller in k2g SoC
   - sdhci-omap: Add workarounds for a couple of Erratas
   - sdhci-omap: Enable support for generic sdhci DT properties
   - sdhci-cadence: Re-send tune request to deal with errata
   - sdhci-pci: Fix 3.3V voltage switch for some BYT-based Intel controllers
   - sdhci-pci: Avoid 3.3V signaling on some NI 904x
   - sdhci-esdhc-imx: Use watermark levels for PIO access
   - sdhci-msm: Improve card detection handling
   - sdhci-msm: Add support voltage pad switching"

* tag 'mmc-v4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: (104 commits)
  mmc: renesas_sdhi: really fix WP logic regressions
  mmc: mvsdio: Enable MMC_CAP_ERASE
  mmc: mvsdio: Respect card busy time out from mmc core
  mmc: sdhci-msm: Remove NO_CARD_NO_RESET quirk
  mmc: sunxi: Use ifdef rather than __maybe_unused
  mmc: mxmmc: Use ifdef rather than __maybe_unused
  mmc: mxmmc: include linux/highmem.h
  mmc: sunxi: mark PM functions as __maybe_unused
  mmc: Throttle calls to MMC_SEND_STATUS during mmc_do_erase()
  mmc: au1xmmc: handle highmem pages
  mmc: Allow non-sleeping GPIO cd
  mmc: sdhci-*: Don't emit error msg if sdhci_add_host() fails
  mmc: sd: Define name for default speed dtr
  mmc: core: Move calls to ->prepare_hs400_tuning() closer to mmc code
  mmc: sdhci-xenon: use match_string() helper
  mmc: wbsd: handle highmem pages
  mmc: ushc: handle highmem pages
  mmc: mxcmmc: handle highmem pages
  mmc: atmel-mci: use sg_copy_{from,to}_buffer
  mmc: android-goldfish: use sg_copy_{from,to}_buffer
  ...
parents 5231804c ef5332c1
Loading
Loading
Loading
Loading
+3 −0
Original line number Original line Diff line number Diff line
@@ -12,6 +12,7 @@ Required properties:
  - "amlogic,meson-gxbb-mmc"
  - "amlogic,meson-gxbb-mmc"
  - "amlogic,meson-gxl-mmc"
  - "amlogic,meson-gxl-mmc"
  - "amlogic,meson-gxm-mmc"
  - "amlogic,meson-gxm-mmc"
  - "amlogic,meson-axg-mmc"
- clocks     : A list of phandle + clock-specifier pairs for the clocks listed in clock-names.
- clocks     : A list of phandle + clock-specifier pairs for the clocks listed in clock-names.
- clock-names: Should contain the following:
- clock-names: Should contain the following:
	"core" - Main peripheral bus clock
	"core" - Main peripheral bus clock
@@ -19,6 +20,7 @@ Required properties:
	"clkin1" - Other parent clock of internal mux
	"clkin1" - Other parent clock of internal mux
  The driver has an internal mux clock which switches between clkin0 and clkin1 depending on the
  The driver has an internal mux clock which switches between clkin0 and clkin1 depending on the
  clock rate requested by the MMC core.
  clock rate requested by the MMC core.
- resets     : phandle of the internal reset line


Example:
Example:


@@ -29,4 +31,5 @@ Example:
		clocks = <&clkc CLKID_SD_EMMC_A>, <&xtal>, <&clkc CLKID_FCLK_DIV2>;
		clocks = <&clkc CLKID_SD_EMMC_A>, <&xtal>, <&clkc CLKID_FCLK_DIV2>;
		clock-names = "core", "clkin0", "clkin1";
		clock-names = "core", "clkin0", "clkin1";
		pinctrl-0 = <&emmc_pins>;
		pinctrl-0 = <&emmc_pins>;
		resets = <&reset RESET_SD_EMMC_A>;
	};
	};
+29 −0
Original line number Original line Diff line number Diff line
* Mellanox Bluefield SoC specific extensions to the Synopsys Designware
  Mobile Storage Host Controller

Read synopsys-dw-mshc.txt for more details

The Synopsys designware mobile storage host controller is used to interface
a SoC with storage medium such as eMMC or SD/MMC cards. This file documents
differences between the core Synopsys dw mshc controller properties described
by synopsys-dw-mshc.txt and the properties used by the Mellanox Bluefield SoC
specific extensions to the Synopsys Designware Mobile Storage Host Controller.

Required Properties:

* compatible: should be one of the following.
  - "mellanox,bluefield-dw-mshc": for controllers with Mellanox Bluefield SoC
    specific extensions.

Example:

	/* Mellanox Bluefield SoC MMC */
	mmc@6008000 {
		compatible = "mellanox,bluefield-dw-mshc";
		reg = <0x6008000 0x400>;
		interrupts = <32>;
		fifo-depth = <0x100>;
		clock-frequency = <24000000>;
		bus-width = <8>;
		cap-mmc-highspeed;
	};
+38 −0
Original line number Original line Diff line number Diff line
* Ingenic JZ47xx MMC controllers

This file documents the device tree properties used for the MMC controller in
Ingenic JZ4740/JZ4780 SoCs. These are in addition to the core MMC properties
described in mmc.txt.

Required properties:
- compatible: Should be one of the following:
  - "ingenic,jz4740-mmc" for the JZ4740
  - "ingenic,jz4780-mmc" for the JZ4780
- reg: Should contain the MMC controller registers location and length.
- interrupts: Should contain the interrupt specifier of the MMC controller.
- clocks: Clock for the MMC controller.

Optional properties:
- dmas: List of DMA specifiers with the controller specific format
        as described in the generic DMA client binding. A tx and rx
        specifier is required.
- dma-names: RX and TX  DMA request names.
        Should be "rx" and "tx", in that order.

For additional details on DMA client bindings see ../dma/dma.txt.

Example:

mmc0: mmc@13450000 {
	compatible = "ingenic,jz4780-mmc";
	reg = <0x13450000 0x1000>;

	interrupt-parent = <&intc>;
	interrupts = <37>;

	clocks = <&cgu JZ4780_CLK_MSC0>;
	clock-names = "mmc";

	dmas = <&dma JZ4780_DMA_MSC0_RX 0xffffffff>, <&dma JZ4780_DMA_MSC0_TX 0xffffffff>;
	dma-names = "rx", "tx";
};
+6 −0
Original line number Original line Diff line number Diff line
@@ -19,6 +19,8 @@ Optional properties:
- wp-gpios: Specify GPIOs for write protection, see gpio binding
- wp-gpios: Specify GPIOs for write protection, see gpio binding
- cd-inverted: when present, polarity on the CD line is inverted. See the note
- cd-inverted: when present, polarity on the CD line is inverted. See the note
  below for the case, when a GPIO is used for the CD line
  below for the case, when a GPIO is used for the CD line
- cd-debounce-delay-ms: Set delay time before detecting card after card insert interrupt.
  It's only valid when cd-gpios is present.
- wp-inverted: when present, polarity on the WP line is inverted. See the note
- wp-inverted: when present, polarity on the WP line is inverted. See the note
  below for the case, when a GPIO is used for the WP line
  below for the case, when a GPIO is used for the WP line
- disable-wp: When set no physical WP line is present. This property should
- disable-wp: When set no physical WP line is present. This property should
@@ -56,6 +58,10 @@ Optional properties:
- fixed-emmc-driver-type: for non-removable eMMC, enforce this driver type.
- fixed-emmc-driver-type: for non-removable eMMC, enforce this driver type.
  The value <n> is the driver type as specified in the eMMC specification
  The value <n> is the driver type as specified in the eMMC specification
  (table 206 in spec version 5.1).
  (table 206 in spec version 5.1).
- post-power-on-delay-ms : It was invented for MMC pwrseq-simple which could
  be referred to mmc-pwrseq-simple.txt. But now it's reused as a tunable delay
  waiting for I/O signalling and card power supply to be stable, regardless of
  whether pwrseq-simple is used. Default to 10ms if no available.


*NOTE* on CD and WP polarity. To use common for all SD/MMC host controllers line
*NOTE* on CD and WP polarity. To use common for all SD/MMC host controllers line
polarity properties, we have to fix the meaning of the "normal" and "inverted"
polarity properties, we have to fix the meaning of the "normal" and "inverted"
+7 −0
Original line number Original line Diff line number Diff line
@@ -4,7 +4,14 @@ Refer to mmc.txt for standard MMC bindings.


Required properties:
Required properties:
- compatible: Should be "ti,dra7-sdhci" for DRA7 and DRA72 controllers
- compatible: Should be "ti,dra7-sdhci" for DRA7 and DRA72 controllers
	      Should be "ti,k2g-sdhci" for K2G
- ti,hwmods: Must be "mmc<n>", <n> is controller instance starting 1
- ti,hwmods: Must be "mmc<n>", <n> is controller instance starting 1
	     (Not required for K2G).
- pinctrl-names: Should be subset of "default", "hs", "sdr12", "sdr25", "sdr50",
		 "ddr50-rev11", "sdr104-rev11", "ddr50", "sdr104",
		 "ddr_1_8v-rev11", "ddr_1_8v" or "ddr_3_3v", "hs200_1_8v-rev11",
		 "hs200_1_8v",
- pinctrl-<n> : Pinctrl states as described in bindings/pinctrl/pinctrl-bindings.txt


Example:
Example:
	mmc1: mmc@4809c000 {
	mmc1: mmc@4809c000 {
Loading