board-rk30-sdk-sdmmc: use new iomux api on rk3066b and support rk3188
author黄涛 <huangtao@rock-chips.com>
Wed, 16 Jan 2013 06:48:56 +0000 (14:48 +0800)
committer黄涛 <huangtao@rock-chips.com>
Wed, 16 Jan 2013 06:51:55 +0000 (14:51 +0800)
arch/arm/mach-rk30/board-rk30-sdk-sdmmc.c

index a278ae54c1ad099d0e193510b527bb4bac61aec0..0a3ff16772ebda4400e8e22114bd2e2e35141361 100755 (executable)
 #define RK29SDK_SD_CARD_DETECT_IOMUX_FGPIO      GPIO2L_GPIO2A2
 #define RK29SDK_SD_CARD_DETECT_IOMUX_FMUX       GPIO2L_SDMMC0_DETECT_N
 
-#elif defined(CONFIG_ARCH_RK3066B)
+#elif defined(CONFIG_ARCH_RK3066B) || defined(CONFIG_ARCH_RK3188)
 //refer to file /arch/arm/mach-rk30/include/mach/iomux-rk3066b.h
 //define reset-pin
 #define RK29SDK_SD_CARD_DETECT_N                RK30_PIN3_PB0  //According to your own project to set the value of card-detect-pin.
 #define RK29SDK_SD_CARD_INSERT_LEVEL            GPIO_LOW         // set the voltage of insert-card. Please pay attention to the default setting.
-#define RK29SDK_SD_CARD_DETECT_PIN_NAME         GPIO3B0_SDMMC0DETECTN_NAME
-#define RK29SDK_SD_CARD_DETECT_IOMUX_FGPIO      GPIO3B_GPIO3B0
-#define RK29SDK_SD_CARD_DETECT_IOMUX_FMUX       GPIO3B_SDMMC0DETECTN
+#define RK29SDK_SD_CARD_DETECT_PIN_NAME         "mmc0_detn"
+#define RK29SDK_SD_CARD_DETECT_IOMUX_FGPIO      GPIO3_B0
+#define RK29SDK_SD_CARD_DETECT_IOMUX_FMUX       MMC0_DETN
 
 #elif defined(CONFIG_ARCH_RK30)&& !defined(CONFIG_ARCH_RK3066B) //for RK30,RK3066 SDK
 //refer to file /arch/arm/mach-rk30/include/mach/Iomux.h
             #endif
         #endif// #endif --#if !defined(CONFIG_USE_SDMMC0_FOR_WIFI_DEVELOP_BOARD)
     #endif 
-#elif defined(CONFIG_ARCH_RK3066B)//refer to file /arch/arm/mach-rk30/include/mach/iomux-rk3066b.h
+#elif defined(CONFIG_ARCH_RK3066B) || defined(CONFIG_ARCH_RK3188)//refer to file /arch/arm/mach-rk30/include/mach/iomux-rk3066b.h
     #define WIFI_HOST_WAKE RK30_PIN3_PD2
          
     #if defined(CONFIG_RTL8192CU) || defined(CONFIG_RTL8188EU) 
         #define RK30SDK_WIFI_GPIO_POWER_N               RK30_PIN3_PD0            
         #define RK30SDK_WIFI_GPIO_POWER_ENABLE_VALUE    GPIO_LOW//GPIO_HIGH        
-        #define RK30SDK_WIFI_GPIO_POWER_PIN_NAME        GPIO3D0_SDMMC1PWREN_MIIMD_NAME
-        #define RK30SDK_WIFI_GPIO_POWER_IOMUX_FGPIO     GPIO3D_GPIO3D0
+        #define RK30SDK_WIFI_GPIO_POWER_PIN_NAME        "wifi_power"
+        #define RK30SDK_WIFI_GPIO_POWER_IOMUX_FGPIO     GPIO3_D0
         
     #elif defined(CONFIG_BCM4329) || defined(CONFIG_BCM4319) || defined(CONFIG_RK903) || defined(CONFIG_RK901)
         #define RK30SDK_WIFI_GPIO_POWER_N               RK30_PIN3_PD0                 
         #define RK30SDK_WIFI_GPIO_POWER_ENABLE_VALUE    GPIO_HIGH                   
