补充提交iomux接口的添加
authorroot <root@dxj.(none)>
Thu, 29 Jul 2010 07:20:39 +0000 (15:20 +0800)
committerroot <root@dxj.(none)>
Thu, 29 Jul 2010 07:20:39 +0000 (15:20 +0800)
arch/arm/mach-rk2818/board-midsdk.c
arch/arm/mach-rk2818/board-phonesdk.c
arch/arm/mach-rk2818/board-raho.c
arch/arm/mach-rk2818/include/mach/iomux.h
drivers/mtd/nand/rk2818_nand.c

index 7c26c8f3716946fff625326883ef9c42afce3174..818a67b69df45a8d3db095aea362bda388148bb2 100644 (file)
@@ -554,11 +554,13 @@ void lcd_set_iomux(u8 enable)
     else
     {
          gpio_free(RK2818_PIN_PA4); 
-         rk2818_mux_api_set(CXGPIO_HSADC_SEL_NAME, 1);
+         //rk2818_mux_api_set(CXGPIO_HSADC_SEL_NAME, 1);
+         rk2818_mux_api_mode_resume(CXGPIO_HSADC_SEL_NAME);
 
          gpio_free(RK2818_PIN_PE7);   
          gpio_free(RK2818_PIN_PE6); 
-         rk2818_mux_api_set(GPIOE_U1IR_I2C1_NAME, 2);
+         //rk2818_mux_api_set(GPIOE_U1IR_I2C1_NAME, 2);
+         rk2818_mux_api_mode_resume(GPIOE_U1IR_I2C1_NAME);
     }
     return ;
 pin_err:
index 630857812099cde2f5664592045be02db8ff63cf..f0b9f546011b56277d66680984314d1b7724dcff 100755 (executable)
@@ -560,11 +560,13 @@ void lcd_set_iomux(u8 enable)
     else
     {
          gpio_free(RK2818_PIN_PA4); 
-         rk2818_mux_api_set(CXGPIO_HSADC_SEL_NAME, 1);
+         //rk2818_mux_api_set(CXGPIO_HSADC_SEL_NAME, 1);
+         rk2818_mux_api_mode_resume(CXGPIO_HSADC_SEL_NAME);
 
          gpio_free(RK2818_PIN_PE7);   
          gpio_free(RK2818_PIN_PE6); 
-         rk2818_mux_api_set(GPIOE_U1IR_I2C1_NAME, 2);
+         //rk2818_mux_api_set(GPIOE_U1IR_I2C1_NAME, 2);
+         rk2818_mux_api_mode_resume(GPIOE_U1IR_I2C1_NAME);
     }
     return ;
 pin_err:
index c9a61d72e0a7c5ecb97c90cff42eb6458ef7d2f7..40702cce4521c92410ae8f19567a5788666b6214 100644 (file)
@@ -393,12 +393,10 @@ static void spi_xpt2046_cs_control(u32 command)
 {
        if(command == 3)        
            {
-           printk("spi_xpt2046_cs_control cs \n");
            gpio_direction_output(RK2818_PIN_PF5, GPIO_LOW);
            }
        if(command == 0)
            {
-           printk("spi_xpt2046_cs_control decs \n");
            gpio_direction_output(RK2818_PIN_PF5, GPIO_HIGH);
            }
 }
@@ -584,11 +582,13 @@ void lcd_set_iomux(u8 enable)
     else
     {
          gpio_free(RK2818_PIN_PH6); 
-         rk2818_mux_api_set(GPIOH6_IQ_SEL_NAME, 1);
+         //rk2818_mux_api_set(GPIOH6_IQ_SEL_NAME, 1);
+         rk2818_mux_api_mode_resume(GPIOH6_IQ_SEL_NAME);
 
          gpio_free(RK2818_PIN_PE4);   
          gpio_free(RK2818_PIN_PE5); 
-         rk2818_mux_api_set(GPIOE_I2C0_SEL_NAME, 0);
+         //rk2818_mux_api_set(GPIOE_I2C0_SEL_NAME, 0);
+         rk2818_mux_api_mode_resume(GPIOE_I2C0_SEL_NAME);
     }
     return ;
 pin_err:
