Commit 89181f54 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull MMC updates from Ulf Hansson:
 "MMC core:
   - Allow synchronous detection of (e)MMC/SD/SDIO cards
   - Fixup error check for ioctls for SPI hosts
   - Disable broken SD-Cache support for Kingston Canvas Go Plus from 2019
   - Disable broken eMMC-Trim support for Kingston EMMC04G-M627
   - Disable broken eMMC-Trim support for Micron MTFC4GACAJCN-1M

  MMC host:
   - bcm2835: Convert DT bindings to YAML
   - mmci:
      - Enable asynchronous probe
      - Transform the ux500 HW-busy detection into a proper state machine
      - Add support for SW busy-end timeouts for the ux500 variants
   - mmci_stm32:
      - Add support for sdm32 variant revision v3.0 used on STM32MP25
      - Improve the tuning sequence
   - mtk-sd: Tune polling-period to improve performance
   - sdhci: Fixup DMA configuration for 64-bit DMA mode
   - sdhci-bcm-kona: Convert DT bindings to YAML
   - sdhci-msm:
      - Switch to use the new ICE API
      - Add support for the SC8280XP/IPQ6018/QDU1000/QRU1000 variants
   - sdhci-pci-gli:
      - Add support SD Express cards for GL9767
      - Add support for the Genesys Logic GL9767 variant"

* tag 'mmc-v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: (42 commits)
  dt-bindings: mmc: fsl-imx-esdhc: Add imx6ul support
  mmc: mmci: Add support for SW busy-end timeouts
  mmc: Add MMC_QUIRK_BROKEN_SD_CACHE for Kingston Canvas Go Plus from 11/2019
  mmc: core: disable TRIM on Kingston EMMC04G-M627
  mmc: mmci: stm32: add delay block support for STM32MP25
  mmc: mmci: stm32: prepare other delay block support
  mmc: mmci: stm32: manage block gap hardware flow control
  mmc: mmci: Add support for sdmmc variant revision v3.0
  mmc: mmci: add stm32_idmabsize_align parameter
  dt-bindings: mmc: mmci: Add st,stm32mp25-sdmmc2 compatible
  mmc: core: disable TRIM on Micron MTFC4GACAJCN-1M
  mmc: mmci: Break out a helper function
  mmc: mmci: Use a switch statement machine
  mmc: mmci: Use state machine state as exit condition
  mmc: mmci: Retry the busy start condition
  mmc: mmci: Make busy complete state machine explicit
  mmc: mmci: Break out error check in busy detect
  mmc: mmci: Stash status while waiting for busy
  mmc: mmci: Unwind big if() clause
  mmc: mmci: Clear busy_status when starting command
  ...
parents 1364b406 06b5d4fe
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -53,10 +53,11 @@ properties:
        items:
          - const: arm,pl18x
          - const: arm,primecell
      - description: Entry for STMicroelectronics variant of PL18x.
          This dedicated compatible is used by bootloaders.
      - description: Entries for STMicroelectronics variant of PL18x.
        items:
          - const: st,stm32-sdmmc2
          - enum:
              - st,stm32-sdmmc2
              - st,stm32mp25-sdmmc2
          - const: arm,pl18x
          - const: arm,primecell

+0 −23
Original line number Diff line number Diff line
Broadcom BCM2835 SDHOST controller

This file documents differences between the core properties described
by mmc.txt and the properties that represent the BCM2835 controller.

Required properties:
- compatible: Should be "brcm,bcm2835-sdhost".
- clocks: The clock feeding the SDHOST controller.

Optional properties:
- dmas: DMA channel for read and write.
          See Documentation/devicetree/bindings/dma/dma.txt for details

Example:

sdhost: mmc@7e202000 {
	compatible = "brcm,bcm2835-sdhost";
	reg = <0x7e202000 0x100>;
	interrupts = <2 24>;
	clocks = <&clocks BCM2835_CLOCK_VPU>;
	dmas = <&dma 13>;
	dma-names = "rx-tx";
};
+54 −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/brcm,bcm2835-sdhost.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Broadcom BCM2835 SDHOST controller

maintainers:
  - Stefan Wahren <stefan.wahren@i2se.com>

allOf:
  - $ref: mmc-controller.yaml

properties:
  compatible:
    const: brcm,bcm2835-sdhost

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    maxItems: 1

  dmas:
    maxItems: 1

  dma-names:
    const: rx-tx

required:
  - compatible
  - reg
  - interrupts
  - clocks

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/clock/bcm2835.h>

    sdhost: mmc@7e202000 {
      compatible = "brcm,bcm2835-sdhost";
      reg = <0x7e202000 0x100>;
      interrupts = <2 24>;
      clocks = <&clocks BCM2835_CLOCK_VPU>;
      dmas = <&dma 13>;
      dma-names = "rx-tx";
      bus-width = <4>;
    };
+0 −21
Original line number Diff line number Diff line
Broadcom BCM281xx SDHCI

This file documents differences between the core properties in mmc.txt
and the properties present in the bcm281xx SDHCI

Required properties:
- compatible : Should be "brcm,kona-sdhci"
- DEPRECATED: compatible : Should be "bcm,kona-sdhci"
- clocks: phandle + clock specifier pair of the external clock

Refer to clocks/clock-bindings.txt for generic clock consumer properties.

Example:

sdio2: sdio@3f1a0000 {
	compatible = "brcm,kona-sdhci";
	reg = <0x3f1a0000 0x10000>;
	clocks = <&sdio3_clk>;
	interrupts = <0x0 74 0x4>;
};
+48 −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/brcm,kona-sdhci.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Broadcom Kona family SDHCI controller

maintainers:
  - Florian Fainelli <f.fainelli@gmail.com>

allOf:
  - $ref: sdhci-common.yaml#

properties:
  compatible:
    const: brcm,kona-sdhci

  reg:
    maxItems: 1

  clocks:
    maxItems: 1

  interrupts:
    maxItems: 1

required:
  - compatible
  - reg
  - clocks
  - interrupts

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/clock/bcm281xx.h>

    mmc@3f1a0000 {
        compatible = "brcm,kona-sdhci";
        reg = <0x3f1a0000 0x10000>;
        clocks = <&master_ccu BCM281XX_MASTER_CCU_SDIO3>;
        interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
    };
...
Loading