linux/include/linux/mmc/sd.h
<<
>>
Prefs
   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 */
  97