Commit 0e45384c authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull MMC updates from Ulf Hansson:
 "These are the updates for MMC and MEMSTICK for v5.5.

  Note that this also contains quite some additional changes reaching
  beyond both the MMC and MEMSTICK subsystems. This is primarily because
  of fixing an old regression for a WiFi driver based on the SDIO
  interface on an OMAP openpandora board

  MMC core:
   - Add CMD13 polling for MMC IOCTLS with R1B response.
   - Add common DT properties for clk-phase-delays for various speed
     modes.
   - Fix size overflow for mmc gp-partitions.
   - Re-work HW reset for SDIO cards, which also includes a re-work for
     Marvell's WiFi mwifiex SDIO func driver.

  MMC host:
   - jz4740: Add support for X1000 and JZ4760.
   - jz4740: Add support for 8-bit bus and for low power mode.
   - mmci: Add support for HW busy timeout for the stm32_sdmmc variant.
   - owl-mmc: Add driver for Actions Semi Owl SoCs SD/MMC controller.
   - renesas_sdhi: Add support for r8a774b1.
   - sdhci_am654: Add support for Command Queuing Engine for J721E.
   - sdhci-milbeaut: Add driver for the Milbeaut SD controller.
   - sdhci-of-arasan: Add support for ZynqMP tap-delays.
   - sdhci-of-arasan: Add support for clk-phase-delays for SD cards.
   - sdhci-of-arasan: Add support for Intel LGM SDXC.
   - sdhci-of-aspeed: Allow inversion of the internal card detect
     signal.
   - sdhci-of-esdhc: Fixup workaround for erratum A-008171 for tunings.
   - sdhci-of-at91: Improve support for calibration.
   - sdhci-pci: Add support for Intel JSL.
   - sdhci-pci: Add quirk for AMD SDHC Device 0x7906.
   - tmio: Enable support for erase/discard/trim requests.

  MMC/OMAP/pandora/wl1251:

  The TI wl1251 WiFi driver for SDIO on the OMAP openpandora board has
  been broken since v4.7. To fix the problems, changes have been made
  cross subsystems, but also to OMAP2 machine code and to openpandora
  DTS files, as summarized below. Relevant changes have been tagged for
  stable.

   - mmc/wl1251: Re-introduce lost SDIO quirks and vendor-id for wl1251
   - omap/omap_hsmmc: Remove redundant platform config for openpandora
   - omap_hsmmc: Initialize non-std SDIO card for wl1251 for pandora
   - omap/dts/pandora: Specify wl1251 through a child node of mmc3
   - wl1251: Add devicetree support for TI wl1251 SDIO"

* tag 'mmc-v5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: (73 commits)
  dt-bindings: mmc: Correct the type of the clk phase properties
  Revert "mmc: tmio: remove workaround for NON_REMOVABLE"
  memstick: Fix Kconfig indentation
  mmc: sdhci-of-arasan: Add support for ZynqMP Platform Tap Delays Setup
  dt-bindings: mmc: arasan: Document 'xlnx,zynqmp-8.9a' controller
  firmware: xilinx: Add SDIO Tap Delay nodes
  mmc: sdhci-of-arasan: Add support to set clock phase delays for SD
  dt-bindings: mmc: Add optional generic properties for mmc
  mmc: sdhci-of-arasan: Add sampling clock for a phy to use
  dt-bindings: mmc: arasan: Update Documentation for the input clock
  mmc: sdhci-of-arasan: Separate out clk related data to another structure
  mmc: sdhci: Fix grammar in warning message
  mmc: sdhci-of-aspeed: add inversion signal presence
  mmc: sdhci-of-aspeed: enable CONFIG_MMC_SDHCI_IO_ACCESSORS
  mmc: sdhci_am654: Add Support for Command Queuing Engine to J721E
  mmc: core: Fix size overflow for mmc partitions
  mmc: tmio: Add MMC_CAP_ERASE to allow erase/discard/trim requests
  net: wireless: ti: remove local VENDOR_ID and DEVICE_ID definitions
  net: wireless: ti: wl1251 use new SDIO_VENDOR_ID_TI_WL1251 definition
  mmc: core: fix wl1251 sdio quirks
  ...
parents dc5fa465 def7bd94
Loading
Loading
Loading
Loading
+39 −3
Original line number Diff line number Diff line
@@ -15,10 +15,15 @@ Required Properties:
    - "arasan,sdhci-5.1": generic Arasan SDHCI 5.1 PHY
    - "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.
    - "xlnx,zynqmp-8.9a": ZynqMP SDHCI 8.9a PHY
      For this device it is strongly suggested to include clock-output-names and
      #clock-cells.
    - "ti,am654-sdhci-5.1", "arasan,sdhci-5.1": TI AM654 MMC PHY
	Note: This binding has been deprecated and moved to [5].
    - "intel,lgm-sdhci-5.1-emmc", "arasan,sdhci-5.1": Intel LGM eMMC PHY
      For this device it is strongly suggested to include arasan,soc-ctl-syscon.
    - "intel,lgm-sdhci-5.1-sdxc", "arasan,sdhci-5.1": Intel LGM SDXC PHY
      For this device it is strongly suggested to include arasan,soc-ctl-syscon.

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

