first commit
This commit is contained in:
98
external/cache/sources/wl/include/bcmsdbrcm.h
vendored
Normal file
98
external/cache/sources/wl/include/bcmsdbrcm.h
vendored
Normal file
@@ -0,0 +1,98 @@
|
||||
/*
|
||||
* BRCM SDIO HOST CONTROLLER driver
|
||||
*
|
||||
* Copyright (C) 2012, Broadcom Corporation
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* This is UNPUBLISHED PROPRIETARY SOURCE CODE of Broadcom Corporation;
|
||||
* the contents of this file may not be disclosed to third parties, copied
|
||||
* or duplicated in any form, in whole or in part, without the prior
|
||||
* written permission of Broadcom Corporation.
|
||||
*
|
||||
* $Id: bcmsdbrcm.h 241182 2011-02-17 21:50:03Z gmo $
|
||||
*/
|
||||
|
||||
/* global msglevel for debug messages */
|
||||
#ifdef BCMDBG
|
||||
#define sd_err(x) do { if (sd_msglevel & SDH_ERROR_VAL) printf x; } while (0)
|
||||
#define sd_trace(x) do { if (sd_msglevel & SDH_TRACE_VAL) printf x; } while (0)
|
||||
#define sd_info(x) do { if (sd_msglevel & SDH_INFO_VAL) printf x; } while (0)
|
||||
#define sd_debug(x) do { if (sd_msglevel & SDH_DEBUG_VAL) printf x; } while (0)
|
||||
#define sd_data(x) do { if (sd_msglevel & SDH_DATA_VAL) printf x; } while (0)
|
||||
#define sd_ctrl(x) do { if (sd_msglevel & SDH_CTRL_VAL) printf x; } while (0)
|
||||
#else
|
||||
#define sd_err(x)
|
||||
#define sd_trace(x)
|
||||
#define sd_info(x)
|
||||
#define sd_debug(x)
|
||||
#define sd_data(x)
|
||||
#define sd_ctrl(x)
|
||||
#endif
|
||||
|
||||
#ifdef BCMPERFSTATS
|
||||
#define sd_log(x) do { if (sd_msglevel & SDH_LOG_VAL) bcmlog x; } while (0)
|
||||
#else
|
||||
#define sd_log(x)
|
||||
#endif
|
||||
|
||||
/* SDIOH public information, used by per-port code */
|
||||
struct sdioh_pubinfo {
|
||||
int local_intrcount; /* Controller interrupt count */
|
||||
bool dev_init_done; /* Client SDIO interface initted */
|
||||
bool host_init_done; /* Controller initted */
|
||||
bool intr_registered; /* Client handler registered */
|
||||
bool dev_intr_enabled; /* Device interrupt enabled/disabled */
|
||||
uint lockcount; /* Next count of sdbrcm_lock() calls */
|
||||
void *sdos_info; /* Pointer to per-OS private data */
|
||||
};
|
||||
|
||||
|
||||
#define BLOCK_SIZE_4318 64
|
||||
#define BLOCK_SIZE_4328 512
|
||||
|
||||
/* private bus modes */
|
||||
/* move to API or hardware header. */
|
||||
#define SDIOH_MODE_SPI 0
|
||||
#define SDIOH_MODE_SD1 1
|
||||
#define SDIOH_MODE_SD4 2
|
||||
|
||||
/* Expected dev status value for CMD7 */
|
||||
#define SDIOH_CMD7_EXP_STATUS 0x00001E00
|
||||
|
||||
#define RETRIES_SMALL 20
|
||||
#define RETRIES_LARGE 500000
|
||||
#define SD_TIMEOUT 250000 /* Timeout after several ms if CMD not complete. */
|
||||
|
||||
#define ARVM_MASK 0xFF10
|
||||
|
||||
#define USE_PIO 0x0 /* DMA or PIO */
|
||||
#define USE_DMA 0x1
|
||||
|
||||
#define NTXD 4
|
||||
#define NRXD 4
|
||||
#define RXBUFSZ 8192
|
||||
#define NRXBUFPOST 4
|
||||
#define HWRXOFF 8
|
||||
|
||||
#define USE_BLOCKMODE 0x2 /* Block mode can be single block or multi */
|
||||
#define USE_MULTIBLOCK 0x4
|
||||
|
||||
#define EXT_CLK 0xffffffff /* external clock improve comment. */
|
||||
|
||||
extern int isr_sdbrcm_check_dev_intr(struct sdioh_pubinfo *sd);
|
||||
extern uint sd_msglevel;
|
||||
|
||||
extern uint32 *sdbrcm_reg_map(osl_t *osh, int32 addr, int size);
|
||||
extern void sdbrcm_reg_unmap(osl_t *osh, int32 addr, int size);
|
||||
extern int sdbrcm_register_irq(sdioh_info_t *sd, uint irq);
|
||||
extern void sdbrcm_free_irq(uint irq, sdioh_info_t *sd);
|
||||
|
||||
extern void sdbrcm_lock(sdioh_info_t *sd);
|
||||
extern void sdbrcm_unlock(sdioh_info_t *sd);
|
||||
|
||||
extern void sdbrcm_devintr_on(sdioh_info_t *sd);
|
||||
extern void sdbrcm_devintr_off(sdioh_info_t *sd);
|
||||
|
||||
/* Allocate/init/free per-OS private data */
|
||||
extern int sdbrcm_osinit(sdioh_info_t *sd, osl_t *osh);
|
||||
extern void sdbrcm_osfree(sdioh_info_t *sd, osl_t *osh);
|
||||
Reference in New Issue
Block a user