root/include/linux/mmc/sd.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0-or-later */
   2 /*
   3  *  include/linux/mmc/sd.h
   4  *
   5  *  Copyright (C) 2005-2007 Pierre Ossman, All Rights Reserved.
   6  */
   7 
   8 #ifndef LINUX_MMC_SD_H
   9 #define LINUX_MMC_SD_H
  10 
  11 /* SD commands                           type  argument     response */
  12   /* class 0 */
  13 /* This is basically the same command as for MMC with some quirks. */
  14 #define SD_SEND_RELATIVE_ADDR     3   /* bcr                     R6  */
  15 #define SD_SEND_IF_COND           8   /* bcr  [11:0] See below   R7  */
  16 #define SD_SWITCH_VOLTAGE         11  /* ac                      R1  */
  17 
  18   /* class 10 */
  19 #define SD_SWITCH                 6   /* adtc [31:0] See below   R1  */
  20 
  21   /* class 5 */
  22 #define SD_ERASE_WR_BLK_START    32   /* ac   [31:0] data addr   R1  */
  23 #define SD_ERASE_WR_BLK_END      33   /* ac   [31:0] data addr   R1  */
  24 
  25   /* Application commands */
  26 #define SD_APP_SET_BUS_WIDTH      6   /* ac   [1:0] bus width    R1  */
  27 #define SD_APP_SD_STATUS         13   /* adtc                    R1  */
  28 #define SD_APP_SEND_NUM_WR_BLKS  22   /* adtc                    R1  */
  29 #define SD_APP_OP_COND           41   /* bcr  [31:0] OCR         R3  */
  30 #define SD_APP_SEND_SCR          51   /* adtc                    R1  */
  31 
  32 /* OCR bit definitions */
  33 #define SD_OCR_S18R             (1 << 24)    /* 1.8V switching request */
  34 #define SD_ROCR_S18A            SD_OCR_S18R  /* 1.8V switching accepted by card */
  35 #define SD_OCR_XPC              (1 << 28)    /* SDXC power control */
  36 #define SD_OCR_CCS              (1 << 30)    /* Card Capacity Status */
  37 
  38 /*
  39  * SD_SWITCH argument format:
  40  *
  41  *      [31] Check (0) or switch (1)
  42  *      [30:24] Reserved (0)
  43  *      [23:20] Function group 6
  44  *      [19:16] Function group 5
  45  *      [15:12] Function group 4
  46  *      [11:8] Function group 3
  47  *      [7:4] Function group 2
  48  *      [3:0] Function group 1
  49  */
  50 
  51 /*
  52  * SD_SEND_IF_COND argument format:
  53  *
  54  *      [31:12] Reserved (0)
  55  *      [11:8] Host Voltage Supply Flags
  56  *      [7:0] Check Pattern (0xAA)
  57  */
  58 
  59 /*
  60  * SCR field definitions
  61  */
  62 
  63 #define SCR_SPEC_VER_0          0       /* Implements system specification 1.0 - 1.01 */
  64 #define SCR_SPEC_VER_1          1       /* Implements system specification 1.10 */
  65 #define SCR_SPEC_VER_2          2       /* Implements system specification 2.00-3.0X */
  66 
  67 /*
  68  * SD bus widths
  69  */
  70 #define SD_BUS_WIDTH_1          0
  71 #define SD_BUS_WIDTH_4          2
  72 
  73 /*
  74  * SD_SWITCH mode
  75  */
  76 #define SD_SWITCH_CHECK         0
  77 #define SD_SWITCH_SET           1
  78 
  79 /*
  80  * SD_SWITCH function groups
  81  */
  82 #define SD_SWITCH_GRP_ACCESS    0
  83 
  84 /*
  85  * SD_SWITCH access modes
  86  */
  87 #define SD_SWITCH_ACCESS_DEF    0
  88 #define SD_SWITCH_ACCESS_HS     1
  89 
  90 /*
  91  * Erase/discard
  92  */
  93 #define SD_ERASE_ARG                    0x00000000
  94 #define SD_DISCARD_ARG                  0x00000001
  95 
  96 #endif /* LINUX_MMC_SD_H */

/* [<][>][^][v][top][bottom][index][help] */