mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 11:50:43 +09:00
SDMMC IO voltage:
Modify a numerical definition of small flaws.Not suitable for the use of the original property is double. Please modify your own board-xxx-sdmmc-config.c youself, Reference to this example.
This commit is contained in:
@@ -38,18 +38,18 @@
|
||||
*/
|
||||
#define RK29SDK_SD_CARD_PWR_EN RK30_PIN3_PA1
|
||||
#define RK29SDK_SD_CARD_PWR_EN_LEVEL GPIO_LOW
|
||||
double rk31sdk_get_sdmmc0_pin_io_voltage(void)
|
||||
int rk31sdk_get_sdmmc0_pin_io_voltage(void)
|
||||
{
|
||||
double voltage;
|
||||
int voltage;
|
||||
#define RK31SDK_SET_SDMMC0_PIN_VOLTAGE
|
||||
|
||||
/******************************************************************************
|
||||
/**************************************************************************************
|
||||
** Please tell me how much voltage of your SDMMC0-pin in your project.
|
||||
**
|
||||
** <20><><EFBFBD><EFBFBD>: <20>е<EFBFBD><D0B5><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SDMMC0<43><30><EFBFBD>ڵ<EFBFBD>RK<52><4B><EFBFBD>ص<EFBFBD>IO<49>飬<EFBFBD><E9A3AC><EFBFBD><EFBFBD>1.8V, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3.3V,
|
||||
** <20><><EFBFBD>м<EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽת<C6BD><D7AA>.<2E><>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>voltageֵΪ 1.8
|
||||
******************************************************************************/
|
||||
voltage = 3.3;
|
||||
** <20><><EFBFBD>м<EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽת<C6BD><D7AA>.<2E><>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>voltageֵΪ 1.8V(<28><>1800mv)
|
||||
***************************************************************************************/
|
||||
voltage = 3300; //default the voltage 3300mv.
|
||||
|
||||
return voltage;
|
||||
}
|
||||
@@ -132,23 +132,25 @@ double rk31sdk_get_sdmmc0_pin_io_voltage(void)
|
||||
#endif // #if COMBO_MODULE_MT6620_CDT--#endif
|
||||
#endif
|
||||
|
||||
double rk31sdk_get_sdio_wifi_voltage(void)
|
||||
int rk31sdk_get_sdio_wifi_voltage(void)
|
||||
{
|
||||
double voltage;
|
||||
int voltage;
|
||||
|
||||
/******************************************************************************
|
||||
** Please tell me how much wifi-module uses voltage in your project.
|
||||
******************************************************************************/
|
||||
#if defined(CONFIG_BCM4329) || defined(CONFIG_BCM4319) || defined(CONFIG_RK903) || defined(CONFIG_RK901)
|
||||
voltage = 1.8 ; //power 1.8V
|
||||
voltage = 1800 ; //power 1800mV
|
||||
|
||||
#elif defined(CONFIG_MT5931_MT6622)||defined(CONFIG_MT5931)||defined(CONFIG_MT6620)
|
||||
voltage = 2.8 ; //power 2.8V
|
||||
voltage = 1800 ; //power 1800V
|
||||
#elif defined(CONFIG_MT6620)
|
||||
voltage = 2800 ; //power 2800V
|
||||
#elif defined(CONFIG_RDA5990)||defined(CONFIG_RTL8723AS)
|
||||
voltage = 3.3 ; //power 3.3V
|
||||
voltage = 3300 ; //power 3300V
|
||||
#else
|
||||
//default, sdio use 3.0V
|
||||
voltage = 3.0 ; //power 3.0V
|
||||
voltage = 3000 ; //power 3000V
|
||||
#endif
|
||||
|
||||
return voltage;
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
**************************************************************************************************/
|
||||
|
||||
//use the new iomux-API
|
||||
#if defined(CONFIG_ARCH_RK3066B)||defined(CONFIG_ARCH_RK3168)||defined(CONFIG_ARCH_RK3188)
|
||||
#if 1//defined(CONFIG_ARCH_RK3066B)||defined(CONFIG_ARCH_RK3168)||defined(CONFIG_ARCH_RK3188)
|
||||
#define SDMMC_USE_NEW_IOMUX_API 1
|
||||
#else
|
||||
#define SDMMC_USE_NEW_IOMUX_API 0
|
||||
@@ -63,14 +63,14 @@
|
||||
|
||||
int rk31sdk_wifi_voltage_select(void)
|
||||
{
|
||||
double voltage;
|
||||
int voltage;
|
||||
int voltage_flag = 0;
|
||||
|
||||
voltage = rk31sdk_get_sdio_wifi_voltage();
|
||||
|
||||
if(voltage >= 2.7)
|
||||
if(voltage >= 2700)
|
||||
voltage_flag = 0;
|
||||
else if(voltage <= 2.0)
|
||||
else if(voltage <= 2000)
|
||||
voltage_flag = 1;
|
||||
else
|
||||
voltage_flag = 1;
|
||||
@@ -777,6 +777,10 @@ static void rk29_sdmmc_set_iomux_mmc0(unsigned int bus_width)
|
||||
break;
|
||||
case 0xFFFF: //gpio_reset
|
||||
{
|
||||
#if (!!SDMMC_USE_NEW_IOMUX_API) && !defined(CONFIG_SDMMC0_RK29_SDCARD_DET_FROM_GPIO)
|
||||
iomux_set(MMC0_DETN);
|
||||
#endif
|
||||
|
||||
#if !(!!SDMMC_USE_NEW_IOMUX_API)
|
||||
rk30_mux_api_set(rksdmmc0_gpio_init.power_en_gpio.iomux.name, rksdmmc0_gpio_init.power_en_gpio.iomux.fgpio);
|
||||
#endif
|
||||
@@ -807,7 +811,7 @@ static void rk29_sdmmc_set_iomux_mmc0(unsigned int bus_width)
|
||||
|
||||
//IO voltage(vccio);
|
||||
#ifdef RK31SDK_SET_SDMMC0_PIN_VOLTAGE
|
||||
if(rk31sdk_get_sdmmc0_pin_io_voltage() > 3.0)
|
||||
if(rk31sdk_get_sdmmc0_pin_io_voltage() > 2700)
|
||||
SDMMC_write_grf_reg(GRF_IO_CON4, (SDMMC0_IO_VOLTAGE_MASK |SDMMC0_IO_VOLTAGE_33)); //set SDMMC0 pin to 3.3v
|
||||
else
|
||||
SDMMC_write_grf_reg(GRF_IO_CON4, (SDMMC0_IO_VOLTAGE_MASK |SDMMC0_IO_VOLTAGE_18));//set SDMMC0 pin to 1.8v
|
||||
|
||||
Reference in New Issue
Block a user