pm2 348 arch/x86/kernel/tsc.c static unsigned long calc_pmtimer_ref(u64 deltatsc, u64 pm1, u64 pm2) pm2 352 arch/x86/kernel/tsc.c if (!pm1 && !pm2) pm2 355 arch/x86/kernel/tsc.c if (pm2 < pm1) pm2 356 arch/x86/kernel/tsc.c pm2 += (u64)ACPI_PM_OVRRUN; pm2 357 arch/x86/kernel/tsc.c pm2 -= pm1; pm2 358 arch/x86/kernel/tsc.c tmp = pm2 * 1000000000LL; pm2 112 drivers/power/supply/pm2301_charger.c static void set_lpn_pin(struct pm2xxx_charger *pm2) pm2 114 drivers/power/supply/pm2301_charger.c if (!pm2->ac.charger_connected && gpio_is_valid(pm2->lpn_pin)) { pm2 115 drivers/power/supply/pm2301_charger.c gpio_set_value(pm2->lpn_pin, 1); pm2 120 drivers/power/supply/pm2301_charger.c static void clear_lpn_pin(struct pm2xxx_charger *pm2) pm2 122 drivers/power/supply/pm2301_charger.c if (!pm2->ac.charger_connected && gpio_is_valid(pm2->lpn_pin)) pm2 123 drivers/power/supply/pm2301_charger.c gpio_set_value(pm2->lpn_pin, 0); pm2 126 drivers/power/supply/pm2301_charger.c static int pm2xxx_reg_read(struct pm2xxx_charger *pm2, int reg, u8 *val) pm2 131 drivers/power/supply/pm2301_charger.c pm_runtime_get_sync(pm2->dev); pm2 133 drivers/power/supply/pm2301_charger.c ret = i2c_smbus_read_i2c_block_data(pm2->config.pm2xxx_i2c, reg, pm2 136 drivers/power/supply/pm2301_charger.c dev_err(pm2->dev, "Error reading register at 0x%x\n", reg); pm2 140 drivers/power/supply/pm2301_charger.c pm_runtime_put_sync(pm2->dev); pm2 145 drivers/power/supply/pm2301_charger.c static int pm2xxx_reg_write(struct pm2xxx_charger *pm2, int reg, u8 val) pm2 150 drivers/power/supply/pm2301_charger.c pm_runtime_get_sync(pm2->dev); pm2 152 drivers/power/supply/pm2301_charger.c ret = i2c_smbus_write_i2c_block_data(pm2->config.pm2xxx_i2c, reg, pm2 155 drivers/power/supply/pm2301_charger.c dev_err(pm2->dev, "Error writing register at 0x%x\n", reg); pm2 159 drivers/power/supply/pm2301_charger.c pm_runtime_put_sync(pm2->dev); pm2 164 drivers/power/supply/pm2301_charger.c static int pm2xxx_charging_enable_mngt(struct pm2xxx_charger *pm2) pm2 169 drivers/power/supply/pm2301_charger.c ret = pm2xxx_reg_write(pm2, PM2XXX_BATT_CTRL_REG2, pm2 175 drivers/power/supply/pm2301_charger.c static int pm2xxx_charging_disable_mngt(struct pm2xxx_charger *pm2) pm2 180 drivers/power/supply/pm2301_charger.c ret = pm2xxx_reg_write(pm2, PM2XXX_SW_CTRL_REG, PM2XXX_SWCTRL_HW); pm2 182 drivers/power/supply/pm2301_charger.c dev_err(pm2->dev, "%s pm2xxx write failed\n", __func__); pm2 187 drivers/power/supply/pm2301_charger.c ret = pm2xxx_reg_write(pm2, PM2XXX_BATT_CTRL_REG2, pm2 190 drivers/power/supply/pm2301_charger.c dev_err(pm2->dev, "%s pm2xxx write failed\n", __func__); pm2 197 drivers/power/supply/pm2301_charger.c static int pm2xxx_charger_batt_therm_mngt(struct pm2xxx_charger *pm2, int val) pm2 199 drivers/power/supply/pm2301_charger.c queue_work(pm2->charger_wq, &pm2->check_main_thermal_prot_work); pm2 205 drivers/power/supply/pm2301_charger.c static int pm2xxx_charger_die_therm_mngt(struct pm2xxx_charger *pm2, int val) pm2 207 drivers/power/supply/pm2301_charger.c queue_work(pm2->charger_wq, &pm2->check_main_thermal_prot_work); pm2 212 drivers/power/supply/pm2301_charger.c static int pm2xxx_charger_ovv_mngt(struct pm2xxx_charger *pm2, int val) pm2 214 drivers/power/supply/pm2301_charger.c dev_err(pm2->dev, "Overvoltage detected\n"); pm2 215 drivers/power/supply/pm2301_charger.c pm2->flags.ovv = true; pm2 216 drivers/power/supply/pm2301_charger.c power_supply_changed(pm2->ac_chg.psy); pm2 219 drivers/power/supply/pm2301_charger.c queue_delayed_work(pm2->charger_wq, &pm2->check_hw_failure_work, 0); pm2 224 drivers/power/supply/pm2301_charger.c static int pm2xxx_charger_wd_exp_mngt(struct pm2xxx_charger *pm2, int val) pm2 226 drivers/power/supply/pm2301_charger.c dev_dbg(pm2->dev , "20 minutes watchdog expired\n"); pm2 228 drivers/power/supply/pm2301_charger.c pm2->ac.wd_expired = true; pm2 229 drivers/power/supply/pm2301_charger.c power_supply_changed(pm2->ac_chg.psy); pm2 234 drivers/power/supply/pm2301_charger.c static int pm2xxx_charger_vbat_lsig_mngt(struct pm2xxx_charger *pm2, int val) pm2 240 drivers/power/supply/pm2301_charger.c dev_dbg(pm2->dev, "VBAT grows above VBAT_LOW level\n"); pm2 242 drivers/power/supply/pm2301_charger.c ret = pm2xxx_reg_write(pm2, PM2XXX_SW_CTRL_REG, pm2 245 drivers/power/supply/pm2301_charger.c dev_err(pm2->dev, "%s pm2xxx write failed\n", __func__); pm2 251 drivers/power/supply/pm2301_charger.c dev_dbg(pm2->dev, "VBAT drops below VBAT_LOW level\n"); pm2 253 drivers/power/supply/pm2301_charger.c ret = pm2xxx_reg_write(pm2, PM2XXX_SW_CTRL_REG, pm2 256 drivers/power/supply/pm2301_charger.c dev_err(pm2->dev, "%s pm2xxx write failed\n", __func__); pm2 262 drivers/power/supply/pm2301_charger.c dev_err(pm2->dev, "Unknown VBAT level\n"); pm2 268 drivers/power/supply/pm2301_charger.c static int pm2xxx_charger_bat_disc_mngt(struct pm2xxx_charger *pm2, int val) pm2 270 drivers/power/supply/pm2301_charger.c dev_dbg(pm2->dev, "battery disconnected\n"); pm2 275 drivers/power/supply/pm2301_charger.c static int pm2xxx_charger_detection(struct pm2xxx_charger *pm2, u8 *val) pm2 279 drivers/power/supply/pm2301_charger.c ret = pm2xxx_reg_read(pm2, PM2XXX_SRCE_REG_INT2, val); pm2 282 drivers/power/supply/pm2301_charger.c dev_err(pm2->dev, "Charger detection failed\n"); pm2 292 drivers/power/supply/pm2301_charger.c static int pm2xxx_charger_itv_pwr_plug_mngt(struct pm2xxx_charger *pm2, int val) pm2 303 drivers/power/supply/pm2301_charger.c ret = pm2xxx_charger_detection(pm2, &read_val); pm2 306 drivers/power/supply/pm2301_charger.c pm2->ac.charger_connected = 1; pm2 307 drivers/power/supply/pm2301_charger.c pm2->ac_conn = true; pm2 308 drivers/power/supply/pm2301_charger.c queue_work(pm2->charger_wq, &pm2->ac_work); pm2 315 drivers/power/supply/pm2301_charger.c static int pm2xxx_charger_itv_pwr_unplug_mngt(struct pm2xxx_charger *pm2, pm2 318 drivers/power/supply/pm2301_charger.c pm2->ac.charger_connected = 0; pm2 319 drivers/power/supply/pm2301_charger.c queue_work(pm2->charger_wq, &pm2->ac_work); pm2 326 drivers/power/supply/pm2301_charger.c struct pm2xxx_charger *pm2 = pm2_data; pm2 330 drivers/power/supply/pm2301_charger.c ret = pm2xxx_charger_vbat_lsig_mngt(pm2, pm2 337 drivers/power/supply/pm2301_charger.c ret = pm2xxx_charger_vbat_lsig_mngt(pm2, pm2 344 drivers/power/supply/pm2301_charger.c ret = pm2xxx_charger_bat_disc_mngt(pm2, pm2 355 drivers/power/supply/pm2301_charger.c struct pm2xxx_charger *pm2 = pm2_data; pm2 359 drivers/power/supply/pm2301_charger.c dev_dbg(pm2->dev , "Main charger plugged\n"); pm2 360 drivers/power/supply/pm2301_charger.c ret = pm2xxx_charger_itv_pwr_plug_mngt(pm2, val & pm2 366 drivers/power/supply/pm2301_charger.c dev_dbg(pm2->dev , "Main charger unplugged\n"); pm2 367 drivers/power/supply/pm2301_charger.c ret = pm2xxx_charger_itv_pwr_unplug_mngt(pm2, val & pm2 377 drivers/power/supply/pm2301_charger.c struct pm2xxx_charger *pm2 = pm2_data; pm2 381 drivers/power/supply/pm2301_charger.c ret = pm2xxx_charger_wd_exp_mngt(pm2, val); pm2 385 drivers/power/supply/pm2301_charger.c dev_dbg(pm2->dev, pm2 394 drivers/power/supply/pm2301_charger.c struct pm2xxx_charger *pm2 = pm2_data; pm2 398 drivers/power/supply/pm2301_charger.c dev_dbg(pm2->dev , pm2 403 drivers/power/supply/pm2301_charger.c dev_dbg(pm2->dev, pm2 408 drivers/power/supply/pm2301_charger.c dev_dbg(pm2->dev , "battery fully detected\n"); pm2 412 drivers/power/supply/pm2301_charger.c dev_dbg(pm2->dev, "CV phase enter with 0.5C charging\n"); pm2 416 drivers/power/supply/pm2301_charger.c pm2->failure_case = VPWR_OVV; pm2 417 drivers/power/supply/pm2301_charger.c ret = pm2xxx_charger_ovv_mngt(pm2, val & pm2 419 drivers/power/supply/pm2301_charger.c dev_dbg(pm2->dev, "VPWR/VSYSTEM overvoltage detected\n"); pm2 424 drivers/power/supply/pm2301_charger.c ret = pm2xxx_charger_batt_therm_mngt(pm2, val & pm2 427 drivers/power/supply/pm2301_charger.c dev_dbg(pm2->dev, "BTEMP is too Low/High\n"); pm2 435 drivers/power/supply/pm2301_charger.c struct pm2xxx_charger *pm2 = pm2_data; pm2 439 drivers/power/supply/pm2301_charger.c pm2->failure_case = VSYSTEM_OVV; pm2 440 drivers/power/supply/pm2301_charger.c ret = pm2xxx_charger_ovv_mngt(pm2, val & pm2 442 drivers/power/supply/pm2301_charger.c dev_dbg(pm2->dev, "VSYSTEM overvoltage detected\n"); pm2 449 drivers/power/supply/pm2301_charger.c dev_dbg(pm2->dev, "BTEMP die temperature is too Low/High\n"); pm2 450 drivers/power/supply/pm2301_charger.c ret = pm2xxx_charger_die_therm_mngt(pm2, val & pm2 462 drivers/power/supply/pm2301_charger.c struct pm2xxx_charger *pm2 = pm2_data; pm2 466 drivers/power/supply/pm2301_charger.c dev_dbg(pm2->dev, "VMPWR drop to VBAT level\n"); pm2 473 drivers/power/supply/pm2301_charger.c dev_dbg(pm2->dev, "Falling/Rising edge on WPWR1/2\n"); pm2 481 drivers/power/supply/pm2301_charger.c struct pm2xxx_charger *pm2 = data; pm2 482 drivers/power/supply/pm2301_charger.c struct pm2xxx_interrupts *interrupt = pm2->pm2_int; pm2 486 drivers/power/supply/pm2301_charger.c pm_runtime_get_sync(pm2->dev); pm2 490 drivers/power/supply/pm2301_charger.c pm2xxx_reg_read(pm2, pm2 495 drivers/power/supply/pm2301_charger.c interrupt->handler[i](pm2, interrupt->reg[i]); pm2 497 drivers/power/supply/pm2301_charger.c } while (gpio_get_value(pm2->pdata->gpio_irq_number) == 0); pm2 499 drivers/power/supply/pm2301_charger.c pm_runtime_mark_last_busy(pm2->dev); pm2 500 drivers/power/supply/pm2301_charger.c pm_runtime_put_autosuspend(pm2->dev); pm2 505 drivers/power/supply/pm2301_charger.c static int pm2xxx_charger_get_ac_cv(struct pm2xxx_charger *pm2) pm2 510 drivers/power/supply/pm2301_charger.c if (pm2->ac.charger_connected && pm2->ac.charger_online) { pm2 512 drivers/power/supply/pm2301_charger.c ret = pm2xxx_reg_read(pm2, PM2XXX_SRCE_REG_INT4, &val); pm2 514 drivers/power/supply/pm2301_charger.c dev_err(pm2->dev, "%s pm2xxx read failed\n", __func__); pm2 570 drivers/power/supply/pm2301_charger.c struct pm2xxx_charger *pm2; pm2 574 drivers/power/supply/pm2301_charger.c pm2 = to_pm2xxx_charger_ac_device_info(charger); pm2 580 drivers/power/supply/pm2301_charger.c dev_err(pm2->dev, pm2 585 drivers/power/supply/pm2301_charger.c ret = pm2xxx_reg_read(pm2, PM2XXX_BATT_CTRL_REG6, &val); pm2 589 drivers/power/supply/pm2301_charger.c ret = pm2xxx_reg_write(pm2, PM2XXX_BATT_CTRL_REG6, val); pm2 591 drivers/power/supply/pm2301_charger.c dev_err(pm2->dev, pm2 596 drivers/power/supply/pm2301_charger.c dev_err(pm2->dev, "%s read failed\n", __func__); pm2 605 drivers/power/supply/pm2301_charger.c struct pm2xxx_charger *pm2; pm2 607 drivers/power/supply/pm2301_charger.c pm2 = to_pm2xxx_charger_ac_device_info(psy_to_ux500_charger(psy)); pm2 611 drivers/power/supply/pm2301_charger.c if (pm2->flags.mainextchnotok) pm2 613 drivers/power/supply/pm2301_charger.c else if (pm2->ac.wd_expired) pm2 615 drivers/power/supply/pm2301_charger.c else if (pm2->flags.main_thermal_prot) pm2 617 drivers/power/supply/pm2301_charger.c else if (pm2->flags.ovv) pm2 623 drivers/power/supply/pm2301_charger.c val->intval = pm2->ac.charger_online; pm2 626 drivers/power/supply/pm2301_charger.c val->intval = pm2->ac.charger_connected; pm2 629 drivers/power/supply/pm2301_charger.c pm2->ac.cv_active = pm2xxx_charger_get_ac_cv(pm2); pm2 630 drivers/power/supply/pm2301_charger.c val->intval = pm2->ac.cv_active; pm2 638 drivers/power/supply/pm2301_charger.c static int pm2xxx_charging_init(struct pm2xxx_charger *pm2) pm2 643 drivers/power/supply/pm2301_charger.c ret = pm2xxx_reg_write(pm2, PM2XXX_BATT_CTRL_REG3, pm2 649 drivers/power/supply/pm2301_charger.c ret = pm2xxx_reg_write(pm2, PM2XXX_BATT_CTRL_REG4, pm2 653 drivers/power/supply/pm2301_charger.c ret = pm2xxx_reg_write(pm2, PM2XXX_BATT_CTRL_REG5, pm2 661 drivers/power/supply/pm2301_charger.c ret = pm2xxx_reg_write(pm2, PM2XXX_BATT_CTRL_REG6, pm2 670 drivers/power/supply/pm2301_charger.c ret = pm2xxx_reg_write(pm2, PM2XXX_BATT_CTRL_REG7, pm2 674 drivers/power/supply/pm2301_charger.c ret = pm2xxx_reg_write(pm2, PM2XXX_BATT_CTRL_REG8, pm2 678 drivers/power/supply/pm2301_charger.c ret = pm2xxx_reg_write(pm2, PM2XXX_BATT_CTRL_REG9, pm2 684 drivers/power/supply/pm2301_charger.c ret = pm2xxx_reg_write(pm2, PM2XXX_INP_VOLT_VPWR2, pm2 686 drivers/power/supply/pm2301_charger.c ret = pm2xxx_reg_write(pm2, PM2XXX_INP_VOLT_VPWR1, pm2 690 drivers/power/supply/pm2301_charger.c ret = pm2xxx_reg_write(pm2, PM2XXX_INP_DROP_VPWR2, pm2 693 drivers/power/supply/pm2301_charger.c ret = pm2xxx_reg_write(pm2, PM2XXX_INP_DROP_VPWR1, pm2 698 drivers/power/supply/pm2301_charger.c ret = pm2xxx_reg_write(pm2, PM2XXX_BATT_LOW_LEV_COMP_REG, pm2 712 drivers/power/supply/pm2301_charger.c struct pm2xxx_charger *pm2 = to_pm2xxx_charger_ac_device_info(charger); pm2 715 drivers/power/supply/pm2301_charger.c if (!pm2->ac.charger_connected) { pm2 716 drivers/power/supply/pm2301_charger.c dev_dbg(pm2->dev, "AC charger not connected\n"); pm2 720 drivers/power/supply/pm2301_charger.c dev_dbg(pm2->dev, "Enable AC: %dmV %dmA\n", vset, iset); pm2 721 drivers/power/supply/pm2301_charger.c if (!pm2->vddadc_en_ac) { pm2 722 drivers/power/supply/pm2301_charger.c ret = regulator_enable(pm2->regu); pm2 724 drivers/power/supply/pm2301_charger.c dev_warn(pm2->dev, pm2 727 drivers/power/supply/pm2301_charger.c pm2->vddadc_en_ac = true; pm2 730 drivers/power/supply/pm2301_charger.c ret = pm2xxx_charging_init(pm2); pm2 732 drivers/power/supply/pm2301_charger.c dev_err(pm2->dev, "%s charging init failed\n", pm2 741 drivers/power/supply/pm2301_charger.c dev_err(pm2->dev, pm2 747 drivers/power/supply/pm2301_charger.c ret = pm2xxx_reg_read(pm2, PM2XXX_BATT_CTRL_REG8, &val); pm2 749 drivers/power/supply/pm2301_charger.c dev_err(pm2->dev, "%s pm2xxx read failed\n", __func__); pm2 754 drivers/power/supply/pm2301_charger.c ret = pm2xxx_reg_write(pm2, PM2XXX_BATT_CTRL_REG8, val); pm2 756 drivers/power/supply/pm2301_charger.c dev_err(pm2->dev, "%s pm2xxx write failed\n", __func__); pm2 760 drivers/power/supply/pm2301_charger.c ret = pm2xxx_reg_read(pm2, PM2XXX_BATT_CTRL_REG6, &val); pm2 762 drivers/power/supply/pm2301_charger.c dev_err(pm2->dev, "%s pm2xxx read failed\n", __func__); pm2 767 drivers/power/supply/pm2301_charger.c ret = pm2xxx_reg_write(pm2, PM2XXX_BATT_CTRL_REG6, val); pm2 769 drivers/power/supply/pm2301_charger.c dev_err(pm2->dev, "%s pm2xxx write failed\n", __func__); pm2 773 drivers/power/supply/pm2301_charger.c if (!pm2->bat->enable_overshoot) { pm2 774 drivers/power/supply/pm2301_charger.c ret = pm2xxx_reg_read(pm2, PM2XXX_LED_CTRL_REG, &val); pm2 776 drivers/power/supply/pm2301_charger.c dev_err(pm2->dev, "%s pm2xxx read failed\n", pm2 781 drivers/power/supply/pm2301_charger.c ret = pm2xxx_reg_write(pm2, PM2XXX_LED_CTRL_REG, val); pm2 783 drivers/power/supply/pm2301_charger.c dev_err(pm2->dev, "%s pm2xxx write failed\n", pm2 789 drivers/power/supply/pm2301_charger.c ret = pm2xxx_charging_enable_mngt(pm2); pm2 791 drivers/power/supply/pm2301_charger.c dev_err(pm2->dev, "Failed to enable" pm2 796 drivers/power/supply/pm2301_charger.c pm2->ac.charger_online = 1; pm2 798 drivers/power/supply/pm2301_charger.c pm2->ac.charger_online = 0; pm2 799 drivers/power/supply/pm2301_charger.c pm2->ac.wd_expired = false; pm2 802 drivers/power/supply/pm2301_charger.c if (pm2->vddadc_en_ac) { pm2 803 drivers/power/supply/pm2301_charger.c regulator_disable(pm2->regu); pm2 804 drivers/power/supply/pm2301_charger.c pm2->vddadc_en_ac = false; pm2 807 drivers/power/supply/pm2301_charger.c ret = pm2xxx_charging_disable_mngt(pm2); pm2 809 drivers/power/supply/pm2301_charger.c dev_err(pm2->dev, "failed to disable" pm2 814 drivers/power/supply/pm2301_charger.c dev_dbg(pm2->dev, "PM2301: " "Disabled AC charging\n"); pm2 816 drivers/power/supply/pm2301_charger.c power_supply_changed(pm2->ac_chg.psy); pm2 825 drivers/power/supply/pm2301_charger.c struct pm2xxx_charger *pm2; pm2 828 drivers/power/supply/pm2301_charger.c pm2 = to_pm2xxx_charger_ac_device_info(charger); pm2 832 drivers/power/supply/pm2301_charger.c ret = pm2xxx_reg_write(pm2, PM2XXX_BATT_WD_KICK, WD_TIMER); pm2 834 drivers/power/supply/pm2301_charger.c dev_err(pm2->dev, "Failed to kick WD!\n"); pm2 841 drivers/power/supply/pm2301_charger.c struct pm2xxx_charger *pm2 = container_of(work, pm2 845 drivers/power/supply/pm2301_charger.c power_supply_changed(pm2->ac_chg.psy); pm2 846 drivers/power/supply/pm2301_charger.c sysfs_notify(&pm2->ac_chg.psy->dev.kobj, NULL, "present"); pm2 853 drivers/power/supply/pm2301_charger.c struct pm2xxx_charger *pm2 = container_of(work, pm2 856 drivers/power/supply/pm2301_charger.c if (pm2->flags.ovv) { pm2 857 drivers/power/supply/pm2301_charger.c pm2xxx_reg_read(pm2, PM2XXX_SRCE_REG_INT4, ®_value); pm2 861 drivers/power/supply/pm2301_charger.c pm2->flags.ovv = false; pm2 862 drivers/power/supply/pm2301_charger.c power_supply_changed(pm2->ac_chg.psy); pm2 867 drivers/power/supply/pm2301_charger.c if (pm2->flags.ovv) { pm2 868 drivers/power/supply/pm2301_charger.c queue_delayed_work(pm2->charger_wq, pm2 869 drivers/power/supply/pm2301_charger.c &pm2->check_hw_failure_work, round_jiffies(HZ)); pm2 879 drivers/power/supply/pm2301_charger.c struct pm2xxx_charger *pm2 = container_of(work, struct pm2xxx_charger, pm2 883 drivers/power/supply/pm2301_charger.c ret = pm2xxx_reg_read(pm2, PM2XXX_SRCE_REG_INT5, &val); pm2 885 drivers/power/supply/pm2301_charger.c dev_err(pm2->dev, "%s pm2xxx read failed\n", __func__); pm2 890 drivers/power/supply/pm2301_charger.c pm2->flags.main_thermal_prot = true; pm2 893 drivers/power/supply/pm2301_charger.c pm2->flags.main_thermal_prot = false; pm2 895 drivers/power/supply/pm2301_charger.c power_supply_changed(pm2->ac_chg.psy); pm2 914 drivers/power/supply/pm2301_charger.c struct pm2xxx_charger *pm2; pm2 916 drivers/power/supply/pm2301_charger.c pm2 = (struct pm2xxx_charger *)i2c_get_clientdata(i2c_client); pm2 917 drivers/power/supply/pm2301_charger.c set_lpn_pin(pm2); pm2 920 drivers/power/supply/pm2301_charger.c if (pm2->flags.ovv) pm2 921 drivers/power/supply/pm2301_charger.c queue_delayed_work(pm2->charger_wq, pm2 922 drivers/power/supply/pm2301_charger.c &pm2->check_hw_failure_work, 0); pm2 930 drivers/power/supply/pm2301_charger.c struct pm2xxx_charger *pm2; pm2 932 drivers/power/supply/pm2301_charger.c pm2 = (struct pm2xxx_charger *)i2c_get_clientdata(i2c_client); pm2 933 drivers/power/supply/pm2301_charger.c clear_lpn_pin(pm2); pm2 936 drivers/power/supply/pm2301_charger.c if (delayed_work_pending(&pm2->check_hw_failure_work)) pm2 937 drivers/power/supply/pm2301_charger.c cancel_delayed_work(&pm2->check_hw_failure_work); pm2 939 drivers/power/supply/pm2301_charger.c flush_work(&pm2->ac_work); pm2 940 drivers/power/supply/pm2301_charger.c flush_work(&pm2->check_main_thermal_prot_work); pm2 948 drivers/power/supply/pm2301_charger.c struct pm2xxx_charger *pm2; pm2 950 drivers/power/supply/pm2301_charger.c pm2 = (struct pm2xxx_charger *)i2c_get_clientdata(pm2xxx_i2c_client); pm2 951 drivers/power/supply/pm2301_charger.c clear_lpn_pin(pm2); pm2 959 drivers/power/supply/pm2301_charger.c struct pm2xxx_charger *pm2; pm2 961 drivers/power/supply/pm2301_charger.c pm2 = (struct pm2xxx_charger *)i2c_get_clientdata(pm2xxx_i2c_client); pm2 963 drivers/power/supply/pm2301_charger.c if (gpio_is_valid(pm2->lpn_pin) && gpio_get_value(pm2->lpn_pin) == 0) pm2 964 drivers/power/supply/pm2301_charger.c set_lpn_pin(pm2); pm2 980 drivers/power/supply/pm2301_charger.c struct pm2xxx_charger *pm2; pm2 990 drivers/power/supply/pm2301_charger.c pm2 = kzalloc(sizeof(struct pm2xxx_charger), GFP_KERNEL); pm2 991 drivers/power/supply/pm2301_charger.c if (!pm2) { pm2 997 drivers/power/supply/pm2301_charger.c pm2->dev = &i2c_client->dev; pm2 999 drivers/power/supply/pm2301_charger.c pm2->pm2_int = &pm2xxx_int; pm2 1003 drivers/power/supply/pm2301_charger.c dev_err(pm2->dev, "no charger platform data supplied\n"); pm2 1008 drivers/power/supply/pm2301_charger.c pm2->pdata = pl_data->wall_charger; pm2 1012 drivers/power/supply/pm2301_charger.c dev_err(pm2->dev, "no battery platform data supplied\n"); pm2 1017 drivers/power/supply/pm2301_charger.c pm2->bat = pl_data->battery; pm2 1023 drivers/power/supply/pm2301_charger.c dev_info(pm2->dev, "pm2301 i2c_check_functionality failed\n"); pm2 1027 drivers/power/supply/pm2301_charger.c pm2->config.pm2xxx_i2c = i2c_client; pm2 1028 drivers/power/supply/pm2301_charger.c pm2->config.pm2xxx_id = (struct i2c_device_id *) id; pm2 1029 drivers/power/supply/pm2301_charger.c i2c_set_clientdata(i2c_client, pm2); pm2 1033 drivers/power/supply/pm2301_charger.c pm2->ac_chg_desc.name = pm2->pdata->label; pm2 1034 drivers/power/supply/pm2301_charger.c pm2->ac_chg_desc.type = POWER_SUPPLY_TYPE_MAINS; pm2 1035 drivers/power/supply/pm2301_charger.c pm2->ac_chg_desc.properties = pm2xxx_charger_ac_props; pm2 1036 drivers/power/supply/pm2301_charger.c pm2->ac_chg_desc.num_properties = ARRAY_SIZE(pm2xxx_charger_ac_props); pm2 1037 drivers/power/supply/pm2301_charger.c pm2->ac_chg_desc.get_property = pm2xxx_charger_ac_get_property; pm2 1039 drivers/power/supply/pm2301_charger.c psy_cfg.supplied_to = pm2->pdata->supplied_to; pm2 1040 drivers/power/supply/pm2301_charger.c psy_cfg.num_supplicants = pm2->pdata->num_supplicants; pm2 1042 drivers/power/supply/pm2301_charger.c pm2->ac_chg.ops.enable = &pm2xxx_charger_ac_en; pm2 1043 drivers/power/supply/pm2301_charger.c pm2->ac_chg.ops.kick_wd = &pm2xxx_charger_watchdog_kick; pm2 1044 drivers/power/supply/pm2301_charger.c pm2->ac_chg.ops.update_curr = &pm2xxx_charger_update_charger_current; pm2 1045 drivers/power/supply/pm2301_charger.c pm2->ac_chg.max_out_volt = pm2xxx_charger_voltage_map[ pm2 1047 drivers/power/supply/pm2301_charger.c pm2->ac_chg.max_out_curr = pm2xxx_charger_current_map[ pm2 1049 drivers/power/supply/pm2301_charger.c pm2->ac_chg.wdt_refresh = WD_KICK_INTERVAL; pm2 1050 drivers/power/supply/pm2301_charger.c pm2->ac_chg.enabled = true; pm2 1051 drivers/power/supply/pm2301_charger.c pm2->ac_chg.external = true; pm2 1054 drivers/power/supply/pm2301_charger.c pm2->charger_wq = alloc_ordered_workqueue("pm2xxx_charger_wq", pm2 1056 drivers/power/supply/pm2301_charger.c if (pm2->charger_wq == NULL) { pm2 1058 drivers/power/supply/pm2301_charger.c dev_err(pm2->dev, "failed to create work queue\n"); pm2 1063 drivers/power/supply/pm2301_charger.c INIT_WORK(&pm2->ac_work, pm2xxx_charger_ac_work); pm2 1066 drivers/power/supply/pm2301_charger.c INIT_WORK(&pm2->check_main_thermal_prot_work, pm2 1070 drivers/power/supply/pm2301_charger.c INIT_DEFERRABLE_WORK(&pm2->check_hw_failure_work, pm2 1078 drivers/power/supply/pm2301_charger.c pm2->regu = regulator_get(pm2->dev, "vddadc"); pm2 1079 drivers/power/supply/pm2301_charger.c if (IS_ERR(pm2->regu)) { pm2 1080 drivers/power/supply/pm2301_charger.c ret = PTR_ERR(pm2->regu); pm2 1081 drivers/power/supply/pm2301_charger.c dev_err(pm2->dev, "failed to get vddadc regulator\n"); pm2 1086 drivers/power/supply/pm2301_charger.c pm2->ac_chg.psy = power_supply_register(pm2->dev, &pm2->ac_chg_desc, pm2 1088 drivers/power/supply/pm2301_charger.c if (IS_ERR(pm2->ac_chg.psy)) { pm2 1089 drivers/power/supply/pm2301_charger.c dev_err(pm2->dev, "failed to register AC charger\n"); pm2 1090 drivers/power/supply/pm2301_charger.c ret = PTR_ERR(pm2->ac_chg.psy); pm2 1095 drivers/power/supply/pm2301_charger.c ret = request_threaded_irq(gpio_to_irq(pm2->pdata->gpio_irq_number), pm2 1098 drivers/power/supply/pm2301_charger.c pm2->pdata->irq_type, pm2 1099 drivers/power/supply/pm2301_charger.c pm2xxx_charger_irq[0].name, pm2); pm2 1102 drivers/power/supply/pm2301_charger.c dev_err(pm2->dev, "failed to request %s IRQ %d: %d\n", pm2 1104 drivers/power/supply/pm2301_charger.c gpio_to_irq(pm2->pdata->gpio_irq_number), ret); pm2 1108 drivers/power/supply/pm2301_charger.c ret = pm_runtime_set_active(pm2->dev); pm2 1110 drivers/power/supply/pm2301_charger.c dev_err(pm2->dev, "set active Error\n"); pm2 1112 drivers/power/supply/pm2301_charger.c pm_runtime_enable(pm2->dev); pm2 1113 drivers/power/supply/pm2301_charger.c pm_runtime_set_autosuspend_delay(pm2->dev, PM2XXX_AUTOSUSPEND_DELAY); pm2 1114 drivers/power/supply/pm2301_charger.c pm_runtime_use_autosuspend(pm2->dev); pm2 1115 drivers/power/supply/pm2301_charger.c pm_runtime_resume(pm2->dev); pm2 1118 drivers/power/supply/pm2301_charger.c ret = enable_irq_wake(gpio_to_irq(pm2->pdata->gpio_irq_number)); pm2 1120 drivers/power/supply/pm2301_charger.c dev_err(pm2->dev, "failed to set irq wake\n"); pm2 1124 drivers/power/supply/pm2301_charger.c mutex_init(&pm2->lock); pm2 1126 drivers/power/supply/pm2301_charger.c if (gpio_is_valid(pm2->pdata->lpn_gpio)) { pm2 1128 drivers/power/supply/pm2301_charger.c pm2->lpn_pin = pm2->pdata->lpn_gpio; pm2 1135 drivers/power/supply/pm2301_charger.c ret = gpio_request(pm2->lpn_pin, "pm2301_lpm_gpio"); pm2 1138 drivers/power/supply/pm2301_charger.c dev_err(pm2->dev, "pm2301_lpm_gpio request failed\n"); pm2 1141 drivers/power/supply/pm2301_charger.c ret = gpio_direction_output(pm2->lpn_pin, 0); pm2 1143 drivers/power/supply/pm2301_charger.c dev_err(pm2->dev, "pm2301_lpm_gpio direction failed\n"); pm2 1146 drivers/power/supply/pm2301_charger.c set_lpn_pin(pm2); pm2 1151 drivers/power/supply/pm2301_charger.c pm2xxx_reg_read(pm2, pm2 1155 drivers/power/supply/pm2301_charger.c ret = pm2xxx_charger_detection(pm2, &val); pm2 1158 drivers/power/supply/pm2301_charger.c pm2->ac.charger_connected = 1; pm2 1161 drivers/power/supply/pm2301_charger.c pm2->ac_conn = true; pm2 1162 drivers/power/supply/pm2301_charger.c power_supply_changed(pm2->ac_chg.psy); pm2 1163 drivers/power/supply/pm2301_charger.c sysfs_notify(&pm2->ac_chg.psy->dev.kobj, NULL, "present"); pm2 1169 drivers/power/supply/pm2301_charger.c if (gpio_is_valid(pm2->lpn_pin)) pm2 1170 drivers/power/supply/pm2301_charger.c gpio_free(pm2->lpn_pin); pm2 1172 drivers/power/supply/pm2301_charger.c disable_irq_wake(gpio_to_irq(pm2->pdata->gpio_irq_number)); pm2 1175 drivers/power/supply/pm2301_charger.c free_irq(gpio_to_irq(pm2->pdata->gpio_irq_number), pm2); pm2 1178 drivers/power/supply/pm2301_charger.c power_supply_unregister(pm2->ac_chg.psy); pm2 1181 drivers/power/supply/pm2301_charger.c regulator_put(pm2->regu); pm2 1183 drivers/power/supply/pm2301_charger.c destroy_workqueue(pm2->charger_wq); pm2 1185 drivers/power/supply/pm2301_charger.c kfree(pm2); pm2 1192 drivers/power/supply/pm2301_charger.c struct pm2xxx_charger *pm2 = i2c_get_clientdata(i2c_client); pm2 1195 drivers/power/supply/pm2301_charger.c pm_runtime_disable(pm2->dev); pm2 1197 drivers/power/supply/pm2301_charger.c pm2xxx_charger_ac_en(&pm2->ac_chg, false, 0, 0); pm2 1200 drivers/power/supply/pm2301_charger.c disable_irq_wake(gpio_to_irq(pm2->pdata->gpio_irq_number)); pm2 1203 drivers/power/supply/pm2301_charger.c free_irq(gpio_to_irq(pm2->pdata->gpio_irq_number), pm2); pm2 1206 drivers/power/supply/pm2301_charger.c destroy_workqueue(pm2->charger_wq); pm2 1211 drivers/power/supply/pm2301_charger.c regulator_put(pm2->regu); pm2 1213 drivers/power/supply/pm2301_charger.c power_supply_unregister(pm2->ac_chg.psy); pm2 1215 drivers/power/supply/pm2301_charger.c if (gpio_is_valid(pm2->lpn_pin)) pm2 1216 drivers/power/supply/pm2301_charger.c gpio_free(pm2->lpn_pin); pm2 1218 drivers/power/supply/pm2301_charger.c kfree(pm2); pm2 7315 fs/btrfs/send.c struct pending_dir_move *pm2; pm2 7317 fs/btrfs/send.c pm2 = list_first_entry(&pm->list, pm2 7319 fs/btrfs/send.c free_pending_move(sctx, pm2); pm2 896 sound/soc/codecs/wm8960.c u16 pm2 = snd_soc_component_read32(component, WM8960_POWER2); pm2 929 sound/soc/codecs/wm8960.c if (wm8960->clk_id == WM8960_SYSCLK_AUTO && (pm2 & 0x1)) pm2 986 sound/soc/codecs/wm8960.c u16 pm2 = snd_soc_component_read32(component, WM8960_POWER2); pm2 1050 sound/soc/codecs/wm8960.c if (wm8960->clk_id == WM8960_SYSCLK_AUTO && (pm2 & 0x1))