index 281f037f2727a9702a89c340d4c8a622e7d8f170..70c66a66b50cc29c1d8842b002fd43a356623985 100644 (file)
         .interleave = interl,                          \
         .mux_reg = RK2818_IOMUX_##reg##_CON,          \
         .mode = mux_mode,                               \
+        .premode = mux_mode,                            \
         .flags = bflags,                               \
 },
 
@@ -214,6 +215,7 @@ struct mux_config {
        char *name;
        const unsigned int offset;
        unsigned int mode;
+       unsigned int premode;
        const unsigned int mux_reg;
        const unsigned int interleave;
        unsigned int flags;
@@ -221,7 +223,7 @@ struct mux_config {
 
 extern int rk2818_iomux_init(void);
 extern void rk2818_mux_api_set(char *name, unsigned int mode);
-extern unsigned int rk2818_mux_api_get(char *name);
+extern void rk2818_mux_api_mode_resume(char *name);
 
 #endif
 
index 6e0cba2c46c81dcaad662d96fb8f61c249d0dc74..49ec53fc39e99b8924547e8d7d02ca504c61d6e4 100644 (file)
@@ -788,7 +788,6 @@ static int rk2818_nand_probe(struct platform_device *pdev)
        int err = 0;
        pNANDC pRK28NC;
        u_char  maf_id,dev_id,ext_id3,ext_id4;
-       u32 iomux_mode0,iomux_mode1,iomux_mode2,iomux_mode3,iomux_mode4;
     struct nand_chip *chip;
     
 #ifdef CONFIG_MTD_PARTITIONS
@@ -884,12 +883,6 @@ static int rk2818_nand_probe(struct platform_device *pdev)
                this->options |= NAND_BUSWIDTH_16;
                this->ecc.layout = &nand_hw_eccoob_16;
        }
-      //±£³ÖIO MUXԭʼֵ
-      iomux_mode0=rk2818_mux_api_get(GPIOA5_FLASHCS1_SEL_NAME);
-      iomux_mode1=rk2818_mux_api_get(GPIOA6_FLASHCS2_SEL_NAME);
-      iomux_mode2=rk2818_mux_api_get(GPIOA7_FLASHCS3_SEL_NAME);
-      iomux_mode3=rk2818_mux_api_get(GPIOE_SPI1_FLASH_SEL1_NAME);
-      iomux_mode4=rk2818_mux_api_get(GPIOE_SPI1_FLASH_SEL_NAME);
       // iomux flash  cs1~cs7
       rk2818_mux_api_set(GPIOA5_FLASHCS1_SEL_NAME, IOMUXB_FLASH_CS1);
       rk2818_mux_api_set(GPIOA6_FLASHCS2_SEL_NAME, IOMUXB_FLASH_CS2);
@@ -911,16 +904,16 @@ static int rk2818_nand_probe(struct platform_device *pdev)
     switch(chip->numchips)
     {
         case 1:
-            rk2818_mux_api_set(GPIOA5_FLASHCS1_SEL_NAME, iomux_mode0);
+            rk2818_mux_api_mode_resume(GPIOA5_FLASHCS1_SEL_NAME);
         case 2:
-            rk2818_mux_api_set(GPIOA6_FLASHCS2_SEL_NAME, iomux_mode1);
+            rk2818_mux_api_mode_resume(GPIOA6_FLASHCS2_SEL_NAME);
         case 3:
-            rk2818_mux_api_set(GPIOA7_FLASHCS3_SEL_NAME, iomux_mode2);
+            rk2818_mux_api_mode_resume(GPIOA7_FLASHCS3_SEL_NAME);
         case 4:
-            rk2818_mux_api_set(GPIOE_SPI1_FLASH_SEL1_NAME, iomux_mode3);  
+            rk2818_mux_api_mode_resume(GPIOE_SPI1_FLASH_SEL1_NAME);
         case 5:
         case 6:
-            rk2818_mux_api_set(GPIOE_SPI1_FLASH_SEL_NAME, iomux_mode4); 
+            rk2818_mux_api_mode_resume(GPIOE_SPI1_FLASH_SEL_NAME);
         case 7:
         case 8:
             break;