Loading drivers/power/tosa_battery.c +19 −47 Original line number Diff line number Diff line Loading @@ -307,25 +307,20 @@ static struct tosa_bat tosa_bat_bu = { .adc_temp_divider = -1, }; static struct { int gpio; char *name; bool output; int value; } gpios[] = { { TOSA_GPIO_CHARGE_OFF, "main charge off", 1, 1 }, { TOSA_GPIO_CHARGE_OFF_JC, "jacket charge off", 1, 1 }, { TOSA_GPIO_BAT_SW_ON, "battery switch", 1, 0 }, { TOSA_GPIO_BAT0_V_ON, "main battery", 1, 0 }, { TOSA_GPIO_BAT1_V_ON, "jacket battery", 1, 0 }, { TOSA_GPIO_BAT1_TH_ON, "main battery temp", 1, 0 }, { TOSA_GPIO_BAT0_TH_ON, "jacket battery temp", 1, 0 }, { TOSA_GPIO_BU_CHRG_ON, "backup battery", 1, 0 }, { TOSA_GPIO_BAT0_CRG, "main battery full", 0, 0 }, { TOSA_GPIO_BAT1_CRG, "jacket battery full", 0, 0 }, { TOSA_GPIO_BAT0_LOW, "main battery low", 0, 0 }, { TOSA_GPIO_BAT1_LOW, "jacket battery low", 0, 0 }, { TOSA_GPIO_JACKET_DETECT, "jacket detect", 0, 0 }, static struct gpio tosa_bat_gpios[] = { { TOSA_GPIO_CHARGE_OFF, GPIOF_OUT_INIT_HIGH, "main charge off" }, { TOSA_GPIO_CHARGE_OFF_JC, GPIOF_OUT_INIT_HIGH, "jacket charge off" }, { TOSA_GPIO_BAT_SW_ON, GPIOF_OUT_INIT_LOW, "battery switch" }, { TOSA_GPIO_BAT0_V_ON, GPIOF_OUT_INIT_LOW, "main battery" }, { TOSA_GPIO_BAT1_V_ON, GPIOF_OUT_INIT_LOW, "jacket battery" }, { TOSA_GPIO_BAT1_TH_ON, GPIOF_OUT_INIT_LOW, "main battery temp" }, { TOSA_GPIO_BAT0_TH_ON, GPIOF_OUT_INIT_LOW, "jacket battery temp" }, { TOSA_GPIO_BU_CHRG_ON, GPIOF_OUT_INIT_LOW, "backup battery" }, { TOSA_GPIO_BAT0_CRG, GPIOF_IN, "main battery full" }, { TOSA_GPIO_BAT1_CRG, GPIOF_IN, "jacket battery full" }, { TOSA_GPIO_BAT0_LOW, GPIOF_IN, "main battery low" }, { TOSA_GPIO_BAT1_LOW, GPIOF_IN, "jacket battery low" }, { TOSA_GPIO_JACKET_DETECT, GPIOF_IN, "jacket detect" }, }; #ifdef CONFIG_PM Loading @@ -350,27 +345,13 @@ static int tosa_bat_resume(struct platform_device *dev) static int __devinit tosa_bat_probe(struct platform_device *dev) { int ret; int i; if (!machine_is_tosa()) return -ENODEV; for (i = 0; i < ARRAY_SIZE(gpios); i++) { ret = gpio_request(gpios[i].gpio, gpios[i].name); if (ret) { i--; goto err_gpio; } if (gpios[i].output) ret = gpio_direction_output(gpios[i].gpio, gpios[i].value); else ret = gpio_direction_input(gpios[i].gpio); ret = gpio_request_array(tosa_bat_gpios, ARRAY_SIZE(tosa_bat_gpios)); if (ret) goto err_gpio; } return ret; mutex_init(&tosa_bat_main.work_lock); mutex_init(&tosa_bat_jacket.work_lock); Loading Loading @@ -424,18 +405,12 @@ static int __devinit tosa_bat_probe(struct platform_device *dev) /* see comment in tosa_bat_remove */ cancel_work_sync(&bat_work); i--; err_gpio: for (; i >= 0; i--) gpio_free(gpios[i].gpio); gpio_free_array(tosa_bat_gpios, ARRAY_SIZE(tosa_bat_gpios)); return ret; } static int __devexit tosa_bat_remove(struct platform_device *dev) { int i; free_irq(gpio_to_irq(TOSA_GPIO_JACKET_DETECT), &tosa_bat_jacket); free_irq(gpio_to_irq(TOSA_GPIO_BAT1_CRG), &tosa_bat_jacket); free_irq(gpio_to_irq(TOSA_GPIO_BAT0_CRG), &tosa_bat_main); Loading @@ -450,10 +425,7 @@ static int __devexit tosa_bat_remove(struct platform_device *dev) * unregistered now. */ cancel_work_sync(&bat_work); for (i = ARRAY_SIZE(gpios) - 1; i >= 0; i--) gpio_free(gpios[i].gpio); gpio_free_array(tosa_bat_gpios, ARRAY_SIZE(tosa_bat_gpios)); return 0; } Loading Loading
drivers/power/tosa_battery.c +19 −47 Original line number Diff line number Diff line Loading @@ -307,25 +307,20 @@ static struct tosa_bat tosa_bat_bu = { .adc_temp_divider = -1, }; static struct { int gpio; char *name; bool output; int value; } gpios[] = { { TOSA_GPIO_CHARGE_OFF, "main charge off", 1, 1 }, { TOSA_GPIO_CHARGE_OFF_JC, "jacket charge off", 1, 1 }, { TOSA_GPIO_BAT_SW_ON, "battery switch", 1, 0 }, { TOSA_GPIO_BAT0_V_ON, "main battery", 1, 0 }, { TOSA_GPIO_BAT1_V_ON, "jacket battery", 1, 0 }, { TOSA_GPIO_BAT1_TH_ON, "main battery temp", 1, 0 }, { TOSA_GPIO_BAT0_TH_ON, "jacket battery temp", 1, 0 }, { TOSA_GPIO_BU_CHRG_ON, "backup battery", 1, 0 }, { TOSA_GPIO_BAT0_CRG, "main battery full", 0, 0 }, { TOSA_GPIO_BAT1_CRG, "jacket battery full", 0, 0 }, { TOSA_GPIO_BAT0_LOW, "main battery low", 0, 0 }, { TOSA_GPIO_BAT1_LOW, "jacket battery low", 0, 0 }, { TOSA_GPIO_JACKET_DETECT, "jacket detect", 0, 0 }, static struct gpio tosa_bat_gpios[] = { { TOSA_GPIO_CHARGE_OFF, GPIOF_OUT_INIT_HIGH, "main charge off" }, { TOSA_GPIO_CHARGE_OFF_JC, GPIOF_OUT_INIT_HIGH, "jacket charge off" }, { TOSA_GPIO_BAT_SW_ON, GPIOF_OUT_INIT_LOW, "battery switch" }, { TOSA_GPIO_BAT0_V_ON, GPIOF_OUT_INIT_LOW, "main battery" }, { TOSA_GPIO_BAT1_V_ON, GPIOF_OUT_INIT_LOW, "jacket battery" }, { TOSA_GPIO_BAT1_TH_ON, GPIOF_OUT_INIT_LOW, "main battery temp" }, { TOSA_GPIO_BAT0_TH_ON, GPIOF_OUT_INIT_LOW, "jacket battery temp" }, { TOSA_GPIO_BU_CHRG_ON, GPIOF_OUT_INIT_LOW, "backup battery" }, { TOSA_GPIO_BAT0_CRG, GPIOF_IN, "main battery full" }, { TOSA_GPIO_BAT1_CRG, GPIOF_IN, "jacket battery full" }, { TOSA_GPIO_BAT0_LOW, GPIOF_IN, "main battery low" }, { TOSA_GPIO_BAT1_LOW, GPIOF_IN, "jacket battery low" }, { TOSA_GPIO_JACKET_DETECT, GPIOF_IN, "jacket detect" }, }; #ifdef CONFIG_PM Loading @@ -350,27 +345,13 @@ static int tosa_bat_resume(struct platform_device *dev) static int __devinit tosa_bat_probe(struct platform_device *dev) { int ret; int i; if (!machine_is_tosa()) return -ENODEV; for (i = 0; i < ARRAY_SIZE(gpios); i++) { ret = gpio_request(gpios[i].gpio, gpios[i].name); if (ret) { i--; goto err_gpio; } if (gpios[i].output) ret = gpio_direction_output(gpios[i].gpio, gpios[i].value); else ret = gpio_direction_input(gpios[i].gpio); ret = gpio_request_array(tosa_bat_gpios, ARRAY_SIZE(tosa_bat_gpios)); if (ret) goto err_gpio; } return ret; mutex_init(&tosa_bat_main.work_lock); mutex_init(&tosa_bat_jacket.work_lock); Loading Loading @@ -424,18 +405,12 @@ static int __devinit tosa_bat_probe(struct platform_device *dev) /* see comment in tosa_bat_remove */ cancel_work_sync(&bat_work); i--; err_gpio: for (; i >= 0; i--) gpio_free(gpios[i].gpio); gpio_free_array(tosa_bat_gpios, ARRAY_SIZE(tosa_bat_gpios)); return ret; } static int __devexit tosa_bat_remove(struct platform_device *dev) { int i; free_irq(gpio_to_irq(TOSA_GPIO_JACKET_DETECT), &tosa_bat_jacket); free_irq(gpio_to_irq(TOSA_GPIO_BAT1_CRG), &tosa_bat_jacket); free_irq(gpio_to_irq(TOSA_GPIO_BAT0_CRG), &tosa_bat_main); Loading @@ -450,10 +425,7 @@ static int __devexit tosa_bat_remove(struct platform_device *dev) * unregistered now. */ cancel_work_sync(&bat_work); for (i = ARRAY_SIZE(gpios) - 1; i >= 0; i--) gpio_free(gpios[i].gpio); gpio_free_array(tosa_bat_gpios, ARRAY_SIZE(tosa_bat_gpios)); return 0; } Loading