-        #define RK30SDK_WIFI_GPIO_POWER_PIN_NAME        GPIO3D0_SDMMC1PWREN_MIIMD_NAME
-        #define RK30SDK_WIFI_GPIO_POWER_IOMUX_FGPIO     GPIO3D_GPIO3D0
+        #define RK30SDK_WIFI_GPIO_POWER_PIN_NAME        "wifi_power"
+        #define RK30SDK_WIFI_GPIO_POWER_IOMUX_FGPIO     GPIO3_D0
 
         #define RK30SDK_WIFI_GPIO_RESET_N               RK30_PIN2_PA7
         #define RK30SDK_WIFI_GPIO_RESET_ENABLE_VALUE    GPIO_HIGH 
-        #define RK30SDK_WIFI_GPIO_RESET_PIN_NAME        GPIO2A7_LCDC1DATA7_SMCDATA7_TRACEDATA7_NAME
-        #define RK30SDK_WIFI_GPIO_RESET_IOMUX_FGPIO     GPIO2A_GPIO2A7
+        #define RK30SDK_WIFI_GPIO_RESET_PIN_NAME        "wifi_reset"
+        #define RK30SDK_WIFI_GPIO_RESET_IOMUX_FGPIO     GPIO2_A7
     
     #elif defined(CONFIG_MT5931_MT6622) || defined(CONFIG_MT5931)
 
                #ifdef  CONFIG_MACH_RK3168_LR097 
                #define RK30SDK_WIFI_GPIO_POWER_N               RK30_PIN3_PD0 
                #define RK30SDK_WIFI_GPIO_POWER_ENABLE_VALUE    GPIO_HIGH
-               #define RK30SDK_WIFI_GPIO_POWER_PIN_NAME        GPIO3D0_SDMMC1PWREN_MIIMD_NAME
-               #define RK30SDK_WIFI_GPIO_POWER_IOMUX_FGPIO     GPIO3D_GPIO3D0
+               #define RK30SDK_WIFI_GPIO_POWER_PIN_NAME        "wifi_power"
+               #define RK30SDK_WIFI_GPIO_POWER_IOMUX_FGPIO     GPIO3_D0
  
                //#define RK30SDK_WIFI_GPIO_RESET_N                 RK30_PIN3_PD1
                //#define RK30SDK_WIFI_GPIO_RESET_ENABLE_VALUE    GPIO_HIGH
-               //#define RK30SDK_WIFI_GPIO_RESET_PIN_NAME        GPIO3D1_SDMMC1BACKENDPWR_MIIMDCLK_NAME
-               //#define RK30SDK_WIFI_GPIO_RESET_IOMUX_FGPIO     GPIO3D_GPIO3D1
+               //#define RK30SDK_WIFI_GPIO_RESET_PIN_NAME        "wifi_reset"
+               //#define RK30SDK_WIFI_GPIO_RESET_IOMUX_FGPIO     GPIO3_D1
 
                #else
                #define RK30SDK_WIFI_GPIO_POWER_N               RK30_PIN0_PA5
                #define RK30SDK_WIFI_GPIO_POWER_ENABLE_VALUE    GPIO_HIGH
-               //#define RK30SDK_WIFI_GPIO_POWER_PIN_NAME        GPIO3D0_SDMMC1PWREN_MIIMD_NAME
-               //#define RK30SDK_WIFI_GPIO_POWER_IOMUX_FGPIO     GPIO3D_GPIO3D0
+               //#define RK30SDK_WIFI_GPIO_POWER_PIN_NAME        "wifi_power"
+               //#define RK30SDK_WIFI_GPIO_POWER_IOMUX_FGPIO     GPIO3_D0
  
                #define RK30SDK_WIFI_GPIO_RESET_N               RK30_PIN3_PD1
                #define RK30SDK_WIFI_GPIO_RESET_ENABLE_VALUE    GPIO_HIGH
-               #define RK30SDK_WIFI_GPIO_RESET_PIN_NAME        GPIO3D1_SDMMC1BACKENDPWR_MIIMDCLK_NAME
-               #define RK30SDK_WIFI_GPIO_RESET_IOMUX_FGPIO     GPIO3D_GPIO3D1  
+               #define RK30SDK_WIFI_GPIO_RESET_PIN_NAME        "wifi_reset"
+               #define RK30SDK_WIFI_GPIO_RESET_IOMUX_FGPIO     GPIO3_D1
                #endif
 
     #endif   
 #define RK29SDK_SD_CARD_PWR_EN_IOMUX_FGPIO      GPIO5H_GPIO5D5
 #define RK29SDK_SD_CARD_PWR_EN_IOMUX_FMUX       GPIO5H_SDMMC0_PWR_EN
 
