[BACK]Return to sdmmc_ioreg.h CVS log [TXT][DIR] Up to [local] / sys / dev / sdmmc

Annotation of sys/dev/sdmmc/sdmmc_ioreg.h, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: sdmmc_ioreg.h,v 1.4 2007/06/02 01:48:37 uwe Exp $     */
        !             2:
        !             3: /*
        !             4:  * Copyright (c) 2006 Uwe Stuehler <uwe@openbsd.org>
        !             5:  *
        !             6:  * Permission to use, copy, modify, and distribute this software for any
        !             7:  * purpose with or without fee is hereby granted, provided that the above
        !             8:  * copyright notice and this permission notice appear in all copies.
        !             9:  *
        !            10:  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
        !            11:  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
        !            12:  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
        !            13:  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
        !            14:  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
        !            15:  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
        !            16:  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
        !            17:  */
        !            18:
        !            19: #ifndef _SDMMC_IOREG_H
        !            20: #define _SDMMC_IOREG_H
        !            21:
        !            22: /* SDIO commands */                            /* response type */
        !            23: #define SD_IO_SEND_OP_COND             5       /* R4 */
        !            24: #define SD_IO_RW_DIRECT                        52      /* R5 */
        !            25: #define SD_IO_RW_EXTENDED              53      /* R5? */
        !            26:
        !            27: /* CMD52 arguments */
        !            28: #define SD_ARG_CMD52_READ              (0<<31)
        !            29: #define SD_ARG_CMD52_WRITE             (1<<31)
        !            30: #define SD_ARG_CMD52_FUNC_SHIFT                28
        !            31: #define SD_ARG_CMD52_FUNC_MASK         0x7
        !            32: #define SD_ARG_CMD52_EXCHANGE          (1<<27)
        !            33: #define SD_ARG_CMD52_REG_SHIFT         9
        !            34: #define SD_ARG_CMD52_REG_MASK          0x1ffff
        !            35: #define SD_ARG_CMD52_DATA_SHIFT                0
        !            36: #define SD_ARG_CMD52_DATA_MASK         0xff
        !            37: #define SD_R5_DATA(resp)               ((resp)[0] & 0xff)
        !            38:
        !            39: /* CMD53 arguments */
        !            40: #define SD_ARG_CMD53_READ              (0<<31)
        !            41: #define SD_ARG_CMD53_WRITE             (1<<31)
        !            42: #define SD_ARG_CMD53_FUNC_SHIFT                28
        !            43: #define SD_ARG_CMD53_FUNC_MASK         0x7
        !            44: #define SD_ARG_CMD53_BLOCK_MODE                (1<<27)
        !            45: #define SD_ARG_CMD53_INCREMENT         (1<<26)
        !            46: #define SD_ARG_CMD53_REG_SHIFT         9
        !            47: #define SD_ARG_CMD53_REG_MASK          0x1ffff
        !            48: #define SD_ARG_CMD53_LENGTH_SHIFT      0
        !            49: #define SD_ARG_CMD53_LENGTH_MASK       0x1ff
        !            50: #define SD_ARG_CMD53_LENGTH_MAX                64 /* XXX should be 511? */
        !            51:
        !            52: /* 48-bit response decoding (32 bits w/o CRC) */
        !            53: #define MMC_R4(resp)                   ((resp)[0])
        !            54: #define MMC_R5(resp)                   ((resp)[0])
        !            55:
        !            56: /* SD R4 response (IO OCR) */
        !            57: #define SD_IO_OCR_MEM_READY            (1<<31)
        !            58: #define SD_IO_OCR_NUM_FUNCTIONS(ocr)   (((ocr) >> 28) & 0x3)
        !            59: /* XXX big fat memory present "flag" because we don't know better */
        !            60: #define SD_IO_OCR_MEM_PRESENT          (0xf<<24)
        !            61: #define SD_IO_OCR_MASK                 0x00fffff0
        !            62:
        !            63: /* Card Common Control Registers (CCCR) */
        !            64: #define SD_IO_CCCR_START               0x00000
        !            65: #define SD_IO_CCCR_SIZE                        0x100
        !            66: #define SD_IO_CCCR_FN_ENABLE           0x02
        !            67: #define SD_IO_CCCR_FN_READY            0x03
        !            68: #define SD_IO_CCCR_INT_ENABLE          0x04
        !            69: #define SD_IO_CCCR_CTL                 0x06
        !            70: #define  CCCR_CTL_RES                  (1<<3)
        !            71: #define SD_IO_CCCR_BUS_WIDTH           0x07
        !            72: #define  CCCR_BUS_WIDTH_4              (1<<1)
        !            73: #define  CCCR_BUS_WIDTH_1              (1<<0)
        !            74: #define SD_IO_CCCR_CISPTR              0x09 /* XXX 9-10, 10-11, or 9-12 */
        !            75:
        !            76: /* Function Basic Registers (FBR) */
        !            77: #define SD_IO_FBR_START                        0x00100
        !            78: #define SD_IO_FBR_SIZE                 0x00700
        !            79:
        !            80: /* Card Information Structure (CIS) */
        !            81: #define SD_IO_CIS_START                        0x01000
        !            82: #define SD_IO_CIS_SIZE                 0x17000
        !            83:
        !            84: /* CIS tuple codes (based on PC Card 16) */
        !            85: #define SD_IO_CISTPL_VERS_1            0x15
        !            86: #define SD_IO_CISTPL_MANFID            0x20
        !            87: #define SD_IO_CISTPL_FUNCID            0x21
        !            88: #define SD_IO_CISTPL_FUNCE             0x22
        !            89:
        !            90: /* CISTPL_FUNCID codes */
        !            91: #define SDMMC_FUNCTION_WLAN            0x0c
        !            92:
        !            93: #endif

CVSweb