Hi!

> I took battery charging code from sharp and placed it in
> arch/arm/mach-sa1100/battery-collie.c (hope that's good place...). It
> still does not link, and will need complete rewrite, but... If you
> have done this already please let me know.

I replaced sharp functions with ucb_1x00 functions this way; I hope I
did not mess it up.

diff --git a/arch/arm/mach-sa1100/battery-collie.c 
b/arch/arm/mach-sa1100/battery-collie.c
--- a/arch/arm/mach-sa1100/battery-collie.c
+++ b/arch/arm/mach-sa1100/battery-collie.c
@@ -54,9 +54,6 @@
 
 /* Various strange defines, coming from sharp */
 
-#define COLLIE_TC35143_IODAT_LOW       0      /* set up fs 8k LPF on data      
*/
-#define COLLIE_TC35143_IODAT_HIGH      1      /* set up fs 8k LPF off data     
*/
-
 #define COLLIE_TC35143_IODIR_OUTPUT    1      /* set up output mode            
*/
 #define COLLIE_TC35143_IODIR_INPUT     0      /* set up input  mode            
*/
 
@@ -226,13 +223,8 @@ static struct miscdevice battery_device 
 
 #define ADC_REQ_ID     (u32)(&battery_device)
 
-#ifdef CONFIG_COLLIE_TR0
-#define CHARGE_ON()        ucb1200_set_io(COLLIE_TC35143_GPIO_CHRG_ON, 
COLLIE_TC35143_IODAT_HIGH)
-#define CHARGE_OFF()       ucb1200_set_io(COLLIE_TC35143_GPIO_CHRG_ON, 
COLLIE_TC35143_IODAT_LOW)
-#else
 #define CHARGE_ON()        SCP_REG_GPWR |= COLLIE_SCP_CHARGE_ON
 #define CHARGE_OFF()       SCP_REG_GPWR &= ~COLLIE_SCP_CHARGE_ON
-#endif
 
 #define CHARGE_LED_ON()    printk("charger on\n");
 #define CHARGE_LED_OFF()   printk("charger off\n");
@@ -540,9 +532,6 @@ int GetMainChargePercent( int Volt )
 /*** get adc 
*********************************************************************/
 int collie_get_main_battery(void)
 {
-#ifdef CONFIG_COLLIE_TR0
-       return  COLLIE_BATTERY_STATUS_HIGH;
-#else
        int i = 0;
 
        MainCntWk++;
@@ -570,8 +559,6 @@ int collie_get_main_battery(void)
          DPRINTK("MainCntWk = %d\n",MainCntWk);
        }
        return collie_main_battery;
-
-#endif
 }
 
 
