diff --git a/doc/usage/mmc.rst b/doc/usage/mmc.rst
new file mode 100644
index 000000000000..30fee447d409
--- /dev/null
+++ b/doc/usage/mmc.rst
@@ -0,0 +1,149 @@
+.. SPDX-License-Identifier: GPL-2.0+:
+
+mmc command
+============
+
+Synopsis
+--------
+
+::
+
+    mmc info
+    mmc read addr blk# cnt
+    mmc write addr blk# cnt
+    mmc erase blk# cnt
+    mmc rescan
+    mmc part
+    mmc dev [dev] [part]
+    mmc list
+    mmc wp
+    mmc bootbus <dev> <boot_bus_width> <reset_boot_bus_width> <boot_mode>
+    mmc bootpart-resize <dev> <dev part size MB> <RPMB part size MB>
+    mmc partconf <dev> [boot_ack boot_partition partition_access]
+    mmc rst-function <dev> <value>
+
+Description
+-----------
+
+The mmc command is used to control MMC(eMMC/SD) device
+
+The *mmc info* displays information (Manufacturer ID, OEM, Name, Bus Speed, Mode, ...) of MMC device
+
+The *mmc read* command reads raw data to memory address from MMC device with block offset and count
+
+The *mmc write* write raw data to MMC device from memory address with block offset and count
+    addr - memory address
+
+    blk# - start block offset
+
+    cnt - block count
+
+The *mmc erase* erases MMC device from block offset until count
+    blk# - start block offset
+
+    cnt - block count
+
+The *mmc rescan* scans the available MMC device
+
+The *mmc part* displays the list available partition on current mmc device
+
+The *mmc dev* show or set current mmc device
+    [dev]
+        device number to change
+    [part]
+        partition number to change
+
+The *mmc list* displays the list avaiable devices
+
+The *mmc wp* enables "power on write protect" function about boot partitions
+
+The *mmc bootbus* sets the BOOT_BUS_WIDTH feild
+    BOOTU_BUS_WIDTH[177] is one of EXT_CSD register. (*Refer to eMMC specification*)
+
+The *mmc-bootpart-resize* changes sizes of boot and RPMB partition
+    dev - device number
+
+    boot part size MB - Size to change boot partition
+
+    RPMB part size MB - Size to chagne RPMB partition
+
+The *mmc rst-function* change the RST_n_FUNCTION filed
+    **WARNING**: This is a write-once filed. (*Refer to eMMC specification*)
+
+Example
+-------
+
+The *mmc info* command displays device's capabilities:
+::
+
+    => mmc info
+    Device: EXYNOS DWMMC
+    Manufacturer ID: 45
+    OEM: 100
+    Name: SDW16
+    Bus Speed: 52000000
+    Mode: MMC DDR52 (52MHz)
+    Rd Block Len: 512
+    MMC version 5.0
+    High Capacity: Yes
+    Capacity: 14.7 GiB
+    Bus Width: 8-bit DDR
+    Erase Group Size: 512 KiB
+    HC WP Group Size: 8 MiB
+    User Capacity: 14.7 GiB WRREL
+    Boot Capacity: 4 MiB ENH
+    RPMB Capacity: 4 MiB ENH
+    Boot area 0 is not write protected
+    Boot area 1 is not write protected
+
+The raw data can be read/written via *mmc read/write* command:
+::
+
+    => mmc read 0x40000000 0x5000 0x100
+    MMC read: dev # 0, block # 20480, count 256 ... 256 blocks read: OK
+
+    => mmc write 0x40000000 0x5000 0x10
+    MMC write: dev # 0, block # 20480, count 256 ... 256 blocks written: OK
+
+The partition list can be shown via *mmc part* command:
+::
+
+    => mmc part
+    Partition Map for MMC device 0  --   Partition Type: DOS
+
+    Part    Start Sector    Num Sectors     UUID            Type
+      1     8192            131072          dff8751a-01     0e Boot
+      2     139264          6291456         dff8751a-02     83
+      3     6430720         1048576         dff8751a-03     83
+      4     7479296         23298048        dff8751a-04     05 Extd
+      5     7481344         307200          dff8751a-05     83
+      6     7790592         65536           dff8751a-06     83
+      7     7858176         16384           dff8751a-07     83
+      8     7876608         22900736        dff8751a-08     83
+
+The current device can be shown or set via *mmc dev* command:
+::
+
+    => mmc dev
+    switch to partitions #0, OK
+    mmc0(part0) is current device
+    => mmc dev 2 0
+    switch to partitions #0, OK
+    mmc2 is current device
+
+The list of available devices can be shown via *mmc list* command:
+::
+
+    => mmc list
+    mmc list
+    EXYNOS DWMMC: 0 (eMMC)
+    EXYNOS DWMMC: 2 (SD)
+
+Configuration
+-------------
+
+The mmc command is only avaialble if CONFIG_CMD_MMC=y.
+Some commands need to enable more configuration.
+
+* write / erase - CONFIG_MMC_WRITE
+* bootbus - CONFIG_SUPPORT_EMMC_BOOT=y
