summaryrefslogtreecommitdiff
path: root/SamsungPlatformPkg/ExynosPkg/Exynos5250/Drivers/SDHCDxe_EVT1/SDHCDxe_CMD.h
blob: cbaa7b93542db36428b1f38ef975d11345961ea4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
/** @file

  Copyright (c) 2011, Samsung Electronics Co. All rights reserved.<BR>

  This program and the accompanying materials
  are licensed and made available under the terms and conditions of the BSD License
  which accompanies this distribution.  The full text of the license may be found at
  http://opensource.org/licenses/bsd-license.php

  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

**/

#ifndef _MSHCDXE_CMD_H_
#define _MSHCDXE_CMD_H_



#define HosttoCard				0x1
#define CardtoHost				0x0

#define ENDMA					BIT0
#define ENBLKCNT				BIT1
#define RD1WT0					BIT4
#define MUL1SIN0				BIT5
#define RSPTYP136				(0x1 << 16)
#define RSPTYP48				    (0x2 << 16)
#define RSPTYP48B				(0x3 << 16)
#define ENCMDCRC				BIT19
#define ENCMDIDX				BIT20
#define DATAPRNT				BIT21


#define CMDCOMP				BIT0
#define	TRNSCOMP				BIT1
#define	RDYFORWT				BIT4
#define RDYFORRD				BIT5
#define CARDINSERT				BIT6
#define CARDREMOVE				BIT7
#define ERRINT					BIT15
#define CMDTOUTERR				BIT16
#define CMDCRCERR				BIT17
#define CMDEBITERR				BIT18
#define CMDIDXERR				BIT19
#define DATATOUTERR				BIT20
#define DATACRCERR				BIT21
#define DATAEBITERR				BIT22

#define HCS               BIT30 //Host capacity support/1 = Supporting high capacity



/* Command Definitions */
#define INDX(CMD_INDX)			(CMD_INDX & 0x3F)

#define CMD0              INDX(0)
#define CMD0_INT_EN       (CMDCOMP | CMDEBITERR)

#define CMD1              (INDX(1) | RSPTYP48)
#define CMD1_INT_EN       (CMDCOMP | CMDEBITERR | CMDTOUTERR)

#define CMD2              (INDX(2) | ENCMDCRC | RSPTYP136)
#define CMD2_INT_EN       (CMDIDXERR | CMDCRCERR | CMDCOMP | CMDEBITERR | CMDTOUTERR)

#define CMD3              (INDX(3) | ENCMDIDX | ENCMDCRC | RSPTYP48)
#define CMD3_INT_EN       (CMDIDXERR | CMDCRCERR | CMDCOMP | CMDEBITERR | CMDTOUTERR)

#define CMD5              (INDX(5) | RSPTYP48)
#define CMD5_INT_EN       (CMDCOMP | CMDEBITERR | CMDTOUTERR)

#define CMD7              (INDX(7) | ENCMDIDX | ENCMDCRC | RSPTYP48)
#define CMD7_INT_EN       (CMDIDXERR | CMDCRCERR | CMDCOMP | CMDEBITERR | CMDTOUTERR)

//#define CMD8              (INDX(8) | ENCMDIDX | ENCMDCRC | RSPTYP48)
#define CMD8              (INDX(8) | ENCMDIDX | RSPTYP48)
#define CMD8_INT_EN       (CMDIDXERR | CMDCRCERR | CMDCOMP | CMDEBITERR | CMDTOUTERR)
//Reserved(0)[12:31], Supply voltage(1)[11:8], check pattern(0xCE)[7:0] = 0x1CE
//#define CMD8_ARG          (0x0UL << 12 | BIT8 | 0xCEUL << 0)
#define CMD8_ARG          (0x0UL << 12 | BIT8 | 0xAAUL << 0)

#define CMD9              (INDX(9) | ENCMDCRC | RSPTYP136)
#define CMD9_INT_EN       (CMDCRCERR | CMDCOMP | CMDEBITERR | CMDTOUTERR)

#define CMD13              (INDX(13) | RSPTYP48)
#define CMD13_INT_EN       (CMDCOMP | CMDEBITERR | CMDTOUTERR)


//#define CMD16             (INDX(16) | ENCMDIDX | ENCMDCRC | RSPTYP48)
#define CMD16             (INDX(16) | ENCMDIDX | RSPTYP48)
#define CMD16_INT_EN      (CMDIDXERR | CMDCRCERR | CMDCOMP | CMDEBITERR | CMDTOUTERR)

