Merge tag 'mmc-updates-for-3.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel...
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 18 Nov 2013 22:47:30 +0000 (14:47 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 18 Nov 2013 22:47:30 +0000 (14:47 -0800)
Pull MMC updates from Chris Ball:
 "MMC highlights for 3.13:

  Core:
   - Improve runtime PM support, remove mmc_{suspend,resume}_host().
   - Add MMC_CAP_RUNTIME_RESUME, for delaying MMC resume until we're
     outside of the resume sequence (in runtime_resume) to decrease
     system resume time.

  Drivers:
   - dw_mmc: Support HS200 mode.
   - sdhci-eshdc-imx: Support SD3.0 SDR clock tuning, DDR on IMX6.
   - sdhci-pci: Add support for Intel Clovertrail and Merrifield"

* tag 'mmc-updates-for-3.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc: (108 commits)
  mmc: wbsd: Silence compiler warning
  mmc: core: Silence compiler warning in __mmc_switch
  mmc: sh_mmcif: Convert to clk_prepare|unprepare
  mmc: sh_mmcif: Convert to PM macros when defining dev_pm_ops
  mmc: dw_mmc: exynos: Revert the sdr_timing assignment
  mmc: sdhci: Avoid needless loop while handling SDIO interrupts in sdhci_irq
  mmc: core: Add MMC_CAP_RUNTIME_RESUME to resume at runtime_resume
  mmc: core: Improve runtime PM support during suspend/resume for sd/mmc
  mmc: core: Remove redundant mmc_power_up|off at runtime callbacks
  mmc: Don't force card to active state when entering suspend/shutdown
  MIPS: db1235: Don't use MMC_CLKGATE
  mmc: core: Remove deprecated mmc_suspend|resume_host APIs
  mmc: mmci: Move away from using deprecated APIs
  mmc: via-sdmmc: Move away from using deprecated APIs
  mmc: tmio: Move away from using deprecated APIs
  mmc: sh_mmcif: Move away from using deprecated APIs
  mmc: sdricoh_cs: Move away from using deprecated APIs
  mmc: rtsx: Remove redundant suspend and resume callbacks
  mmc: wbsd: Move away from using deprecated APIs
  mmc: pxamci: Remove redundant suspend and resume callbacks
  ...

1  2 
Documentation/devicetree/bindings/mmc/synopsys-dw-mshc.txt
drivers/mmc/core/bus.c
drivers/mmc/host/mmci.c
drivers/mmc/host/mvsdio.c

index 066a78b,0000000..8f3f133
mode 100644,000000..100644
--- /dev/null
@@@ -1,107 -1,0 +1,116 @@@
 +* Synopsys Designware Mobile Storage Host Controller
 +
 +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 mmc properties described by mmc.txt and the
 +properties used by the Synopsys Designware Mobile Storage Host Controller.
 +
 +Required Properties:
 +
 +* compatible: should be
 +      - snps,dw-mshc: for controllers compliant with synopsys dw-mshc.
 +* #address-cells: should be 1.
 +* #size-cells: should be 0.
 +
 +# Slots: The slot specific information are contained within child-nodes with
 +  each child-node representing a supported slot. There should be atleast one
 +  child node representing a card slot. The name of the child node representing
 +  the slot is recommended to be slot@n where n is the unique number of the slot
 +  connnected to the controller. The following are optional properties which
 +  can be included in the slot child node.
 +
 +      * reg: specifies the physical slot number. The valid values of this
 +        property is 0 to (num-slots -1), where num-slots is the value
 +        specified by the num-slots property.
 +
 +      * bus-width: as documented in mmc core bindings.
 +
 +      * wp-gpios: specifies the write protect gpio line. The format of the
 +        gpio specifier depends on the gpio controller. If a GPIO is not used
 +        for write-protect, this property is optional.
 +
 +      * disable-wp: If the wp-gpios property isn't present then (by default)
 +        we'd assume that the write protect is hooked up directly to the
 +        controller's special purpose write protect line (accessible via
 +        the WRTPRT register).  However, it's possible that we simply don't
 +        want write protect.  In that case specify 'disable-wp'.
 +        NOTE: This property is not required for slots known to always
 +        connect to eMMC or SDIO cards.
 +
 +Optional properties:
 +
 +* clocks: from common clock binding: handle to biu and ciu clocks for the
 +  bus interface unit clock and the card interface unit clock.
 +
 +* clock-names: from common clock binding: Shall be "biu" and "ciu".
 +  If the biu clock is missing we'll simply skip enabling it.  If the
 +  ciu clock is missing we'll just assume that the clock is running at
 +  clock-frequency.  It is an error to omit both the ciu clock and the
 +  clock-frequency.
 +
 +* clock-frequency: should be the frequency (in Hz) of the ciu clock.  If this
 +  is specified and the ciu clock is specified then we'll try to set the ciu
 +  clock to this at probe time.
 +
