Commit be18cd1f authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull MMC and MEMSTICK updates from Ulf Hansson:
 "MMC core:
   - Fix hanging on I/O during system suspend for removable cards
   - Set read only for SD cards with permanent write protect bit
   - Power cycle the SD/SDIO card if CMD11 fails for UHS voltage
   - Issue a cache flush for eMMC only when it's enabled
   - Adopt to updated cache ctrl settings for eMMC from MMC ioctls
   - Use use device property API when parsing voltages
   - Don't retry eMMC sanitize cmds
   - Use the timeout from the MMC ioctl for eMMC santize cmds

  MMC host:
   - mmc_spi: Make of_mmc_spi.c resource provider agnostic
   - mmc_spi: Use polling for card detect even without voltage-ranges
   - sdhci: Check for reset prior to DMA address unmap
   - sdhci-acpi: Add support for the AMDI0041 eMMC controller variant
   - sdhci-esdhc-imx: Depending on OF Kconfig and cleanup code
   - sdhci-pci: Add PCI IDs for Intel LKF
   - sdhci-pci: Fix initialization of some SD cards for Intel BYT
   - sdhci-pci-gli: Various improvements for GL97xx variants
   - sdhci-of-dwcmshc: Enable support for MMC_CAP_WAIT_WHILE_BUSY
   - sdhci-of-dwcmshc: Add ACPI support for BlueField-3 SoC
   - sdhci-of-dwcmshc: Add Rockchip platform support
   - tmio/renesas_sdhi: Extend support for reset and use a reset controller
   - tmio/renesas_sdhi: Enable support for MMC_CAP_WAIT_WHILE_BUSY
   - tmio/renesas_sdhi: Various improvements

  MEMSTICK:
   - Minor improvements/cleanups"

* tag 'mmc-v5.13' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: (79 commits)
  mmc: block: Issue a cache flush only when it's enabled
  memstick: r592: ignore kfifo_out() return code again
  mmc: block: Update ext_csd.cache_ctrl if it was written
  mmc: mmc_spi: Make of_mmc_spi.c resource provider agnostic
  mmc: mmc_spi: Use already parsed IRQ
  mmc: mmc_spi: Drop unused NO_IRQ definition
  mmc: mmc_spi: Set up polling even if voltage-ranges is not present
  mmc: core: Convert mmc_of_parse_voltage() to use device property API
  mmc: core: Correct descriptions in mmc_of_parse()
  mmc: dw_mmc-rockchip: Just set default sample value for legacy mode
  mmc: sdhci-s3c: constify uses of driver/match data
  mmc: sdhci-s3c: correct kerneldoc of sdhci_s3c_drv_data
  mmc: sdhci-s3c: simplify getting of_device_id match data
  mmc: tmio: always restore irq register
  mmc: sdhci-pci-gli: Enlarge ASPM L1 entry delay of GL975x
  mmc: core: Let eMMC sanitize not retry in case of timeout/failure
  mmc: core: Add a retries parameter to __mmc_switch function
  memstick: r592: remove unused variable
  mmc: sdhci-st: Remove unnecessary error log
  mmc: sdhci-msm: Remove unnecessary error log
  ...
parents 6fa09d31 97fce126
Loading
Loading
Loading
Loading
+63 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/mmc/brcm,iproc-sdhci.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Broadcom IPROC SDHCI controller

maintainers:
  - Ray Jui <ray.jui@broadcom.com>
  - Scott Branden <scott.branden@broadcom.com>
  - Nicolas Saenz Julienne <nsaenz@kernel.org>

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

properties:
  compatible:
    enum:
      - brcm,bcm2835-sdhci
      - brcm,bcm2711-emmc2
      - brcm,sdhci-iproc-cygnus
      - brcm,sdhci-iproc

  reg:
    minItems: 1

  interrupts:
    maxItems: 1

  clocks:
    maxItems: 1
    description:
      Handle to core clock for the sdhci controller.

  sdhci,auto-cmd12:
    type: boolean
    description: Specifies that controller should use auto CMD12

required:
  - compatible
  - reg
  - interrupts
  - clocks

unevaluatedProperties: false

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

    mmc@18041000 {
      compatible = "brcm,sdhci-iproc-cygnus";
      reg = <0x18041000 0x100>;
      interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
      clocks = <&lcpll0_clks BCM_CYGNUS_LCPLL0_SDIO_CLK>;
      bus-width = <4>;
      sdhci,auto-cmd12;
      no-1-8-v;
    };
...
+0 −37
Original line number Diff line number Diff line
Broadcom IPROC SDHCI controller

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

Required properties:
- compatible : Should be one of the following
	       "brcm,bcm2835-sdhci"
	       "brcm,bcm2711-emmc2"
	       "brcm,sdhci-iproc-cygnus"
	       "brcm,sdhci-iproc"

Use brcm2835-sdhci for the eMMC controller on the BCM2835 (Raspberry Pi) and
bcm2711-emmc2 for the additional eMMC2 controller on BCM2711.

Use sdhci-iproc-cygnus for Broadcom SDHCI Controllers
restricted to 32bit host accesses to SDHCI registers.

Use sdhci-iproc for Broadcom SDHCI Controllers that allow standard
8, 16, 32-bit host access to SDHCI register.

- clocks : The clock feeding the SDHCI controller.

Optional properties:
  - sdhci,auto-cmd12: specifies that controller should use auto CMD12.

Example:

sdhci0: sdhci@18041000 {
	compatible = "brcm,sdhci-iproc-cygnus";
	reg = <0x18041000 0x100>;
	interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
	clocks = <&lcpll0_clks BCM_CYGNUS_LCPLL0_SDIO_CLK>;
	bus-width = <4>;
	sdhci,auto-cmd12;
	no-1-8-v;
};
+20 −0
Original line number Diff line number Diff line
@@ -103,6 +103,26 @@ properties:
      Only eMMC HS400 mode need to take care of this property.
    default: 0

  clocks:
    maxItems: 3
    description:
      Handle clocks for the sdhc controller.

  clock-names:
    items:
      - const: ipg
      - const: ahb
      - const: per

  pinctrl-names:
    minItems: 1
    maxItems: 4
    items:
      - const: default
      - const: state_100mhz
      - const: state_200mhz
      - const: sleep

required:
  - compatible
  - reg
+3 −3
Original line number Diff line number Diff line
@@ -5,11 +5,11 @@ by mmc.txt and the properties used by the mmc_spi driver.

Required properties:
- spi-max-frequency : maximum frequency for this device (Hz).
- voltage-ranges : two cells are required, first cell specifies minimum
  slot voltage (mV), second cell specifies maximum slot voltage (mV).
  Several ranges could be specified.

Optional properties:
- voltage-ranges : two cells are required, first cell specifies minimum
  slot voltage (mV), second cell specifies maximum slot voltage (mV).
  Several ranges could be specified. If not provided, 3.2v..3.4v is assumed.
- gpios : may specify GPIOs in this order: Card-Detect GPIO,
  Write-Protect GPIO. Note that this does not follow the
  binding from mmc.txt, for historical reasons.
+1 −0
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ properties:
          - const: mediatek,mt2701-mmc
      - items:
          - const: mediatek,mt8192-mmc
          - const: mediatek,mt8195-mmc
          - const: mediatek,mt8183-mmc

  clocks:
Loading