@@ -38,15 +43,19 @@ Optional Properties:
  - clock-output-names: If specified, this will be the name of the card clock
    which will be exposed by this device.  Required if #clock-cells is
    specified.
  - #clock-cells: If specified this should be the value <0>.  With this property
    in place we will export a clock representing the Card Clock.  This clock
    is expected to be consumed by our PHY.  You must also specify
  - #clock-cells: If specified this should be the value <0> or <1>. With this
    property in place we will export one or two clocks representing the Card
    Clock. These clocks are expected to be consumed by our PHY.
  - xlnx,fails-without-test-cd: when present, the controller doesn't work when
    the CD line is not connected properly, and the line is not connected
    properly. Test mode can be used to force the controller to function.
  - xlnx,int-clock-stable-broken: when present, the controller always reports
    that the internal clock is stable even when it is not.

  - xlnx,mio-bank: When specified, this will indicate the MIO bank number in
    which the command and data lines are configured. If not specified, driver
    will assume this as 0.

Example:
	sdhci@e0100000 {
		compatible = "arasan,sdhci-8.9a";
@@ -83,6 +92,18 @@ Example:
		#clock-cells = <0>;
	};

	sdhci: mmc@ff160000 {
		compatible = "xlnx,zynqmp-8.9a", "arasan,sdhci-8.9a";
		interrupt-parent = <&gic>;
		interrupts = <0 48 4>;
		reg = <0x0 0xff160000 0x0 0x1000>;
		clocks = <&clk200>, <&clk200>;
		clock-names = "clk_xin", "clk_ahb";
		clock-output-names = "clk_out_sd0", "clk_in_sd0";
		#clock-cells = <1>;
		clk-phase-sd-hs = <63>, <72>;
	};

	emmc: sdhci@ec700000 {
		compatible = "intel,lgm-sdhci-5.1-emmc", "arasan,sdhci-5.1";
		reg = <0xec700000 0x300>;
@@ -97,3 +118,18 @@ Example:
		phy-names = "phy_arasan";
		arasan,soc-ctl-syscon = <&sysconf>;
	};

	sdxc: sdhci@ec600000 {
		compatible = "arasan,sdhci-5.1", "intel,lgm-sdhci-5.1-sdxc";
		reg = <0xec600000 0x300>;
		interrupt-parent = <&ioapic1>;
		interrupts = <43 1>;
		clocks = <&cgu0 LGM_CLK_SDIO>, <&cgu0 LGM_CLK_NGI>,
			 <&cgu0 LGM_GCLK_SDXC>;
		clock-names = "clk_xin", "clk_ahb", "gate";
		clock-output-names = "sdxc_cardclock";
		#clock-cells = <0>;
		phys = <&sdxc_phy>;
		phy-names = "phy_arasan";
		arasan,soc-ctl-syscon = <&sysconf>;
	};
+3 −0
Original line number Diff line number Diff line
@@ -18,6 +18,9 @@ Required properties:
	       "fsl,imx6ull-usdhc"
	       "fsl,imx7d-usdhc"
	       "fsl,imx7ulp-usdhc"
	       "fsl,imx8mq-usdhc"
	       "fsl,imx8mm-usdhc"
	       "fsl,imx8mn-usdhc"
	       "fsl,imx8qxp-usdhc"

Optional properties:
+5 −3
Original line number Diff line number Diff line
* Ingenic JZ47xx MMC controllers
* Ingenic XBurst 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.
Ingenic JZ4740/JZ4760/JZ4780/X1000 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,jz4725b-mmc" for the JZ4725B
  - "ingenic,jz4760-mmc" for the JZ4760
  - "ingenic,jz4780-mmc" for the JZ4780
  - "ingenic,x1000-mmc" for the X1000
- 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.
+14 −0
Original line number Diff line number Diff line
@@ -333,6 +333,19 @@ patternProperties:
    required:
      - reg

  "^clk-phase-(legacy|sd-hs|mmc-(hs|hs[24]00|ddr52)|uhs-(sdr(12|25|50|104)|ddr50))$":
    allOf:
      - $ref: /schemas/types.yaml#/definitions/uint32-array
    minItems: 2
    maxItems: 2
    items:
      minimum: 0
      maximum: 359
      description:
        Set the clock (phase) delays which are to be configured in the
        controller while switching to particular speed mode. These values
        are in pair of degrees.

dependencies:
  cd-debounce-delay-ms: [ cd-gpios ]
  fixed-emmc-driver-type: [ non-removable ]
@@ -351,6 +364,7 @@ examples:
        keep-power-in-suspend;
        wakeup-source;
        mmc-pwrseq = <&sdhci0_pwrseq>;
        clk-phase-sd-hs = <63>, <72>;
    };

  - |
+59 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/mmc/owl-mmc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Actions Semi Owl SoCs SD/MMC/SDIO controller

allOf:
  - $ref: "mmc-controller.yaml"

maintainers:
  - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>

properties:
  compatible:
    const: actions,owl-mmc

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    minItems: 1

  resets:
    maxItems: 1

  dmas:
    maxItems: 1

  dma-names:
    const: mmc

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - resets
  - dmas
  - dma-names

examples:
  - |
    mmc0: mmc@e0330000 {
        compatible = "actions,owl-mmc";
        reg = <0x0 0xe0330000 0x0 0x4000>;
        interrupts = <0 42 4>;
        clocks = <&cmu 56>;
        resets = <&cmu 23>;
        dmas = <&dma 2>;
        dma-names = "mmc";
        bus-width = <4>;
    };

...
Loading