sd_io.c

来自「AMLOGIC DPF source code」· C语言 代码 · 共 104 行

C
104
字号
#include <Drivers/cardreader/card_io.h>
#include "bsp.h"

//Don't change the name of any following variabls or delete any variabls
unsigned sd_backup_input_val = -1;
unsigned sd_backup_output_val = 0;
unsigned SD_BACKUP_INPUT_REG = (unsigned)&sd_backup_input_val;
unsigned SD_BACKUP_OUTPUT_REG = (unsigned)&sd_backup_output_val;

unsigned SD_CMD_OUTPUT_EN_REG;
unsigned SD_CMD_OUTPUT_EN_MASK;
unsigned SD_CMD_INPUT_REG;
unsigned SD_CMD_INPUT_MASK;
unsigned SD_CMD_OUTPUT_REG;
unsigned SD_CMD_OUTPUT_MASK;

unsigned SD_CLK_OUTPUT_EN_REG;
unsigned SD_CLK_OUTPUT_EN_MASK;
unsigned SD_CLK_OUTPUT_REG;
unsigned SD_CLK_OUTPUT_MASK;

unsigned SD_DAT_OUTPUT_EN_REG;
unsigned SD_DAT0_OUTPUT_EN_MASK;
unsigned SD_DAT0_3_OUTPUT_EN_MASK;
unsigned SD_DAT_INPUT_REG;
unsigned SD_DAT_OUTPUT_REG;
unsigned SD_DAT0_INPUT_MASK;
unsigned SD_DAT0_OUTPUT_MASK;
unsigned SD_DAT0_3_INPUT_MASK;
unsigned SD_DAT0_3_OUTPUT_MASK;
unsigned SD_DAT_INPUT_OFFSET;
unsigned SD_DAT_OUTPUT_OFFSET;

unsigned SD_INS_OUTPUT_EN_REG;
unsigned SD_INS_OUTPUT_EN_MASK;
unsigned SD_INS_INPUT_REG;
unsigned SD_INS_INPUT_MASK;

unsigned SD_WP_OUTPUT_EN_REG;
unsigned SD_WP_OUTPUT_EN_MASK;
unsigned SD_WP_INPUT_REG;
unsigned SD_WP_INPUT_MASK;

unsigned SD_PWR_OUTPUT_EN_REG;
unsigned SD_PWR_OUTPUT_EN_MASK;
unsigned SD_PWR_OUTPUT_REG;
unsigned SD_PWR_OUTPUT_MASK;
unsigned SD_PWR_EN_LEVEL;
/////////////////////////////////////////////////////////////////////////
void sd_io_init()
{
	SD_CMD_OUTPUT_EN_REG = ATAPI_GPIO_ENABLE;
	SD_CMD_OUTPUT_EN_MASK = PREG_IO_10_MASK;
	SD_CMD_INPUT_REG = ATAPI_GPIO_INPUT;
	SD_CMD_INPUT_MASK = PREG_IO_10_MASK;
	SD_CMD_OUTPUT_REG = ATAPI_GPIO_OUTPUT;
	SD_CMD_OUTPUT_MASK = PREG_IO_10_MASK;

	SD_CLK_OUTPUT_EN_REG = ATAPI_GPIO_ENABLE;
	SD_CLK_OUTPUT_EN_MASK = PREG_IO_11_MASK;
	SD_CLK_OUTPUT_REG = ATAPI_GPIO_OUTPUT;
	SD_CLK_OUTPUT_MASK = PREG_IO_11_MASK;

	SD_DAT_OUTPUT_EN_REG = ATAPI_GPIO_ENABLE;
	SD_DAT0_OUTPUT_EN_MASK = PREG_IO_12_MASK;
	SD_DAT0_3_OUTPUT_EN_MASK = PREG_IO_12_15_MASK;
	SD_DAT_INPUT_REG = ATAPI_GPIO_INPUT;
	SD_DAT_OUTPUT_REG = ATAPI_GPIO_OUTPUT;
	SD_DAT0_INPUT_MASK = PREG_IO_12_MASK;
	SD_DAT0_OUTPUT_MASK = PREG_IO_12_MASK;
	SD_DAT0_3_INPUT_MASK = PREG_IO_12_15_MASK;
	SD_DAT0_3_OUTPUT_MASK = PREG_IO_12_15_MASK;
	SD_DAT_INPUT_OFFSET = 12;
	SD_DAT_OUTPUT_OFFSET = 12;

	SD_INS_OUTPUT_EN_REG = ATAPI_GPIO_ENABLE;
	SD_INS_OUTPUT_EN_MASK = PREG_IO_20_MASK;
	SD_INS_INPUT_REG = ATAPI_GPIO_INPUT;
	SD_INS_INPUT_MASK = PREG_IO_20_MASK;

	SD_WP_OUTPUT_EN_REG = ATAPI_GPIO_ENABLE;
	SD_WP_OUTPUT_EN_MASK = PREG_IO_6_MASK;
	SD_WP_INPUT_REG = ATAPI_GPIO_INPUT;
	SD_WP_INPUT_MASK = PREG_IO_6_MASK;

	SD_PWR_OUTPUT_EN_REG = ATAPI_GPIO_ENABLE;
	SD_PWR_OUTPUT_EN_MASK = PREG_IO_7_MASK;
	SD_PWR_OUTPUT_REG = ATAPI_GPIO_OUTPUT;
	SD_PWR_OUTPUT_MASK = PREG_IO_7_MASK;
	SD_PWR_EN_LEVEL = 0;
}

void sd_sdio_enable()
{
    set_atapi_enable(0, 0);
	set_sdio_enable(SDIO_PAD_AT_D15_10);
}

void sd_gpio_enable()
{
    set_atapi_enable(0, 0);
	set_sdio_disable(SDIO_PAD_AT_D15_10);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?