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

Annotation of sys/dev/sdmmc/sdmmcchip.h, Revision 1.1.1.1

1.1       nbrk        1: /*     $OpenBSD: sdmmcchip.h,v 1.3 2007/05/31 10:09:01 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_CHIP_H_
                     20: #define _SDMMC_CHIP_H_
                     21:
                     22: struct sdmmc_command;
                     23:
                     24: typedef struct sdmmc_chip_functions *sdmmc_chipset_tag_t;
                     25: typedef void *sdmmc_chipset_handle_t;
                     26:
                     27: struct sdmmc_chip_functions {
                     28:        /* host controller reset */
                     29:        int     (*host_reset)(sdmmc_chipset_handle_t);
                     30:        /* host capabilities */
                     31:        u_int32_t (*host_ocr)(sdmmc_chipset_handle_t);
                     32:        int     (*host_maxblklen)(sdmmc_chipset_handle_t);
                     33:        /* card detection */
                     34:        int     (*card_detect)(sdmmc_chipset_handle_t);
                     35:        /* bus power and clock frequency */
                     36:        int     (*bus_power)(sdmmc_chipset_handle_t, u_int32_t);
                     37:        int     (*bus_clock)(sdmmc_chipset_handle_t, int);
                     38:        /* command execution */
                     39:        void    (*exec_command)(sdmmc_chipset_handle_t,
                     40:                    struct sdmmc_command *);
                     41:        /* card interrupt */
                     42:        void    (*card_intr_mask)(sdmmc_chipset_handle_t, int);
                     43:        void    (*card_intr_ack)(sdmmc_chipset_handle_t);
                     44: };
                     45:
                     46: /* host controller reset */
                     47: #define sdmmc_chip_host_reset(tag, handle)                             \
                     48:        ((tag)->host_reset((handle)))
                     49: /* host capabilities */
                     50: #define sdmmc_chip_host_ocr(tag, handle)                               \
                     51:        ((tag)->host_ocr((handle)))
                     52: #define sdmmc_chip_host_maxblklen(tag, handle)                         \
                     53:        ((tag)->host_maxblklen((handle)))
                     54: /* card detection */
                     55: #define sdmmc_chip_card_detect(tag, handle)                            \
                     56:        ((tag)->card_detect((handle)))
                     57: /* bus power and clock frequency */
                     58: #define sdmmc_chip_bus_power(tag, handle, ocr)                         \
                     59:        ((tag)->bus_power((handle), (ocr)))
                     60: #define sdmmc_chip_bus_clock(tag, handle, freq)                                \
                     61:        ((tag)->bus_clock((handle), (freq)))
                     62: /* command execution */
                     63: #define sdmmc_chip_exec_command(tag, handle, cmdp)                     \
                     64:        ((tag)->exec_command((handle), (cmdp)))
                     65: /* card interrupt */
                     66: #define sdmmc_chip_card_intr_mask(tag, handle, enable)                 \
                     67:        ((tag)->card_intr_mask((handle), (enable)))
                     68: #define sdmmc_chip_card_intr_ack(tag, handle)                          \
                     69:        ((tag)->card_intr_ack((handle)))
                     70:
                     71: /* clock frequencies for sdmmc_chip_bus_clock() */
                     72: #define SDMMC_SDCLK_OFF                0
                     73: #define SDMMC_SDCLK_400KHZ     400
                     74: #define SDMMC_SDCLK_25MHZ      25000
                     75:
                     76: struct sdmmcbus_attach_args {
                     77:        const char *saa_busname;
                     78:        sdmmc_chipset_tag_t sct;
                     79:        sdmmc_chipset_handle_t sch;
                     80: };
                     81:
                     82: void   sdmmc_needs_discover(struct device *);
                     83: void   sdmmc_card_intr(struct device *);
                     84: void   sdmmc_delay(u_int);
                     85:
                     86: #endif

CVSweb