@@ -617,14 +604,13 @@ int collie_read_MainBattery(void)
 {
        int voltage;
 
-
-       ucb1200_set_io(COLLIE_TC35143_GPIO_BBAT_ON, COLLIE_TC35143_IODAT_LOW);
-       ucb1200_set_io(COLLIE_TC35143_GPIO_MBAT_ON, COLLIE_TC35143_IODAT_HIGH);
-       voltage = ucb1200_get_adc_value(ADC_REQ_ID, COLLIE_TC35143_ADC_BAT_VOL);
+       ucb1x00_io_write(NULL, 0, COLLIE_TC35143_GPIO_BBAT_ON);
+       ucb1x00_io_write(NULL, COLLIE_TC35143_GPIO_MBAT_ON, 0);
+       voltage = ucb1x00_adc_read(NULL, COLLIE_TC35143_ADC_BAT_VOL, UCB_SYNC);
        if ( battery_off_flag )
          voltage = -1;
-       ucb1200_set_io(COLLIE_TC35143_GPIO_MBAT_ON, COLLIE_TC35143_IODAT_LOW);
 
+       ucb1x00_io_write(NULL, 0, COLLIE_TC35143_GPIO_MBAT_ON);
        battery_off_flag = 0;
 
        DPRINTK("adc = %d\n",voltage);
@@ -641,13 +627,13 @@ int collie_read_BackBattery(void)
 {
        int voltage;
 
-       ucb1200_set_io(COLLIE_TC35143_GPIO_MBAT_ON, COLLIE_TC35143_IODAT_LOW);
-       ucb1200_set_io(COLLIE_TC35143_GPIO_BBAT_ON, COLLIE_TC35143_IODAT_HIGH);
+       ucb1x00_io_write(NULL, 0, COLLIE_TC35143_GPIO_MBAT_ON);
+       ucb1x00_io_write(NULL, COLLIE_TC35143_GPIO_BBAT_ON, 0);
        mdelay(3);
-       voltage = ucb1200_get_adc_value(ADC_REQ_ID, COLLIE_TC35143_ADC_BAT_VOL);
+       voltage = ucb1x00_adc_read(NULL, COLLIE_TC35143_ADC_BAT_VOL, UCB_SYNC);
        if ( battery_off_flag )
          voltage = -1;
-       ucb1200_set_io(COLLIE_TC35143_GPIO_BBAT_ON, COLLIE_TC35143_IODAT_LOW);
+       ucb1x00_io_write(NULL, 0, COLLIE_TC35143_GPIO_BBAT_ON);
 
        battery_off_flag = 0;
        return voltage;
@@ -657,12 +643,12 @@ int collie_read_Temp(void)
 {
        int voltage;
 
-
-       ucb1200_set_io(COLLIE_TC35143_GPIO_TMP_ON, COLLIE_TC35143_IODAT_HIGH);
-       voltage = ucb1200_get_adc_value(ADC_REQ_ID, COLLIE_TC35143_ADC_BAT_TMP);
+       ucb1x00_io_write(NULL, COLLIE_TC35143_GPIO_TMP_ON, 0);
+       voltage = ucb1x00_adc_read(NULL, COLLIE_TC35143_ADC_BAT_TMP, UCB_SYNC);
        if ( battery_off_flag )
          voltage = -1;
-       ucb1200_set_io(COLLIE_TC35143_GPIO_TMP_ON, COLLIE_TC35143_IODAT_LOW);
+       ucb1x00_io_write(NULL, 0, COLLIE_TC35143_GPIO_TMP_ON);
+
 
        battery_off_flag = 0;
        return voltage;
@@ -722,14 +708,12 @@ int suspend_collie_read_Temp(void)
 {
   int temp;
 
-  ucb1200_set_io(COLLIE_TC35143_GPIO_TMP_ON, COLLIE_TC35143_IODAT_HIGH);
+  ucb1x00_io_write(NULL, COLLIE_TC35143_GPIO_TMP_ON, 0);
   udelay(700);
-  temp = suspend_read_adc((int)&temp, COLLIE_TC35143_ADC_BAT_TMP);
-  ucb1200_set_io(COLLIE_TC35143_GPIO_TMP_ON, COLLIE_TC35143_IODAT_LOW);
+  temp = ucb1x00_adc_read(NULL, COLLIE_TC35143_ADC_BAT_TMP, UCB_SYNC);
+  ucb1x00_io_write(NULL, 0, COLLIE_TC35143_GPIO_TMP_ON);
 
   printk("suspend temp = %d\n",temp);
-
-
   return temp;
 }
 
@@ -738,10 +722,11 @@ unsigned short suspend_collie_read_MainB
 {
   int temp;
 
-  ucb1200_set_io(COLLIE_TC35143_GPIO_MBAT_ON, COLLIE_TC35143_IODAT_HIGH);
+  ucb1x00_io_write(NULL, COLLIE_TC35143_GPIO_MBAT_ON, 0);
   udelay(700);
-  temp = suspend_read_adc((int)&temp, COLLIE_TC35143_ADC_BAT_VOL);
-  ucb1200_set_io(COLLIE_TC35143_GPIO_MBAT_ON, COLLIE_TC35143_IODAT_LOW);
+  temp = ucb1x00_adc_read(NULL, COLLIE_TC35143_ADC_BAT_VOL, UCB_SYNC);
+
+  ucb1x00_io_write(NULL, 0, COLLIE_TC35143_GPIO_MBAT_ON);
 
   printk("suspend main adc = %d(%d)\n",(temp+ConvRevise(temp)),temp);
 
@@ -753,11 +738,10 @@ unsigned short GetBackupBatteryAD(void)
 {
   int temp;
 
-  ucb1200_set_io(COLLIE_TC35143_GPIO_BBAT_ON, COLLIE_TC35143_IODAT_HIGH);
-  //  mdelay(3);
+  ucb1x00_io_write(NULL, COLLIE_TC35143_GPIO_BBAT_ON, 0);
   mdelay(5);
-  temp = suspend_read_adc((int)&temp, COLLIE_TC35143_ADC_BAT_VOL);
-  ucb1200_set_io(COLLIE_TC35143_GPIO_BBAT_ON, COLLIE_TC35143_IODAT_LOW);
+  temp = ucb1x00_adc_read(NULL, COLLIE_TC35143_ADC_BAT_VOL, UCB_SYNC);
+  ucb1x00_io_write(NULL, 0, COLLIE_TC35143_GPIO_BBAT_ON);
 
   printk("suspend backup adc = %d(%d)\n",(temp+ConvRevise(temp)),temp);
 
@@ -776,9 +760,6 @@ void collie_get_ad(void)
 
 unsigned short chkFatalBatt(void)
 {
-#ifdef CONFIG_COLLIE_TR0
-  return 1;
-#else
   int volt;
 
   // fail safe
@@ -804,7 +785,6 @@ unsigned short chkFatalBatt(void)
     return 0;
   else
     return 1;
-#endif
 }
 
 
@@ -928,17 +908,9 @@ void battery_init(void)
   /* get ad revise */
   collie_get_ad();
 
-  /* 35143F io port initialize */
-#ifdef CONFIG_COLLIE_TR0
-  ucb1200_set_io_direction(COLLIE_TC35143_GPIO_CHRG_ON, 
COLLIE_TC35143_IODIR_OUTPUT);
-#endif
-  ucb1200_set_io_direction(COLLIE_TC35143_GPIO_MBAT_ON, 
COLLIE_TC35143_IODIR_OUTPUT);
-  ucb1200_set_io_direction(COLLIE_TC35143_GPIO_TMP_ON,  
COLLIE_TC35143_IODIR_OUTPUT);
-  ucb1200_set_io_direction(COLLIE_TC35143_GPIO_BBAT_ON, 
COLLIE_TC35143_IODIR_OUTPUT);
-
   /* Set transition detect */
-  usb1x00_enable_irq(NULL, COLLIE_GPIO_AC_IN, UCB_RISING);
-  usb1x00_enable_irq(NULL, COLLIE_GPIO_CO, UCB_RISING);
+  ucb1x00_enable_irq(NULL, COLLIE_GPIO_AC_IN, UCB_RISING);
+  ucb1x00_enable_irq(NULL, COLLIE_GPIO_CO, UCB_RISING);
 
   /* Register interrupt handler. */
   if ((err = request_irq(IRQ_GPIO_AC_IN, Collie_ac_interrupt, SA_INTERRUPT,
@@ -1066,7 +1038,6 @@ int __init Collie_battery_init(void)
 
        proc_batt = proc_mkdir("driver/battery", NULL);
        if (proc_batt == NULL) {
-         ucb1200_cancel_get_adc_value(ADC_REQ_ID);
          free_irq(IRQ_GPIO_AC_IN, Collie_ac_interrupt);
          free_irq(IRQ_GPIO_CO, Collie_co_interrupt);
 
@@ -1089,7 +1060,6 @@ int __init Collie_battery_init(void)
                        }
                        remove_proc_entry("driver/battery", &proc_root);
                        proc_batt = 0;
-                       ucb1200_cancel_get_adc_value(ADC_REQ_ID);
                        free_irq(IRQ_GPIO_AC_IN, Collie_ac_interrupt);
                        free_irq(IRQ_GPIO_CO, Collie_co_interrupt);
                        misc_deregister(&battery_device);


-- 
teflon -- maybe it is a trademark, but it should not be.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to