++* clock-freq-min-max: Minimum and Maximum clock frequency for card output
++  clock(cclk_out). If it's not specified, max is 200MHZ and min is 400KHz by default.
++
 +* num-slots: specifies the number of slots supported by the controller.
 +  The number of physical slots actually used could be equal or less than the
 +  value specified by num-slots. If this property is not specified, the value
 +  of num-slot property is assumed to be 1.
 +
 +* fifo-depth: The maximum size of the tx/rx fifo's. If this property is not
 +  specified, the default value of the fifo size is determined from the
 +  controller registers.
 +
 +* card-detect-delay: Delay in milli-seconds before detecting card after card
 +  insert event. The default value is 0.
 +
 +* supports-highspeed: Enables support for high speed cards (up to 50MHz)
 +
++* caps2-mmc-hs200-1_8v: Supports mmc HS200 SDR 1.8V mode
++
++* caps2-mmc-hs200-1_2v: Supports mmc HS200 SDR 1.2V mode
++
 +* broken-cd: as documented in mmc core bindings.
 +
 +* vmmc-supply: The phandle to the regulator to use for vmmc.  If this is
 +  specified we'll defer probe until we can find this regulator.
 +
 +Aliases:
 +
 +- All the MSHC controller nodes should be represented in the aliases node using
 +  the following format 'mshc{n}' where n is a unique number for the alias.
 +
 +Example:
 +
 +The MSHC controller node can be split into two portions, SoC specific and
 +board specific portions as listed below.
 +
 +      dwmmc0@12200000 {
 +              compatible = "snps,dw-mshc";
 +              clocks = <&clock 351>, <&clock 132>;
 +              clock-names = "biu", "ciu";
 +              reg = <0x12200000 0x1000>;
 +              interrupts = <0 75 0>;
 +              #address-cells = <1>;
 +              #size-cells = <0>;
 +      };
 +
 +      dwmmc0@12200000 {
 +              clock-frequency = <400000000>;
++              clock-freq-min-max = <400000 200000000>;
 +              num-slots = <1>;
 +              supports-highspeed;
++              caps2-mmc-hs200-1_8v;
 +              broken-cd;
 +              fifo-depth = <0x80>;
 +              card-detect-delay = <200>;
 +              vmmc-supply = <&buck8>;
 +
 +              slot@0 {
 +                      reg = <0>;
 +                      bus-width = <8>;
 +              };
 +      };
Simple merge
Simple merge
@@@ -872,10 -845,7 +845,8 @@@ static const struct of_device_id mvsdio
  MODULE_DEVICE_TABLE(of, mvsdio_dt_ids);
  
  static struct platform_driver mvsd_driver = {
 -      .remove         = __exit_p(mvsd_remove),
 +      .probe          = mvsd_probe,
 +      .remove         = mvsd_remove,
-       .suspend        = mvsd_suspend,
-       .resume         = mvsd_resume,
        .driver         = {
                .name   = DRIVER_NAME,
                .of_match_table = mvsdio_dt_ids,