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