1/*
2 * Copyright (c) 1998-2014 Apple Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
11 * file.
12 *
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
20 *
21 * @APPLE_LICENSE_HEADER_END@
22 */
23
24#ifndef _IOKIT_IO_STORAGE_CARD_CHARACTERISTICS_H_
25#define _IOKIT_IO_STORAGE_CARD_CHARACTERISTICS_H_
26
27
28/*
29 *	Card Characteristics - Characteristics defined for cards.
30 */
31
32/*!
33@defined kIOPropertyCardCharacteristicsKey
34@discussion This key is used to define Card Characteristics for a particular
35piece of MMC/SD media and it has an associated dictionary which lists the
36card characteristics.
37
38Requirement: Mandatory
39
40Example:
41<pre>
42@textblock
43<dict>
44	<key>Card Characteristics</key>
45	<dict>
46		<key>Product Name</key>
47		<string>SD32G</string>
48		<key>Product Revision Level</key>
49		<string>1.0</string>
50	</dict>
51</dict>
52@/textblock
53</pre>
54*/
55#define kIOPropertyCardCharacteristicsKey				"Card Characteristics"
56
57
58/*!
59@defined kIOPropertySlotKey
60@discussion This key is used to define the slot number for the device
61
62Requirement: Mandatory
63
64Example:
65<pre>
66@textblock
67<dict>
68	<key>Slot</key>
69	<integer>1<integer>
70 </dict>
71@/textblock
72</pre>
73*/
74#define kIOPropertySlotKey								"Slot"
75
76
77/*!
78@defined kIOProperty64BitKey
79@discussion This key defines wether the device supports 64-bit.
80
81Requirement: Mandatory
82
83Example:
84<pre>
85@textblock
86<dict>
87	<key>64-bit</key>
88	<true/>
89</dict>
90@/textblock
91</pre>
92*/
93#define kIOProperty64BitKey								"64-bit"
94
95
96/*!
97@defined kIOPropertyClockDivisorKey
98 @discussion This key defines the current clock divisor for the device.
99
100Requirement: Mandatory.
101
102Example:
103<pre>
104@textblock
105<dict>
106	<key>Clock Divisor</key>
107	<integer>128</integer>
108</dict>
109@/textblock
110</pre>
111*/
112#define kIOPropertyClockDivisorKey						"Clock Divisor"
113
114
115/*!
116@defined kIOPropertyBaseFrequencyKey
117@discussion This key defines the current base frequency for the device.
118
119Requirement: Mandatory.
120
121Example:
122<pre>
123@textblock
124<dict>
125	<key>Base Frequency</key>
126	<integer>50</integer>
127</dict>
128@/textblock
129</pre>
130*/
131#define kIOPropertyBaseFrequencyKey						"Base Frequency"
132
133
134/*!
135@defined kIOPropertyBusVoltageKey
136@discussion This key defines the current bus voltage for the device in mV
137
138Requirement: Mandatory.
139
140Example:
141<pre>
142@textblock
143<dict>
144	<key>Bus Voltage</key>
145	<integer>3300</integer>
146</dict>
147</dict>
148@/textblock
149</pre>
150*/
151#define kIOPropertyBusVoltageKey						"Bus Voltage"
152
153
154/*!
155@defined kIOPropertyBusWidthKey
156@discussion This key defines the current bus width for the device.
157
158Requirement: Mandatory.
159
160Example:
161<pre>
162@textblock
163<dict>
164	<key>Bus Width</key>
165	<integer>4</integer>
166</dict>
167@/textblock
168</pre>
169*/
170#define kIOPropertyBusWidthKey							"Bus Width"
171
172
173/*!
174@defined kIOPropertyCardPresentKey
175@discussion This key defines wether a MMC or SD card is physically present.
176
177Requirement: Mandatory
178
179Example:
180<pre>
181@textblock
182<dict>
183	<key>Card Present</key>
184	<true/>
185</dict>
186@/textblock
187</pre>
188*/
189#define kIOPropertyCardPresentKey						"Card Present"
190
191
192/*!
193 @defined kIOPropertyProductSerialNumberKey
194 @discussion This key is used to indicate the card serial number ID.
195
196 Requirement: Mandatory
197
198 Example:
199 <pre>
200 @textblock
201 <dict>
202	 <key>Card Characteristics</key>
203	 <dict>
204		 <key>Product Name</key>
205		 <string>SD32G</string>
206		 <key>Product Revision Level</key>
207		 <string>1.0</string>
208		 <key>Card Type</key>
209		 <string>SDHC</string>
210		 <key>Serial Number</key>
211		 <data>0045ff</data>
212	 </dict>
213 </dict>
214 @/textblock
215 </pre>
216 */
217#define kIOPropertyProductSerialNumberKey				"Serial Number"
218
219
220/*!
221 @defined kIOPropertyManufacturerIDKey
222 @discussion This key is used to indicate the card manufacturer ID.
223
224 Requirement: Optional
225
226 Example:
227 <pre>
228 @textblock
229 <dict>
230	 <key>Card Characteristics</key>
231	 <dict>
232		 <key>Product Name</key>
233		 <string>SD32G</string>
234		 <key>Product Revision Level</key>
235		 <string>1.0</string>
236		<key>Card Type</key>
237		<string>SDHC</string>
238		<key>Manufacturer ID</key>
239		<data>03</data>
240	 </dict>
241 </dict>
242 @/textblock
243 </pre>
244 */
245#define kIOPropertyManufacturerIDKey					"Manufacturer ID"
246
247
248/*!
249@defined kIOPropertyApplicationIDKey
250 @discussion This key is used to indicate the card application ID.
251
252Requirement: Optional
253
254Example:
255<pre>
256@textblock
257<dict>
258	<key>Card Characteristics</key>
259	<dict>
260		<key>Product Name</key>
261		<string>SD32G</string>
262		<key>Product Revision Level</key>
263		<string>1.0</string>
264		<key>Card Type</key>
265		<string>SDHC</string>
266		<key>Application ID</key>
267		<data>ffff</data>
268	</dict>
269</dict>
270@/textblock
271</pre>
272*/
273#define kIOPropertyApplicationIDKey						"Application ID"
274
275
276/*!
277@defined kIOPropertyManufacturingDateKey
278 @discussion This key is used to indicate the card manufacturing date.
279
280Requirement: Mandatory.
281
282Example:
283<pre>
284@textblock
285<dict>
286	<key>Card Characteristics</key>
287	<dict>
288		<key>Product Name</key>
289		<string>SD32G</string>
290		<key>Product Revision Level</key>
291		<string>1.0</string>
292		<key>Card Type</key>
293		<string>SDHC</string>
294		<key>Manufacturing Date</key>
295		<string>2009-12</string>
296	</dict>
297</dict>
298@/textblock
299</pre>
300*/
301#define kIOPropertyManufacturingDateKey					"Manufacturing Date"
302
303
304/*!
305@defined kIOPropertySpeedClassKey
306 @discussion This key is used to indicate SD card speed class.
307
308Requirement: Mandatory.
309
310Example:
311<pre>
312@textblock
313<dict>
314	<key>Card Characteristics</key>
315	<dict>
316		<key>Product Name</key>
317		<string>SD32G</string>
318		<key>Product Revision Level</key>
319		<string>1.0</string>
320		<key>Card Type</key>
321		<string>SDHC</string>
322		<key>Speed Class</key>
323		<data>02</data>
324	</dict>
325</dict>
326@/textblock
327</pre>
328*/
329#define kIOPropertySpeedClassKey						"Speed Class"
330
331
332/*!
333@defined kIOPropertySpecificationVersionKey
334@discussion This key is used to indicate the card specification version.
335
336Requirement: Mandatory.
337
338Example:
339<pre>
340@textblock
341<dict>
342	<key>Card Characteristics</key>
343	<dict>
344		<key>Product Name</key>
345		<string>SD32G</string>
346		<key>Product Revision Level</key>
347		<string>1.0</string>
348		<key>Card Type</key>
349		<string>SDHC</string>
350		<key>Specification Version</key>
351		<string>3.0</string>
352	</dict>
353</dict>
354@/textblock
355</pre>
356*/
357#define kIOPropertySpecificationVersionKey				"Specification Version"
358
359
360/*!
361@defined kIOPropertyCardTypeKey
362 @discussion This key is used to indicate the card type is MMC.
363
364Requirement: Optional.
365
366Example:
367<pre>
368@textblock
369<dict>
370	<key>Card Characteristics</key>
371	<dict>
372		<key>Product Name</key>
373		<string>SD32G</string>
374		<key>Product Revision Level</key>
375		<string>1.0</string>
376		<key>Card Type</key>
377		<string>MMC</string>
378	</dict>
379</dict>
380@/textblock
381</pre>
382*/
383#define kIOPropertyCardTypeKey							"Card Type"
384
385
386/*!
387@defined kIOPropertyCardTypeMMCKey
388 @discussion This key is used to indicate the card type is MMC.
389
390 Requirement: Optional.
391
392Example:
393<pre>
394@textblock
395<dict>
396	<key>Card Characteristics</key>
397	<dict>
398		 <key>Product Name</key>
399		 <string>SD32G</string>
400		 <key>Product Revision Level</key>
401		 <string>1.0</string>
402		 <key>Card Type</key>
403		 <string>MMC</string>
404	</dict>
405</dict>
406@/textblock
407</pre>
408*/
409#define kIOPropertyCardTypeMMCKey						"MMC"
410
411
412/*!
413@defined kIOPropertyCardTypeSDSCKey
414 @discussion This key is used to indicate the card type is SDSC.
415
416Requirement: Optional.
417
418Example:
419<pre>
420@textblock
421<dict>
422	<key>Card Characteristics</key>
423	<dict>
424		 <key>Product Name</key>
425		 <string>SD32G</string>
426		 <key>Product Revision Level</key>
427		 <string>1.0</string>
428		 <key>Card Type</key>
429		 <string>SDSC</string>
430	</dict>
431</dict>
432@/textblock
433</pre>
434*/
435#define kIOPropertyCardTypeSDSCKey						"SDSC"
436
437
438/*!
439@defined kIOPropertyCardTypeSDHCKey
440 @discussion This key is used to indicate the card type is SDHC.
441
442Requirement: Optional.
443
444Example:
445<pre>
446@textblock
447<dict>
448	<key>Card Characteristics</key>
449	<dict>
450		<key>Product Name</key>
451		<string>SD32G</string>
452		<key>Product Revision Level</key>
453		<string>1.0</string>
454		<key>Card Type</key>
455		<string>SDHC</string>
456	</dict>
457</dict>
458@/textblock
459</pre>
460*/
461#define kIOPropertyCardTypeSDHCKey						"SDHC"
462
463
464/*!
465@defined kIOPropertyCardTypeSDXCKey
466 @discussion This key is used to indicate the card type is SDXC.
467
468Requirement: Optional.
469
470Example:
471<pre>
472@textblock
473<dict>
474	<key>Card Characteristics</key>
475	<dict>
476		<key>Product Name</key>
477		<string>SD32G</string>
478		<key>Product Revision Level</key>
479		<string>1.0</string>
480		<key>Card Type</key>
481		<string>SDXC</string>
482	</dict>
483</dict>
484@/textblock
485</pre>
486*/
487#define kIOPropertyCardTypeSDXCKey						"SDXC"
488
489
490#endif	/* _IOKIT_IO_STORAGE_CARD_CHARACTERISTICS_H_ */
491