sd_switch.h 1.06 KB
#ifndef _SD_SWITCH_H
#define _SD_SWITCH_H


#if 1
//SD detect
#define SD1_DETECT_PIN     (GPIO0_00_INDEX)
#define SD1_DETECT         app_gpio_input_level_read(SD1_DETECT_PIN)//GPIO0_READ(SD1_DETECT_PIN)
#else
#define SD1_DETECT_PIN     GPIO2_11_INDEX
#define SD1_DETECT         app_gpio_input_level_read(SD1_DETECT_PIN)//GPIO0_READ(SD1_DETECT_PIN)
#endif


//#define SD2_DETECT_PIN    GPIO18_MASK
//#define SD2_DETECT        GPIO0_READ(SD2_DETECT_PIN)


enum {
	enSD_PLUG_UNKNOWN,
	enSD_PLUG_IN,
	enSD_PLUG_OUT
};

enum {
	enSD_WR_PROTECT_UNKNOWN,
	enSD_WR_PROTECT,
	enSD_WR_PROTECT_NONE
};

typedef enum _sdmmc_switch
{
	SDMMC_CHANNEL_1,
	SDMMC_CHANNEL_2,
	SDMMC_CHANNEL_3
} sdmmc_switch_t;


extern volatile U8 sdmmcReady;
extern U8 sd1_state;
extern U8 sd2_state;
extern U8 sd3_state;


void SD_Switch_Init(void);
void SD_Switch_Setting(U8 channel);
void SD_Detect_Init(void);

void SDMMC_Switch_GPIO_Test(void);
void SDMMC_Detect_GPIO_Test(void);

U8 SD_Card1_Detect(void);
U8 SD_Card2_Detect(void);
U8 SD_Card3_Detect(void);

U8 SD_WR_Protect_Get(void);

#endif //_SD_SWITCH_H