-#elif defined(CONFIG_ARCH_RK3066B)
+#elif defined(CONFIG_ARCH_RK3066B) || defined(CONFIG_ARCH_RK3188)
 //refer to file /arch/arm/mach-rk30/include/mach/iomux-rk3066b.h
 //define PowerEn-pin
 #define RK29SDK_SD_CARD_PWR_EN                  RK30_PIN3_PA1
 #define RK29SDK_SD_CARD_PWR_EN_LEVEL            GPIO_LOW 
-#define RK29SDK_SD_CARD_PWR_EN_PIN_NAME         GPIO3A1_SDMMC0PWREN_NAME
-#define RK29SDK_SD_CARD_PWR_EN_IOMUX_FGPIO      GPIO3A_GPIO3A1
-#define RK29SDK_SD_CARD_PWR_EN_IOMUX_FMUX       GPIO3A_SDMMC0PWREN
+#define RK29SDK_SD_CARD_PWR_EN_PIN_NAME         "mmc0_pwren"
+#define RK29SDK_SD_CARD_PWR_EN_IOMUX_FGPIO      GPIO3_A1
+#define RK29SDK_SD_CARD_PWR_EN_IOMUX_FMUX       MMC0_PWREN
 
 #elif defined(CONFIG_ARCH_RK30)&& !defined(CONFIG_ARCH_RK3066B) //for RK30,RK3066 SDK
 //refer to file /arch/arm/mach-rk30/include/mach/Iomux.h
@@ -652,7 +652,7 @@ static struct rksdmmc_gpio_board rksdmmc1_gpio_init = {
 };
  // ---end -#if defined(CONFIG_ARCH_RK30)&& !defined(CONFIG_ARCH_RK3066B)
 
