00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef SDIOEMB_SDIO_H
00010 #define SDIOEMB_SDIO_H
00011
00012
00013 #define SDIO_POWER_UP_TIME_MS 250
00014
00015
00016 #define SDIO_CLOCK_FREQ_MIN 400000
00017
00018
00019
00020
00021
00022
00023
00024 #define SDIO_CLOCK_FREQ_NORMAL_SPD 25000000
00025
00026
00027 #define SDIO_CLOCK_FREQ_HIGH_SPD 50000000
00028
00029 #define SDIO_MAX_FUNCTIONS 8
00030
00031
00032
00033 #define SDIO_CMD52_ARG_WRITE 0x80000000
00034 #define SDIO_CMD52_ARG_FUNC(f) ((f) << 28)
00035 #define SDIO_CMD52_ARG_ADDR(a) ((a) << 9)
00036 #define SDIO_CMD52_ARG_DATA(d) ((d) << 0)
00037
00038 #define SDIO_CMD53_ARG_WRITE 0x80000000
00039 #define SDIO_CMD53_ARG_FUNC(f) ((f) << 28)
00040 #define SDIO_CMD53_ARG_BLK_MODE 0x08000000
00041 #define SDIO_CMD53_ARG_ADDR(a) ((a) << 9)
00042 #define SDIO_CMD53_ARG_CNT(c) ((c) << 0)
00043
00044
00045
00046 #define SDIO_R5_DATA(r) (((r) >> 0) & 0xff)
00047 #define SDIO_R5_OUT_OF_RANGE (1 << 8)
00048 #define SDIO_R5_FUNCTION_NUMBER (1 << 9)
00049 #define SDIO_R5_ERROR (1 << 11)
00050
00051
00052
00053 #define SDIO_OCR_CARD_READY 0x80000000
00054 #define SDIO_OCR_NUM_FUNCS_MASK 0x70000000
00055 #define SDIO_OCR_NUM_FUNCS_OFFSET 28
00056 #define SDIO_OCR_VOLTAGE_3V3 0x00300000
00057
00058 #define SDIO_CCCR_SDIO_REV 0x00
00059 #define SDIO_CCCR_SD_REV 0x01
00060 #define SDIO_CCCR_IO_EN 0x02
00061 #define SDIO_CCCR_IO_READY 0x03
00062 #define SDIO_CCCR_INT_EN 0x04
00063 # define SDIO_CCCR_INT_EN_MIE 0x01
00064 #define SDIO_CCCR_INT_PENDING 0x05
00065 #define SDIO_CCCR_IO_ABORT 0x06
00066 #define SDIO_CCCR_BUS_IFACE_CNTL 0x07
00067 # define SDIO_CCCR_BUS_IFACE_CNTL_CD_R_DISABLE 0x80
00068 # define SDIO_CCCR_BUS_IFACE_CNTL_ECSI 0x20
00069 # define SDIO_CCCR_BUS_IFACE_CNTL_4BIT_BUS 0x02
00070 #define SDIO_CCCR_CARD_CAPS 0x08
00071 # define SDIO_CCCR_CARD_CAPS_LSC 0x40
00072 # define SDIO_CCCR_CARD_CAPS_4BLS 0x80
00073 #define SDIO_CCCR_CIS_PTR 0x09
00074 #define SDIO_CCCR_BUS_SUSPEND 0x0c
00075 #define SDIO_CCCR_FUNC_SEL 0x0d
00076 #define SDIO_CCCR_EXEC_FLAGS 0x0e
00077 #define SDIO_CCCR_READY_FLAGS 0x0f
00078 #define SDIO_CCCR_F0_BLK_SIZE 0x10
00079 #define SDIO_CCCR_PWR_CNTL 0x12
00080 #define SDIO_CCCR_HIGH_SPEED 0x13
00081 # define SDIO_CCCR_HIGH_SPEED_SHS 0x01
00082 # define SDIO_CCCR_HIGH_SPEED_EHS 0x02
00083
00084 #define SDIO_FBR_REG(f, r) (0x100*(f) + (r))
00085
00086 #define SDIO_FBR_STD_IFACE(f) SDIO_FBR_REG(f, 0x00)
00087 #define SDIO_FBR_STD_IFACE_EXT(f) SDIO_FBR_REG(f, 0x01)
00088 #define SDIO_FBR_CIS_PTR(f) SDIO_FBR_REG(f, 0x09)
00089 #define SDIO_FBR_CSA_PTR(f) SDIO_FBR_REG(f, 0x0c)
00090 #define SDIO_FBR_CSA_DATA(f) SDIO_FBR_REG(f, 0x0f)
00091 #define SDIO_FBR_BLK_SIZE(f) SDIO_FBR_REG(f, 0x10)
00092
00093 #define SDIO_STD_IFACE_UART 0x01
00094 #define SDIO_STD_IFACE_BT_TYPE_A 0x02
00095 #define SDIO_STD_IFACE_BT_TYPE_B 0x03
00096 #define SDIO_STD_IFACE_GPS 0x04
00097 #define SDIO_STD_IFACE_CAMERA 0x05
00098 #define SDIO_STD_IFACE_PHS 0x06
00099 #define SDIO_STD_IFACE_WLAN 0x07
00100 #define SDIO_STD_IFACE_BT_TYPE_A_AMP 0x09
00101
00102
00103
00104
00105 #define SDIO_MANF_ID_CSR 0x032a
00106
00107 #define SDIO_CARD_ID_CSR_UNIFI_1 0x0001
00108 #define SDIO_CARD_ID_CSR_UNIFI_2 0x0002
00109 #define SDIO_CARD_ID_CSR_BC6 0x0004
00110 #define SDIO_CARD_ID_CSR_DASH_D00 0x0005
00111 #define SDIO_CARD_ID_CSR_BC7 0x0006
00112 #define SDIO_CARD_ID_CSR_CINDERELLA 0x0007
00113 #define SDIO_CARD_ID_CSR_UNIFI_3 0x0007
00114 #define SDIO_CARD_ID_CSR_UNIFI_4 0x0008
00115 #define SDIO_CARD_ID_CSR_DASH 0x0010
00116
00117 #endif