xref: /dragonfly/sys/bus/mmc/mmcvar.h (revision 85ccd313)
1d6644679SSascha Wildner /*-
2d6644679SSascha Wildner  * Copyright (c) 2006 Bernd Walter.  All rights reserved.
3d6644679SSascha Wildner  * Copyright (c) 2006 M. Warner Losh.  All rights reserved.
4d6644679SSascha Wildner  *
5d6644679SSascha Wildner  * Redistribution and use in source and binary forms, with or without
6d6644679SSascha Wildner  * modification, are permitted provided that the following conditions
7d6644679SSascha Wildner  * are met:
8d6644679SSascha Wildner  * 1. Redistributions of source code must retain the above copyright
9d6644679SSascha Wildner  *    notice, this list of conditions and the following disclaimer.
10d6644679SSascha Wildner  * 2. Redistributions in binary form must reproduce the above copyright
11d6644679SSascha Wildner  *    notice, this list of conditions and the following disclaimer in the
12d6644679SSascha Wildner  *    documentation and/or other materials provided with the distribution.
13d6644679SSascha Wildner  *
14d6644679SSascha Wildner  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
15d6644679SSascha Wildner  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
16d6644679SSascha Wildner  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
17d6644679SSascha Wildner  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
18d6644679SSascha Wildner  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19d6644679SSascha Wildner  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20d6644679SSascha Wildner  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
21d6644679SSascha Wildner  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22d6644679SSascha Wildner  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23d6644679SSascha Wildner  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24d6644679SSascha Wildner  *
25d6644679SSascha Wildner  * Portions of this software may have been developed with reference to
26d6644679SSascha Wildner  * the SD Simplified Specification.  The following disclaimer may apply:
27d6644679SSascha Wildner  *
28d6644679SSascha Wildner  * The following conditions apply to the release of the simplified
29d6644679SSascha Wildner  * specification ("Simplified Specification") by the SD Card Association and
30d6644679SSascha Wildner  * the SD Group. The Simplified Specification is a subset of the complete SD
31d6644679SSascha Wildner  * Specification which is owned by the SD Card Association and the SD
32d6644679SSascha Wildner  * Group. This Simplified Specification is provided on a non-confidential
33d6644679SSascha Wildner  * basis subject to the disclaimers below. Any implementation of the
34d6644679SSascha Wildner  * Simplified Specification may require a license from the SD Card
35d6644679SSascha Wildner  * Association, SD Group, SD-3C LLC or other third parties.
36d6644679SSascha Wildner  *
37d6644679SSascha Wildner  * Disclaimers:
38d6644679SSascha Wildner  *
39d6644679SSascha Wildner  * The information contained in the Simplified Specification is presented only
40d6644679SSascha Wildner  * as a standard specification for SD Cards and SD Host/Ancillary products and
41d6644679SSascha Wildner  * is provided "AS-IS" without any representations or warranties of any
42d6644679SSascha Wildner  * kind. No responsibility is assumed by the SD Group, SD-3C LLC or the SD
43d6644679SSascha Wildner  * Card Association for any damages, any infringements of patents or other
44d6644679SSascha Wildner  * right of the SD Group, SD-3C LLC, the SD Card Association or any third
45d6644679SSascha Wildner  * parties, which may result from its use. No license is granted by
46d6644679SSascha Wildner  * implication, estoppel or otherwise under any patent or other rights of the
47d6644679SSascha Wildner  * SD Group, SD-3C LLC, the SD Card Association or any third party. Nothing
48d6644679SSascha Wildner  * herein shall be construed as an obligation by the SD Group, the SD-3C LLC
49d6644679SSascha Wildner  * or the SD Card Association to disclose or distribute any technical
50d6644679SSascha Wildner  * information, know-how or other confidential information to any third party.
51d6644679SSascha Wildner  *
524d3ae590SImre Vadász  * $FreeBSD: src/sys/dev/mmc/mmcvar.h,v 1.9 2008/10/29 20:01:26 mav Exp $
53d6644679SSascha Wildner  */
54d6644679SSascha Wildner 
55d6644679SSascha Wildner #ifndef BUS_MMC_MMCVAR_H
56d6644679SSascha Wildner #define BUS_MMC_MMCVAR_H
57d6644679SSascha Wildner 
58d6644679SSascha Wildner enum mmc_device_ivars {
59*85ccd313SImre Vadász     MMC_IVAR_SPEC_VERS,
60d6644679SSascha Wildner     MMC_IVAR_DSR_IMP,
61d6644679SSascha Wildner     MMC_IVAR_MEDIA_SIZE,
62d6644679SSascha Wildner     MMC_IVAR_RCA,
63d6644679SSascha Wildner     MMC_IVAR_SECTOR_SIZE,
64d6644679SSascha Wildner     MMC_IVAR_TRAN_SPEED,
65d6644679SSascha Wildner     MMC_IVAR_READ_ONLY,
66d6644679SSascha Wildner     MMC_IVAR_HIGH_CAP,
67d6644679SSascha Wildner     MMC_IVAR_CARD_TYPE,
68d6644679SSascha Wildner     MMC_IVAR_BUS_WIDTH,
69d6644679SSascha Wildner     MMC_IVAR_ERASE_SECTOR,
70d6644679SSascha Wildner     MMC_IVAR_MAX_DATA,
71a3433507SImre Vadász     MMC_IVAR_CARD_ID_STRING,
72a3433507SImre Vadász     MMC_IVAR_CARD_SN_STRING,
73d6644679SSascha Wildner };
74d6644679SSascha Wildner 
75d6644679SSascha Wildner /*
76a3433507SImre Vadász  * Simplified accessors for mmc devices
77d6644679SSascha Wildner  */
78d6644679SSascha Wildner #define MMC_ACCESSOR(var, ivar, type)					\
79d6644679SSascha Wildner 	__BUS_ACCESSOR(mmc, var, MMC, ivar, type)
80d6644679SSascha Wildner 
81*85ccd313SImre Vadász MMC_ACCESSOR(spec_vers, SPEC_VERS, uint8_t)
82d6644679SSascha Wildner MMC_ACCESSOR(dsr_imp, DSR_IMP, int)
83a3433507SImre Vadász MMC_ACCESSOR(media_size, MEDIA_SIZE, long)
84d6644679SSascha Wildner MMC_ACCESSOR(rca, RCA, int)
85d6644679SSascha Wildner MMC_ACCESSOR(sector_size, SECTOR_SIZE, int)
86d6644679SSascha Wildner MMC_ACCESSOR(tran_speed, TRAN_SPEED, int)
87d6644679SSascha Wildner MMC_ACCESSOR(read_only, READ_ONLY, int)
88d6644679SSascha Wildner MMC_ACCESSOR(high_cap, HIGH_CAP, int)
89d6644679SSascha Wildner MMC_ACCESSOR(card_type, CARD_TYPE, int)
90d6644679SSascha Wildner MMC_ACCESSOR(bus_width, BUS_WIDTH, int)
91d6644679SSascha Wildner MMC_ACCESSOR(erase_sector, ERASE_SECTOR, int)
92d6644679SSascha Wildner MMC_ACCESSOR(max_data, MAX_DATA, int)
93a3433507SImre Vadász MMC_ACCESSOR(card_id_string, CARD_ID_STRING, const char *)
94a3433507SImre Vadász MMC_ACCESSOR(card_sn_string, CARD_SN_STRING, const char *)
95d6644679SSascha Wildner 
96d6644679SSascha Wildner #endif /* BUS_MMC_MMCVAR_H */
97