-#elif defined(CONFIG_ARCH_RK3066B)
+#elif defined(CONFIG_ARCH_RK3066B) || defined(CONFIG_ARCH_RK3188)
 
 /*
 * define the gpio for sdmmc0
@@ -663,9 +663,9 @@ static struct rksdmmc_gpio_board rksdmmc0_gpio_init = {
         .io             = RK30_PIN3_PA2,
         .enable         = GPIO_HIGH,
         .iomux          = {
-            .name       = GPIO3A2_SDMMC0CLKOUT_NAME,
-            .fgpio      = GPIO3A_GPIO3A2,
-            .fmux       = GPIO3A_SDMMC0CLKOUT,
+            .name       = "mmc0_clkout",
+            .fgpio      = GPIO3_A2,
+            .fmux       = MMC0_CLKOUT,
         },
     },   
 
@@ -673,9 +673,9 @@ static struct rksdmmc_gpio_board rksdmmc0_gpio_init = {
         .io             = RK30_PIN3_PA3,
         .enable         = GPIO_HIGH,
         .iomux          = {
-            .name       = GPIO3A3_SDMMC0CMD_NAME,
-            .fgpio      = GPIO3A_GPIO3A3,
-            .fmux       = GPIO3A_SDMMC0CMD,
+            .name       = "mmc0_cmd",
+            .fgpio      = GPIO3_A3,
+            .fmux       = MMC0_CMD,
         },
     },      
 
@@ -683,9 +683,9 @@ static struct rksdmmc_gpio_board rksdmmc0_gpio_init = {
         .io             = RK30_PIN3_PA4,
         .enable         = GPIO_HIGH,
         .iomux          = {
-            .name       = GPIO3A4_SDMMC0DATA0_NAME,
-            .fgpio      = GPIO3A_GPIO3A4,
-            .fmux       = GPIO3A_SDMMC0DATA0,
+            .name       = "mmc0_d0",
+            .fgpio      = GPIO3_A4,
+            .fmux       = MMC0_D0,
         },
     },      
 
@@ -693,9 +693,9 @@ static struct rksdmmc_gpio_board rksdmmc0_gpio_init = {
         .io             = RK30_PIN3_PA5,
         .enable         = GPIO_HIGH,
         .iomux          = {
-            .name       = GPIO3A5_SDMMC0DATA1_NAME,
-            .fgpio      = GPIO3A_GPIO3A5,
-            .fmux       = GPIO3A_SDMMC0DATA1,
+            .name       = "mmc0_d1",
+            .fgpio      = GPIO3_A5,
+            .fmux       = MMC0_D1,
         },
     },      
 
@@ -703,9 +703,9 @@ static struct rksdmmc_gpio_board rksdmmc0_gpio_init = {
         .io             = RK30_PIN3_PA6,
         .enable         = GPIO_HIGH,
         .iomux          = {
-            .name       = GPIO3A6_SDMMC0DATA2_NAME,
-            .fgpio      = GPIO3A_GPIO3A6,
-            .fmux       = GPIO3A_SDMMC0DATA2,
+            .name       = "mmc_d2",
+            .fgpio      = GPIO3_A6,
+            .fmux       = MMC0_D2,
         },
     }, 
 
@@ -713,9 +713,9 @@ static struct rksdmmc_gpio_board rksdmmc0_gpio_init = {
         .io             = RK30_PIN3_PA7,
         .enable         = GPIO_HIGH,
         .iomux          = {
-            .name       = GPIO3A7_SDMMC0DATA3_NAME,
-            .fgpio      = GPIO3A_GPIO3A7,
-            .fmux       = GPIO3A_SDMMC0DATA3,
+            .name       = "mmc_d3",
+            .fgpio      = GPIO3_A7,
+            .fmux       = MMC0_D3,
         },
     }, 
 
@@ -774,9 +774,9 @@ static struct rksdmmc_gpio_board rksdmmc1_gpio_init = {
         .io             = RK30_PIN3_PC5,
         .enable         = GPIO_HIGH,
         .iomux          = {
-            .name       = GPIO3C5_SDMMC1CLKOUT_RMIICLKOUT_RMIICLKIN_NAME,
-            .fgpio      = GPIO3C_GPIO3C5,
-            .fmux       = GPIO3C_SDMMC1CLKOUT,
+            .name       = "mmc1_clkout",
+            .fgpio      = GPIO3_C5,
+            .fmux       = MMC1_CLKOUT,
         },
     },   
 
@@ -784,9 +784,9 @@ static struct rksdmmc_gpio_board rksdmmc1_gpio_init = {
         .io             = RK30_PIN3_PC0,
         .enable         = GPIO_HIGH,
         .iomux          = {
-            .name       = GPIO3C0_SDMMC1CMD_RMIITXEN_NAME,
-            .fgpio      = GPIO3C_GPIO3C0,
-            .fmux       = GPIO3C_SDMMC1CMD,
+            .name       = "mmc1_cmd",
+            .fgpio      = GPIO3_C0,
+            .fmux       = MMC1_CMD,
         },
     },      
 
@@ -794,9 +794,9 @@ static struct rksdmmc_gpio_board rksdmmc1_gpio_init = {
         .io             = RK30_PIN3_PC1,
         .enable         = GPIO_HIGH,
         .iomux          = {
-            .name       = GPIO3C1_SDMMC1DATA0_RMIITXD1_NAME,
-            .fgpio      = GPIO3C_GPIO3C1,
-            .fmux       = GPIO3C_SDMMC1DATA0,
+            .name       = "mmc1_d0",
+            .fgpio      = GPIO3_C1,
+            .fmux       = MMC1_D0,
         },
     },      
 
@@ -804,9 +804,9 @@ static struct rksdmmc_gpio_board rksdmmc1_gpio_init = {
         .io             = RK30_PIN3_PC2,
         .enable         = GPIO_HIGH,
         .iomux          = {
-            .name       = GPIO3C2_SDMMC1DATA1_RMIITXD0_NAME,
-            .fgpio      = GPIO3C_GPIO3C2,
-            .fmux       = GPIO3C_SDMMC1DATA1,
+            .name       = "mmc1_d1",
+            .fgpio      = GPIO3_C2,
+            .fmux       = MMC1_D1,
         },
     },      
 
@@ -814,9 +814,9 @@ static struct rksdmmc_gpio_board rksdmmc1_gpio_init = {
         .io             = RK30_PIN3_PC3,
         .enable         = GPIO_HIGH,
         .iomux          = {
-            .name       = GPIO3C3_SDMMC1DATA2_RMIIRXD0_NAME,
-            .fgpio      = GPIO3C_GPIO3C3,
-            .fmux       = GPIO3C_SDMMC1DATA2,
+            .name       = "mmc1_d2",
+            .fgpio      = GPIO3_C3,
+            .fmux       = MMC1_D2,
         },
     }, 
 
@@ -824,9 +824,9 @@ static struct rksdmmc_gpio_board rksdmmc1_gpio_init = {
         .io             = RK30_PIN3_PC4,
         .enable         = GPIO_HIGH,
         .iomux          = {
-            .name       = GPIO3C4_SDMMC1DATA3_RMIIRXD1_NAME,
-            .fgpio      = GPIO3C_GPIO3C4,
-            .fmux       = GPIO3C_SDMMC1DATA3,
+            .name       = "mmc1_d3",
+            .fgpio      = GPIO3_C4,
+            .fmux       = MMC1_D3,
         },
     }, 
 };
@@ -1042,27 +1042,21 @@ static void rk29_sdmmc_gpio_open(int device_id, int on)
             }
             else
             {
-                rk30_mux_api_set(rksdmmc0_gpio_init.clk_gpio.iomux.name, rksdmmc0_gpio_init.clk_gpio.iomux.fgpio);
                 gpio_request(rksdmmc0_gpio_init.clk_gpio.io, "mmc0-clk");
                 gpio_direction_output(rksdmmc0_gpio_init.clk_gpio.io,GPIO_LOW);//set mmc0-clk to low.
 
-                rk30_mux_api_set(rksdmmc0_gpio_init.cmd_gpio.iomux.name, rksdmmc0_gpio_init.cmd_gpio.iomux.fgpio);
                 gpio_request(rksdmmc0_gpio_init.cmd_gpio.io, "mmc0-cmd");
                 gpio_direction_output(rksdmmc0_gpio_init.cmd_gpio.io,GPIO_LOW);//set mmc0-cmd to low.
 
-                rk30_mux_api_set(rksdmmc0_gpio_init.data0_gpio.iomux.name, rksdmmc0_gpio_init.data0_gpio.iomux.fgpio);
                 gpio_request(rksdmmc0_gpio_init.data0_gpio.io, "mmc0-data0");
                 gpio_direction_output(rksdmmc0_gpio_init.data0_gpio.io,GPIO_LOW);//set mmc0-data0 to low.
 
-                rk30_mux_api_set(rksdmmc0_gpio_init.data1_gpio.iomux.name, rksdmmc0_gpio_init.data1_gpio.iomux.fgpio);
                 gpio_request(rksdmmc0_gpio_init.data1_gpio.io, "mmc0-data1");
                 gpio_direction_output(rksdmmc0_gpio_init.data1_gpio.io,GPIO_LOW);//set mmc0-data1 to low.
 
-                rk30_mux_api_set(rksdmmc0_gpio_init.data2_gpio.iomux.name, rksdmmc0_gpio_init.data2_gpio.iomux.fgpio);
                 gpio_request(rksdmmc0_gpio_init.data2_gpio.io, "mmc0-data2");
                 gpio_direction_output(rksdmmc0_gpio_init.data2_gpio.io,GPIO_LOW);//set mmc0-data2 to low.
 
-                rk30_mux_api_set(rksdmmc0_gpio_init.data3_gpio.iomux.name, rksdmmc0_gpio_init.data3_gpio.iomux.fgpio);
                 gpio_request(rksdmmc0_gpio_init.data3_gpio.io, "mmc0-data3");
                 gpio_direction_output(rksdmmc0_gpio_init.data3_gpio.io,GPIO_LOW);//set mmc0-data3 to low.
 
@@ -1087,28 +1081,22 @@ static void rk29_sdmmc_gpio_open(int device_id, int on)
             }
             else
             {
-                rk30_mux_api_set(rksdmmc1_gpio_init.clk_gpio.iomux.name, rksdmmc1_gpio_init.clk_gpio.iomux.fgpio);
                 gpio_request(rksdmmc1_gpio_init.clk_gpio.io, "mmc1-clk");
                 gpio_direction_output(rksdmmc1_gpio_init.clk_gpio.io,GPIO_LOW);//set mmc1-clk to low.
 
-                rk30_mux_api_set(rksdmmc1_gpio_init.cmd_gpio.iomux.name, rksdmmc1_gpio_init.cmd_gpio.iomux.fgpio);
                 gpio_request(rksdmmc1_gpio_init.cmd_gpio.io, "mmc1-cmd");
                 gpio_direction_output(rksdmmc1_gpio_init.cmd_gpio.io,GPIO_LOW);//set mmc1-cmd to low.
 
-                rk30_mux_api_set(rksdmmc1_gpio_init.data0_gpio.iomux.name, rksdmmc1_gpio_init.data0_gpio.iomux.fgpio);
                 gpio_request(rksdmmc1_gpio_init.data0_gpio.io, "mmc1-data0");
                 gpio_direction_output(rksdmmc1_gpio_init.data0_gpio.io,GPIO_LOW);//set mmc1-data0 to low.
                 
             #if defined(CONFIG_WIFI_COMBO_MODULE_CONTROL_FUNC) || defined(CONFIG_MT5931) || defined(CONFIG_MT5931_MT6622)
-                rk29_mux_api_set(rksdmmc1_gpio_init.data1_gpio.iomux.name, rksdmmc1_gpio_init.data1_gpio.iomux.fgpio);
                 gpio_request(rksdmmc1_gpio_init.data1_gpio.io, "mmc1-data1");
                 gpio_direction_output(rksdmmc1_gpio_init.data1_gpio.io,GPIO_LOW);//set mmc1-data1 to low.
 
-                rk29_mux_api_set(rksdmmc1_gpio_init.data2_gpio.iomux.name, rksdmmc1_gpio_init.data2_gpio.iomux.fgpio);
                 gpio_request(rksdmmc1_gpio_init.data2_gpio.io, "mmc1-data2");
                 gpio_direction_output(rksdmmc1_gpio_init.data2_gpio.io,GPIO_LOW);//set mmc1-data2 to low.
 
-                rk29_mux_api_set(rksdmmc1_gpio_init.data3_gpio.iomux.name, rksdmmc1_gpio_init.data3_gpio.iomux.fgpio);
                 gpio_request(rksdmmc1_gpio_init.data3_gpio.io, "mmc1-data3");
                 gpio_direction_output(rksdmmc1_gpio_init.data3_gpio.io,GPIO_LOW);//set mmc1-data3 to low.
            #endif
@@ -1133,9 +1121,9 @@ static void rk29_sdmmc_set_iomux_mmc0(unsigned int bus_width)
         
        case 1://SDMMC_CTYPE_4BIT:
        {
-               rk30_mux_api_set(rksdmmc0_gpio_init.data1_gpio.iomux.name, rksdmmc0_gpio_init.data1_gpio.iomux.fmux);
-               rk30_mux_api_set(rksdmmc0_gpio_init.data2_gpio.iomux.name, rksdmmc0_gpio_init.data2_gpio.iomux.fmux);
-               rk30_mux_api_set(rksdmmc0_gpio_init.data3_gpio.iomux.name, rksdmmc0_gpio_init.data3_gpio.iomux.fmux);
+            iomux_set(rksdmmc0_gpio_init.data1_gpio.iomux.fmux);
+            iomux_set(rksdmmc0_gpio_init.data2_gpio.iomux.fmux);
+            iomux_set(rksdmmc0_gpio_init.data3_gpio.iomux.fmux);
        }
        break;
 
@@ -1143,7 +1131,6 @@ static void rk29_sdmmc_set_iomux_mmc0(unsigned int bus_width)
            break;
        case 0xFFFF: //gpio_reset
        {
-            rk30_mux_api_set(rksdmmc0_gpio_init.power_en_gpio.iomux.name, rksdmmc0_gpio_init.power_en_gpio.iomux.fgpio);
             gpio_request(rksdmmc0_gpio_init.power_en_gpio.io,"sdmmc-power");
             gpio_direction_output(rksdmmc0_gpio_init.power_en_gpio.io, !(rksdmmc0_gpio_init.power_en_gpio.enable)); //power-off
 
@@ -1159,19 +1146,16 @@ static void rk29_sdmmc_set_iomux_mmc0(unsigned int bus_width)
 
        default: //case 0://SDMMC_CTYPE_1BIT:
         {
-               rk30_mux_api_set(rksdmmc0_gpio_init.cmd_gpio.iomux.name, rksdmmc0_gpio_init.cmd_gpio.iomux.fmux);
-               rk30_mux_api_set(rksdmmc0_gpio_init.clk_gpio.iomux.name, rksdmmc0_gpio_init.clk_gpio.iomux.fmux);
-               rk30_mux_api_set(rksdmmc0_gpio_init.data0_gpio.iomux.name, rksdmmc0_gpio_init.data0_gpio.iomux.fmux);
+               iomux_set(rksdmmc0_gpio_init.cmd_gpio.iomux.fmux);
+               iomux_set(rksdmmc0_gpio_init.clk_gpio.iomux.fmux);
+               iomux_set(rksdmmc0_gpio_init.data0_gpio.iomux.fmux);
 
-            rk30_mux_api_set(rksdmmc0_gpio_init.data1_gpio.iomux.name, rksdmmc0_gpio_init.data1_gpio.iomux.fgpio);
             gpio_request(rksdmmc0_gpio_init.data1_gpio.io, "mmc0-data1");
             gpio_direction_output(rksdmmc0_gpio_init.data1_gpio.io,GPIO_HIGH);//set mmc0-data1 to high.
 
-            rk30_mux_api_set(rksdmmc0_gpio_init.data2_gpio.iomux.name, rksdmmc0_gpio_init.data2_gpio.iomux.fgpio);
             gpio_request(rksdmmc0_gpio_init.data2_gpio.io, "mmc0-data2");
             gpio_direction_output(rksdmmc0_gpio_init.data2_gpio.io,GPIO_HIGH);//set mmc0-data2 to high.
 
-            rk30_mux_api_set(rksdmmc0_gpio_init.data3_gpio.iomux.name, rksdmmc0_gpio_init.data3_gpio.iomux.fgpio);
             gpio_request(rksdmmc0_gpio_init.data3_gpio.io, "mmc0-data3");
             gpio_direction_output(rksdmmc0_gpio_init.data3_gpio.io,GPIO_HIGH);//set mmc0-data3 to high.
        }
@@ -1181,12 +1165,12 @@ static void rk29_sdmmc_set_iomux_mmc0(unsigned int bus_width)
 
 static void rk29_sdmmc_set_iomux_mmc1(unsigned int bus_width)
 {
-    rk30_mux_api_set(rksdmmc1_gpio_init.cmd_gpio.iomux.name, rksdmmc1_gpio_init.cmd_gpio.iomux.fmux);
-    rk30_mux_api_set(rksdmmc1_gpio_init.clk_gpio.iomux.name, rksdmmc1_gpio_init.clk_gpio.iomux.fmux);
-    rk30_mux_api_set(rksdmmc1_gpio_init.data0_gpio.iomux.name, rksdmmc1_gpio_init.data0_gpio.iomux.fmux);
-    rk30_mux_api_set(rksdmmc1_gpio_init.data1_gpio.iomux.name, rksdmmc1_gpio_init.data1_gpio.iomux.fmux);
-    rk30_mux_api_set(rksdmmc1_gpio_init.data2_gpio.iomux.name, rksdmmc1_gpio_init.data2_gpio.iomux.fmux);
-    rk30_mux_api_set(rksdmmc1_gpio_init.data3_gpio.iomux.name, rksdmmc1_gpio_init.data3_gpio.iomux.fmux);
+    iomux_set(rksdmmc1_gpio_init.cmd_gpio.iomux.fmux);
+    iomux_set(rksdmmc1_gpio_init.clk_gpio.iomux.fmux);
+    iomux_set(rksdmmc1_gpio_init.data0_gpio.iomux.fmux);
+    iomux_set(rksdmmc1_gpio_init.data1_gpio.iomux.fmux);
+    iomux_set(rksdmmc1_gpio_init.data2_gpio.iomux.fmux);
+    iomux_set(rksdmmc1_gpio_init.data3_gpio.iomux.fmux);
 }
 
 static void rk29_sdmmc_set_iomux_mmc2(unsigned int bus_width)