#define CMD17             (INDX(17) | DATAPRNT | ENCMDIDX | ENCMDCRC | RSPTYP48 | RD1WT0)
#define CMD17_INT_EN      (CMDIDXERR | CMDCRCERR | CMDCOMP | TRNSCOMP | RDYFORRD | CMDTOUTERR | DATATOUTERR | DATACRCERR | DATAEBITERR | CMDEBITERR)

//#define CMD18             (INDX(18) | DATAPRNT | ENCMDIDX | ENCMDCRC | RSPTYP48 | MUL1SIN0 | RD1WT0 | ENBLKCNT | ENDMA)
#define CMD18             (INDX(18) | DATAPRNT | ENCMDIDX | ENCMDCRC | RSPTYP48 )
#define CMD18_INT_EN      (CMDIDXERR | CMDCRCERR | CMDCOMP | TRNSCOMP | RDYFORRD | CMDTOUTERR | DATATOUTERR | DATACRCERR | DATAEBITERR | CMDEBITERR)

#define CMD23             (INDX(23) | ENCMDIDX | ENCMDCRC | RSPTYP48)
#define CMD23_INT_EN      (CMDIDXERR | CMDCRCERR | CMDCOMP | CMDEBITERR | CMDTOUTERR)

#define CMD24             (INDX(24) | DATAPRNT | ENCMDIDX | ENCMDCRC | RSPTYP48)
#define CMD24_INT_EN      (CMDIDXERR | CMDCRCERR | CMDCOMP | TRNSCOMP | RDYFORWT | CMDTOUTERR | DATATOUTERR | DATACRCERR | DATAEBITERR | CMDEBITERR)

//#define CMD25             (INDX(25) | DATAPRNT | ENCMDIDX | ENCMDCRC | RSPTYP48 | MUL1SIN0 | ENBLKCNT | ENDMA)
#define CMD25             (INDX(25) | DATAPRNT | ENCMDIDX | ENCMDCRC | RSPTYP48)
#define CMD25_INT_EN      (CMDIDXERR | CMDCRCERR | CMDCOMP | TRNSCOMP | RDYFORWT | CMDTOUTERR | DATATOUTERR | DATACRCERR | DATAEBITERR | CMDEBITERR)

//#define CMD55             (INDX(55) | ENCMDIDX | ENCMDCRC | RSPTYP48)
#define CMD55             (INDX(55) | ENCMDIDX | RSPTYP48)
#define CMD55_INT_EN      (CMDIDXERR | CMDCRCERR | CMDCOMP | CMDEBITERR | CMDTOUTERR)

#define ACMD41            (INDX(41) | RSPTYP48)
#define ACMD41_INT_EN     (CMDIDXERR | CMDCRCERR | CMDCOMP | CMDEBITERR | CMDTOUTERR)

#define ACMD6             (INDX(6) | RSPTYP48)
#define ACMD6_INT_EN      (CMDIDXERR | CMDCRCERR | CMDCOMP | CMDEBITERR | CMDTOUTERR)

#define CMD62             (INDX(62) | RSPTYP48)
#define CMD62_INT_EN      (CMDIDXERR | CMDCRCERR | CMDCOMP | CMDEBITERR | CMDTOUTERR)



/*
EFI_STATUS
EFI_SUCCESS         0

EFI_LOAD_ERROR      1
EFI_INVALID_PARAMETER   2
EFI_UNSUPPORTED             3
EFI_BAD_BUFFER_SIZE         4
EFI_BUFFER_TOO_SMALL        5
EFI_NOT_READY                   6
EFI_DEVICE_ERROR            7
EFI_WRITE_PROTECTED     8
EFI_OUT_OF_RESOURCES    9
EFI_VOLUME_CORRUPTED    10
EFI_VOLUME_FULL                 11
EFI_NO_MEDIA                        12
EFI_MEDIA_CHANGED           13
EFI_NOT_FOUND                   14
EFI_ACCESS_DENIED           15
EFI_NO_RESPONSE             16
EFI_NO_MAPPING                  17
EFI_TIMEOUT                     18
EFI_NOT_STARTED             19
EFI_ALREADY_STARTED     20
EFI_ABORTED                     21
EFI_ICMO_ERROR              22
EFI_TFTP_ERROR                  23
EFI_PROTOCOL_ERROR          24
EFI_INCOMPATIBLE_VERSION    25
EFI_SECURITY_VIOLATION          26
EFI_CRC_ERROR                   27
EFI_END_OF_MEDIA                28
EFI_END_OF_FILE                 31
EFI_INVALID_LANGUAGE        32
EFI_COMPROMISED_DATA        33


*/

#endif