Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / Documentation / mmc / mmc-dev-attrs.txt
diff --git a/kernel/Documentation/mmc/mmc-dev-attrs.txt b/kernel/Documentation/mmc/mmc-dev-attrs.txt
new file mode 100644 (file)
index 0000000..189bab0
--- /dev/null
@@ -0,0 +1,84 @@
+SD and MMC Block Device Attributes
+==================================
+
+These attributes are defined for the block devices associated with the
+SD or MMC device.
+
+The following attributes are read/write.
+
+       force_ro                Enforce read-only access even if write protect switch is off.
+
+SD and MMC Device Attributes
+============================
+
+All attributes are read-only.
+
+       cid                     Card Identifaction Register
+       csd                     Card Specific Data Register
+       scr                     SD Card Configuration Register (SD only)
+       date                    Manufacturing Date (from CID Register)
+       fwrev                   Firmware/Product Revision (from CID Register) (SD and MMCv1 only)
+       hwrev                   Hardware/Product Revision (from CID Register) (SD and MMCv1 only)
+       manfid                  Manufacturer ID (from CID Register)
+       name                    Product Name (from CID Register)
+       oemid                   OEM/Application ID (from CID Register)
+       prv                     Product Revision (from CID Register) (SD and MMCv4 only)
+       serial                  Product Serial Number (from CID Register)
+       erase_size              Erase group size
+       preferred_erase_size    Preferred erase size
+       raw_rpmb_size_mult      RPMB partition size
+       rel_sectors             Reliable write sector count
+
+Note on Erase Size and Preferred Erase Size:
+
+       "erase_size" is the  minimum size, in bytes, of an erase
+       operation.  For MMC, "erase_size" is the erase group size
+       reported by the card.  Note that "erase_size" does not apply
+       to trim or secure trim operations where the minimum size is
+       always one 512 byte sector.  For SD, "erase_size" is 512
+       if the card is block-addressed, 0 otherwise.
+
+       SD/MMC cards can erase an arbitrarily large area up to and
+       including the whole card.  When erasing a large area it may
+       be desirable to do it in smaller chunks for three reasons:
+               1. A single erase command will make all other I/O on
+               the card wait.  This is not a problem if the whole card
+               is being erased, but erasing one partition will make
+               I/O for another partition on the same card wait for the
+               duration of the erase - which could be a several
+               minutes.
+               2. To be able to inform the user of erase progress.
+               3. The erase timeout becomes too large to be very
+               useful.  Because the erase timeout contains a margin
+               which is multiplied by the size of the erase area,
+               the value can end up being several minutes for large
+               areas.
+
+       "erase_size" is not the most efficient unit to erase
+       (especially for SD where it is just one sector),
+       hence "preferred_erase_size" provides a good chunk
+       size for erasing large areas.
+
+       For MMC, "preferred_erase_size" is the high-capacity
+       erase size if a card specifies one, otherwise it is
+       based on the capacity of the card.
+
+       For SD, "preferred_erase_size" is the allocation unit
+       size specified by the card.
+
+       "preferred_erase_size" is in bytes.
+
+Note on raw_rpmb_size_mult:
+       "raw_rpmb_size_mult" is a mutliple of 128kB block.
+       RPMB size in byte is calculated by using the following equation:
+       RPMB partition size = 128kB x raw_rpmb_size_mult
+
+SD/MMC/SDIO Clock Gating Attribute
+==================================
+
+Read and write access is provided to following attribute.
+This attribute appears only if CONFIG_MMC_CLKGATE is enabled.
+
+       clkgate_delay   Tune the clock gating delay with desired value in milliseconds.
+
+echo <desired delay> > /sys/class/mmc_host/mmcX/clkgate_delay