File Index
Files and directories
Sign in
FILE

sd.h

File preview with syntax highlighting.

linux-6.19.14/include/linux/mmc/sd.h C
  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 2 */
 19#define SD_ADDR_EXT		 22   /* ac   [5:0]              R1  */
 20
 21  /* class 10 */
 22#define SD_SWITCH                 6   /* adtc [31:0] See below   R1  */
 23
 24  /* class 5 */
 25#define SD_ERASE_WR_BLK_START    32   /* ac   [31:0] data addr   R1  */
 26#define SD_ERASE_WR_BLK_END      33   /* ac   [31:0] data addr   R1  */
 27
 28  /* Application commands */
 29#define SD_APP_SET_BUS_WIDTH      6   /* ac   [1:0] bus width    R1  */
 30#define SD_APP_SD_STATUS         13   /* adtc                    R1  */
 31#define SD_APP_SEND_NUM_WR_BLKS  22   /* adtc                    R1  */
 32#define SD_APP_OP_COND           41   /* bcr  [31:0] OCR         R3  */
 33#define SD_APP_SEND_SCR          51   /* adtc                    R1  */
 34
 35  /* class 11 */
 36#define SD_READ_EXTR_SINGLE      48   /* adtc [31:0]             R1  */
 37#define SD_WRITE_EXTR_SINGLE     49   /* adtc [31:0]             R1  */
 38
 39/* OCR bit definitions */
 40#define SD_OCR_S18R		(1 << 24)    /* 1.8V switching request */
 41#define SD_ROCR_S18A		SD_OCR_S18R  /* 1.8V switching accepted by card */
 42#define SD_OCR_2T		(1 << 27)    /* HO2T/CO2T - SDUC support */
 43#define SD_OCR_XPC		(1 << 28)    /* SDXC power control */
 44#define SD_OCR_CCS		(1 << 30)    /* Card Capacity Status */
 45
 46/*
 47 * SD_SWITCH argument format:
 48 *
 49 *      [31] Check (0) or switch (1)
 50 *      [30:24] Reserved (0)
 51 *      [23:20] Function group 6
 52 *      [19:16] Function group 5
 53 *      [15:12] Function group 4
 54 *      [11:8] Function group 3
 55 *      [7:4] Function group 2
 56 *      [3:0] Function group 1
 57 */
 58
 59/*
 60 * SD_SEND_IF_COND argument format:
 61 *
 62 *	[31:12] Reserved (0)
 63 *	[11:8] Host Voltage Supply Flags
 64 *	[7:0] Check Pattern (0xAA)
 65 */
 66
 67/*
 68 * SCR field definitions
 69 */
 70
 71#define SCR_SPEC_VER_0		0	/* Implements system specification 1.0 - 1.01 */
 72#define SCR_SPEC_VER_1		1	/* Implements system specification 1.10 */
 73#define SCR_SPEC_VER_2		2	/* Implements system specification 2.00-3.0X */
 74
 75/*
 76 * SD bus widths
 77 */
 78#define SD_BUS_WIDTH_1		0
 79#define SD_BUS_WIDTH_4		2
 80
 81/*
 82 * SD_SWITCH mode
 83 */
 84#define SD_SWITCH_CHECK		0
 85#define SD_SWITCH_SET		1
 86
 87/*
 88 * SD_SWITCH function groups
 89 */
 90#define SD_SWITCH_GRP_ACCESS	0
 91
 92/*
 93 * SD_SWITCH access modes
 94 */
 95#define SD_SWITCH_ACCESS_DEF	0
 96#define SD_SWITCH_ACCESS_HS	1
 97
 98/*
 99 * Erase/discard
100 */
101#define SD_ERASE_ARG			0x00000000
102#define SD_DISCARD_ARG			0x00000001
103
104#endif /* LINUX_MMC_SD_H */
~/ Read-only file preview.