max8997 629 drivers/extcon/extcon-max8997.c struct max8997_dev *max8997 = dev_get_drvdata(pdev->dev.parent); max8997 630 drivers/extcon/extcon-max8997.c struct max8997_platform_data *pdata = dev_get_platdata(max8997->dev); max8997 643 drivers/extcon/extcon-max8997.c info->muic = max8997->muic; max8997 654 drivers/extcon/extcon-max8997.c virq = irq_create_mapping(max8997->irq_domain, muic_irq->irq); max8997 231 drivers/leds/leds-max8997.c ATTRIBUTE_GROUPS(max8997); max8997 30 drivers/mfd/max8997-irq.c static struct i2c_client *get_i2c(struct max8997_dev *max8997, max8997 35 drivers/mfd/max8997-irq.c return max8997->i2c; max8997 39 drivers/mfd/max8997-irq.c return max8997->muic; max8997 41 drivers/mfd/max8997-irq.c return max8997->i2c; max8997 43 drivers/mfd/max8997-irq.c return max8997->i2c; max8997 102 drivers/mfd/max8997-irq.c struct max8997_dev *max8997 = irq_data_get_irq_chip_data(data); max8997 104 drivers/mfd/max8997-irq.c mutex_lock(&max8997->irqlock); max8997 109 drivers/mfd/max8997-irq.c struct max8997_dev *max8997 = irq_data_get_irq_chip_data(data); max8997 114 drivers/mfd/max8997-irq.c struct i2c_client *i2c = get_i2c(max8997, i); max8997 119 drivers/mfd/max8997-irq.c max8997->irq_masks_cache[i] = max8997->irq_masks_cur[i]; max8997 122 drivers/mfd/max8997-irq.c max8997->irq_masks_cur[i]); max8997 125 drivers/mfd/max8997-irq.c mutex_unlock(&max8997->irqlock); max8997 129 drivers/mfd/max8997-irq.c irq_to_max8997_irq(struct max8997_dev *max8997, struct irq_data *data) max8997 136 drivers/mfd/max8997-irq.c struct max8997_dev *max8997 = irq_data_get_irq_chip_data(data); max8997 137 drivers/mfd/max8997-irq.c const struct max8997_irq_data *irq_data = irq_to_max8997_irq(max8997, max8997 140 drivers/mfd/max8997-irq.c max8997->irq_masks_cur[irq_data->group] |= irq_data->mask; max8997 145 drivers/mfd/max8997-irq.c struct max8997_dev *max8997 = irq_data_get_irq_chip_data(data); max8997 146 drivers/mfd/max8997-irq.c const struct max8997_irq_data *irq_data = irq_to_max8997_irq(max8997, max8997 149 drivers/mfd/max8997-irq.c max8997->irq_masks_cur[irq_data->group] &= ~irq_data->mask; max8997 167 drivers/mfd/max8997-irq.c struct max8997_dev *max8997 = data; max8997 173 drivers/mfd/max8997-irq.c ret = max8997_read_reg(max8997->i2c, MAX8997_REG_INTSRC, &irq_src); max8997 175 drivers/mfd/max8997-irq.c dev_err(max8997->dev, "Failed to read interrupt source: %d\n", max8997 182 drivers/mfd/max8997-irq.c max8997_bulk_read(max8997->i2c, MAX8997_REG_INT1, 4, max8997 203 drivers/mfd/max8997-irq.c max8997_bulk_read(max8997->muic, MAX8997_MUIC_REG_INT1, 3, max8997 213 drivers/mfd/max8997-irq.c max8997_bulk_read(max8997->i2c, MAX8997_REG_GPIOCNTL1, max8997 220 drivers/mfd/max8997-irq.c if (max8997->gpio_status[i] != gpio_info[i]) max8997 224 drivers/mfd/max8997-irq.c if ((max8997->gpio_status[i] != gpio_info[i]) && max8997 229 drivers/mfd/max8997-irq.c if ((max8997->gpio_status[i] != gpio_info[i]) && max8997 248 drivers/mfd/max8997-irq.c ret = max8997_read_reg(max8997->i2c, MAX8997_REG_FLASHSTATUS, max8997 254 drivers/mfd/max8997-irq.c irq_reg[i] &= ~max8997->irq_masks_cur[i]; max8997 259 drivers/mfd/max8997-irq.c cur_irq = irq_find_mapping(max8997->irq_domain, i); max8997 268 drivers/mfd/max8997-irq.c int max8997_irq_resume(struct max8997_dev *max8997) max8997 270 drivers/mfd/max8997-irq.c if (max8997->irq && max8997->irq_domain) max8997 271 drivers/mfd/max8997-irq.c max8997_irq_thread(0, max8997); max8997 278 drivers/mfd/max8997-irq.c struct max8997_dev *max8997 = d->host_data; max8997 280 drivers/mfd/max8997-irq.c irq_set_chip_data(irq, max8997); max8997 292 drivers/mfd/max8997-irq.c int max8997_irq_init(struct max8997_dev *max8997) max8997 299 drivers/mfd/max8997-irq.c if (!max8997->irq) { max8997 300 drivers/mfd/max8997-irq.c dev_warn(max8997->dev, "No interrupt specified.\n"); max8997 304 drivers/mfd/max8997-irq.c mutex_init(&max8997->irqlock); max8997 310 drivers/mfd/max8997-irq.c max8997->irq_masks_cur[i] = 0xff; max8997 311 drivers/mfd/max8997-irq.c max8997->irq_masks_cache[i] = 0xff; max8997 312 drivers/mfd/max8997-irq.c i2c = get_i2c(max8997, i); max8997 323 drivers/mfd/max8997-irq.c max8997->gpio_status[i] = (max8997_read_reg(max8997->i2c, max8997 331 drivers/mfd/max8997-irq.c &max8997_irq_domain_ops, max8997); max8997 333 drivers/mfd/max8997-irq.c dev_err(max8997->dev, "could not create irq domain\n"); max8997 336 drivers/mfd/max8997-irq.c max8997->irq_domain = domain; max8997 338 drivers/mfd/max8997-irq.c ret = request_threaded_irq(max8997->irq, NULL, max8997_irq_thread, max8997 340 drivers/mfd/max8997-irq.c "max8997-irq", max8997); max8997 343 drivers/mfd/max8997-irq.c dev_err(max8997->dev, "Failed to request IRQ %d: %d\n", max8997 344 drivers/mfd/max8997-irq.c max8997->irq, ret); max8997 348 drivers/mfd/max8997-irq.c if (!max8997->ono) max8997 351 drivers/mfd/max8997-irq.c ret = request_threaded_irq(max8997->ono, NULL, max8997_irq_thread, max8997 353 drivers/mfd/max8997-irq.c IRQF_ONESHOT, "max8997-ono", max8997); max8997 356 drivers/mfd/max8997-irq.c dev_err(max8997->dev, "Failed to request ono-IRQ %d: %d\n", max8997 357 drivers/mfd/max8997-irq.c max8997->ono, ret); max8997 362 drivers/mfd/max8997-irq.c void max8997_irq_exit(struct max8997_dev *max8997) max8997 364 drivers/mfd/max8997-irq.c if (max8997->ono) max8997 365 drivers/mfd/max8997-irq.c free_irq(max8997->ono, max8997); max8997 367 drivers/mfd/max8997-irq.c if (max8997->irq) max8997 368 drivers/mfd/max8997-irq.c free_irq(max8997->irq, max8997); max8997 48 drivers/mfd/max8997.c struct max8997_dev *max8997 = i2c_get_clientdata(i2c); max8997 51 drivers/mfd/max8997.c mutex_lock(&max8997->iolock); max8997 53 drivers/mfd/max8997.c mutex_unlock(&max8997->iolock); max8997 65 drivers/mfd/max8997.c struct max8997_dev *max8997 = i2c_get_clientdata(i2c); max8997 68 drivers/mfd/max8997.c mutex_lock(&max8997->iolock); max8997 70 drivers/mfd/max8997.c mutex_unlock(&max8997->iolock); max8997 80 drivers/mfd/max8997.c struct max8997_dev *max8997 = i2c_get_clientdata(i2c); max8997 83 drivers/mfd/max8997.c mutex_lock(&max8997->iolock); max8997 85 drivers/mfd/max8997.c mutex_unlock(&max8997->iolock); max8997 92 drivers/mfd/max8997.c struct max8997_dev *max8997 = i2c_get_clientdata(i2c); max8997 95 drivers/mfd/max8997.c mutex_lock(&max8997->iolock); max8997 97 drivers/mfd/max8997.c mutex_unlock(&max8997->iolock); max8997 107 drivers/mfd/max8997.c struct max8997_dev *max8997 = i2c_get_clientdata(i2c); max8997 110 drivers/mfd/max8997.c mutex_lock(&max8997->iolock); max8997 117 drivers/mfd/max8997.c mutex_unlock(&max8997->iolock); max8997 159 drivers/mfd/max8997.c struct max8997_dev *max8997; max8997 163 drivers/mfd/max8997.c max8997 = devm_kzalloc(&i2c->dev, sizeof(struct max8997_dev), max8997 165 drivers/mfd/max8997.c if (max8997 == NULL) max8997 168 drivers/mfd/max8997.c i2c_set_clientdata(i2c, max8997); max8997 169 drivers/mfd/max8997.c max8997->dev = &i2c->dev; max8997 170 drivers/mfd/max8997.c max8997->i2c = i2c; max8997 171 drivers/mfd/max8997.c max8997->type = max8997_i2c_get_driver_data(i2c, id); max8997 172 drivers/mfd/max8997.c max8997->irq = i2c->irq; max8997 174 drivers/mfd/max8997.c if (IS_ENABLED(CONFIG_OF) && max8997->dev->of_node) { max8997 175 drivers/mfd/max8997.c pdata = max8997_i2c_parse_dt_pdata(max8997->dev); max8997 183 drivers/mfd/max8997.c max8997->pdata = pdata; max8997 184 drivers/mfd/max8997.c max8997->ono = pdata->ono; max8997 186 drivers/mfd/max8997.c mutex_init(&max8997->iolock); max8997 188 drivers/mfd/max8997.c max8997->rtc = i2c_new_dummy_device(i2c->adapter, I2C_ADDR_RTC); max8997 189 drivers/mfd/max8997.c if (IS_ERR(max8997->rtc)) { max8997 190 drivers/mfd/max8997.c dev_err(max8997->dev, "Failed to allocate I2C device for RTC\n"); max8997 191 drivers/mfd/max8997.c return PTR_ERR(max8997->rtc); max8997 193 drivers/mfd/max8997.c i2c_set_clientdata(max8997->rtc, max8997); max8997 195 drivers/mfd/max8997.c max8997->haptic = i2c_new_dummy_device(i2c->adapter, I2C_ADDR_HAPTIC); max8997 196 drivers/mfd/max8997.c if (IS_ERR(max8997->haptic)) { max8997 197 drivers/mfd/max8997.c dev_err(max8997->dev, "Failed to allocate I2C device for Haptic\n"); max8997 198 drivers/mfd/max8997.c ret = PTR_ERR(max8997->haptic); max8997 201 drivers/mfd/max8997.c i2c_set_clientdata(max8997->haptic, max8997); max8997 203 drivers/mfd/max8997.c max8997->muic = i2c_new_dummy_device(i2c->adapter, I2C_ADDR_MUIC); max8997 204 drivers/mfd/max8997.c if (IS_ERR(max8997->muic)) { max8997 205 drivers/mfd/max8997.c dev_err(max8997->dev, "Failed to allocate I2C device for MUIC\n"); max8997 206 drivers/mfd/max8997.c ret = PTR_ERR(max8997->muic); max8997 209 drivers/mfd/max8997.c i2c_set_clientdata(max8997->muic, max8997); max8997 211 drivers/mfd/max8997.c pm_runtime_set_active(max8997->dev); max8997 213 drivers/mfd/max8997.c max8997_irq_init(max8997); max8997 215 drivers/mfd/max8997.c ret = mfd_add_devices(max8997->dev, -1, max8997_devs, max8997 219 drivers/mfd/max8997.c dev_err(max8997->dev, "failed to add MFD devices %d\n", ret); max8997 229 drivers/mfd/max8997.c device_init_wakeup(max8997->dev, true); max8997 234 drivers/mfd/max8997.c mfd_remove_devices(max8997->dev); max8997 235 drivers/mfd/max8997.c i2c_unregister_device(max8997->muic); max8997 237 drivers/mfd/max8997.c i2c_unregister_device(max8997->haptic); max8997 239 drivers/mfd/max8997.c i2c_unregister_device(max8997->rtc); max8997 405 drivers/mfd/max8997.c struct max8997_dev *max8997 = i2c_get_clientdata(i2c); max8997 410 drivers/mfd/max8997.c &max8997->reg_dump[i]); max8997 414 drivers/mfd/max8997.c &max8997->reg_dump[i + MAX8997_REG_PMIC_END]); max8997 418 drivers/mfd/max8997.c &max8997->reg_dump[i + MAX8997_REG_PMIC_END + max8997 427 drivers/mfd/max8997.c struct max8997_dev *max8997 = i2c_get_clientdata(i2c); max8997 432 drivers/mfd/max8997.c max8997->reg_dump[i]); max8997 436 drivers/mfd/max8997.c max8997->reg_dump[i + MAX8997_REG_PMIC_END]); max8997 440 drivers/mfd/max8997.c max8997->reg_dump[i + MAX8997_REG_PMIC_END + max8997 449 drivers/mfd/max8997.c struct max8997_dev *max8997 = i2c_get_clientdata(i2c); max8997 451 drivers/mfd/max8997.c disable_irq(max8997->irq); max8997 453 drivers/mfd/max8997.c irq_set_irq_wake(max8997->irq, 1); max8997 460 drivers/mfd/max8997.c struct max8997_dev *max8997 = i2c_get_clientdata(i2c); max8997 463 drivers/mfd/max8997.c irq_set_irq_wake(max8997->irq, 0); max8997 464 drivers/mfd/max8997.c enable_irq(max8997->irq); max8997 465 drivers/mfd/max8997.c return max8997_irq_resume(max8997); max8997 49 drivers/regulator/max8997-regulator.c static inline void max8997_set_gpio(struct max8997_data *max8997) max8997 51 drivers/regulator/max8997-regulator.c int set3 = (max8997->buck125_gpioindex) & 0x1; max8997 52 drivers/regulator/max8997-regulator.c int set2 = ((max8997->buck125_gpioindex) >> 1) & 0x1; max8997 53 drivers/regulator/max8997-regulator.c int set1 = ((max8997->buck125_gpioindex) >> 2) & 0x1; max8997 55 drivers/regulator/max8997-regulator.c gpio_set_value(max8997->buck125_gpios[0], set1); max8997 56 drivers/regulator/max8997-regulator.c gpio_set_value(max8997->buck125_gpios[1], set2); max8997 57 drivers/regulator/max8997-regulator.c gpio_set_value(max8997->buck125_gpios[2], set3); max8997 244 drivers/regulator/max8997-regulator.c struct max8997_data *max8997 = rdev_get_drvdata(rdev); max8997 245 drivers/regulator/max8997-regulator.c struct i2c_client *i2c = max8997->iodev->i2c; max8997 262 drivers/regulator/max8997-regulator.c struct max8997_data *max8997 = rdev_get_drvdata(rdev); max8997 263 drivers/regulator/max8997-regulator.c struct i2c_client *i2c = max8997->iodev->i2c; max8997 275 drivers/regulator/max8997-regulator.c struct max8997_data *max8997 = rdev_get_drvdata(rdev); max8997 276 drivers/regulator/max8997-regulator.c struct i2c_client *i2c = max8997->iodev->i2c; max8997 289 drivers/regulator/max8997-regulator.c struct max8997_data *max8997 = rdev_get_drvdata(rdev); max8997 299 drivers/regulator/max8997-regulator.c if (max8997->buck1_gpiodvs) max8997 300 drivers/regulator/max8997-regulator.c reg += max8997->buck125_gpioindex; max8997 304 drivers/regulator/max8997-regulator.c if (max8997->buck2_gpiodvs) max8997 305 drivers/regulator/max8997-regulator.c reg += max8997->buck125_gpioindex; max8997 315 drivers/regulator/max8997-regulator.c if (max8997->buck5_gpiodvs) max8997 316 drivers/regulator/max8997-regulator.c reg += max8997->buck125_gpioindex; max8997 354 drivers/regulator/max8997-regulator.c struct max8997_data *max8997 = rdev_get_drvdata(rdev); max8997 355 drivers/regulator/max8997-regulator.c struct i2c_client *i2c = max8997->iodev->i2c; max8997 399 drivers/regulator/max8997-regulator.c struct max8997_data *max8997 = rdev_get_drvdata(rdev); max8997 400 drivers/regulator/max8997-regulator.c struct i2c_client *i2c = max8997->iodev->i2c; max8997 451 drivers/regulator/max8997-regulator.c struct max8997_data *max8997 = rdev_get_drvdata(rdev); max8997 452 drivers/regulator/max8997-regulator.c struct i2c_client *i2c = max8997->iodev->i2c; max8997 494 drivers/regulator/max8997-regulator.c struct max8997_data *max8997 = rdev_get_drvdata(rdev); max8997 505 drivers/regulator/max8997-regulator.c if (max8997->buck1_gpiodvs) max8997 509 drivers/regulator/max8997-regulator.c if (max8997->buck2_gpiodvs) max8997 513 drivers/regulator/max8997-regulator.c if (max8997->buck5_gpiodvs) max8997 524 drivers/regulator/max8997-regulator.c max8997->ramp_delay * 1000); max8997 541 drivers/regulator/max8997-regulator.c struct max8997_data *max8997 = rdev_get_drvdata(rdev); max8997 565 drivers/regulator/max8997-regulator.c buckx_val[0] = max8997->buck1_vol; max8997 566 drivers/regulator/max8997-regulator.c buckx_val[1] = max8997->buck2_vol; max8997 567 drivers/regulator/max8997-regulator.c buckx_val[2] = max8997->buck5_vol; max8997 568 drivers/regulator/max8997-regulator.c buckx_gpiodvs[0] = max8997->buck1_gpiodvs; max8997 569 drivers/regulator/max8997-regulator.c buckx_gpiodvs[1] = max8997->buck2_gpiodvs; max8997 570 drivers/regulator/max8997-regulator.c buckx_gpiodvs[2] = max8997->buck5_gpiodvs; max8997 589 drivers/regulator/max8997-regulator.c (buckx_val[others])[max8997->buck125_gpioindex]; max8997 618 drivers/regulator/max8997-regulator.c struct max8997_data *max8997 = rdev_get_drvdata(rdev); max8997 629 drivers/regulator/max8997-regulator.c if (max8997->buck1_gpiodvs) max8997 633 drivers/regulator/max8997-regulator.c if (max8997->buck2_gpiodvs) max8997 637 drivers/regulator/max8997-regulator.c if (max8997->buck5_gpiodvs) max8997 671 drivers/regulator/max8997-regulator.c if (max8997->ignore_gpiodvs_side_effect == false) max8997 676 drivers/regulator/max8997-regulator.c max8997->buck125_gpioindex, tmp_idx); max8997 682 drivers/regulator/max8997-regulator.c max8997->buck125_gpioindex = new_idx; max8997 683 drivers/regulator/max8997-regulator.c max8997_set_gpio(max8997); max8997 693 drivers/regulator/max8997-regulator.c struct max8997_data *max8997 = rdev_get_drvdata(rdev); max8997 694 drivers/regulator/max8997-regulator.c struct i2c_client *i2c = max8997->iodev->i2c; max8997 710 drivers/regulator/max8997-regulator.c struct max8997_data *max8997 = rdev_get_drvdata(rdev); max8997 711 drivers/regulator/max8997-regulator.c struct i2c_client *i2c = max8997->iodev->i2c; max8997 719 drivers/regulator/max8997-regulator.c max8997_read_reg(i2c, reg, &max8997->saved_states[rid]); max8997 730 drivers/regulator/max8997-regulator.c rdev->desc->name, max8997->saved_states[rid] & mask, max8997 1016 drivers/regulator/max8997-regulator.c struct max8997_data *max8997; max8997 1032 drivers/regulator/max8997-regulator.c max8997 = devm_kzalloc(&pdev->dev, sizeof(struct max8997_data), max8997 1034 drivers/regulator/max8997-regulator.c if (!max8997) max8997 1037 drivers/regulator/max8997-regulator.c max8997->dev = &pdev->dev; max8997 1038 drivers/regulator/max8997-regulator.c max8997->iodev = iodev; max8997 1039 drivers/regulator/max8997-regulator.c max8997->num_regulators = pdata->num_regulators; max8997 1040 drivers/regulator/max8997-regulator.c platform_set_drvdata(pdev, max8997); max8997 1041 drivers/regulator/max8997-regulator.c i2c = max8997->iodev->i2c; max8997 1043 drivers/regulator/max8997-regulator.c max8997->buck125_gpioindex = pdata->buck125_default_idx; max8997 1044 drivers/regulator/max8997-regulator.c max8997->buck1_gpiodvs = pdata->buck1_gpiodvs; max8997 1045 drivers/regulator/max8997-regulator.c max8997->buck2_gpiodvs = pdata->buck2_gpiodvs; max8997 1046 drivers/regulator/max8997-regulator.c max8997->buck5_gpiodvs = pdata->buck5_gpiodvs; max8997 1047 drivers/regulator/max8997-regulator.c memcpy(max8997->buck125_gpios, pdata->buck125_gpios, sizeof(int) * 3); max8997 1048 drivers/regulator/max8997-regulator.c max8997->ignore_gpiodvs_side_effect = pdata->ignore_gpiodvs_side_effect; max8997 1054 drivers/regulator/max8997-regulator.c max8997->buck1_vol[i] = ret = max8997 1063 drivers/regulator/max8997-regulator.c max8997->buck2_vol[i] = ret = max8997 1072 drivers/regulator/max8997-regulator.c max8997->buck5_vol[i] = ret = max8997 1081 drivers/regulator/max8997-regulator.c if (max_buck1 < max8997->buck1_vol[i]) max8997 1082 drivers/regulator/max8997-regulator.c max_buck1 = max8997->buck1_vol[i]; max8997 1083 drivers/regulator/max8997-regulator.c if (max_buck2 < max8997->buck2_vol[i]) max8997 1084 drivers/regulator/max8997-regulator.c max_buck2 = max8997->buck2_vol[i]; max8997 1085 drivers/regulator/max8997-regulator.c if (max_buck5 < max8997->buck5_vol[i]) max8997 1086 drivers/regulator/max8997-regulator.c max_buck5 = max8997->buck5_vol[i]; max8997 1102 drivers/regulator/max8997-regulator.c max8997->buck1_vol[i], max8997 1105 drivers/regulator/max8997-regulator.c max8997->buck2_vol[i], max8997 1108 drivers/regulator/max8997-regulator.c max8997->buck5_vol[i], max8997 1142 drivers/regulator/max8997-regulator.c (max8997->buck125_gpioindex >> 2) max8997 1145 drivers/regulator/max8997-regulator.c (max8997->buck125_gpioindex >> 1) max8997 1148 drivers/regulator/max8997-regulator.c (max8997->buck125_gpioindex >> 0) max8997 1161 drivers/regulator/max8997-regulator.c max8997->ramp_delay = 10; /* set 10mV/us, which is the default */ max8997 1179 drivers/regulator/max8997-regulator.c config.dev = max8997->dev; max8997 1181 drivers/regulator/max8997-regulator.c config.driver_data = max8997; max8997 1187 drivers/regulator/max8997-regulator.c dev_err(max8997->dev, "regulator init failed for %d\n", max8997 66 drivers/rtc/rtc-max8997.c struct max8997_dev *max8997; max8997 206 drivers/rtc/rtc-max8997.c ret = max8997_read_reg(info->max8997->i2c, MAX8997_REG_STATUS1, &val); max8997 450 drivers/rtc/rtc-max8997.c struct max8997_dev *max8997 = dev_get_drvdata(pdev->dev.parent); max8997 461 drivers/rtc/rtc-max8997.c info->max8997 = max8997; max8997 462 drivers/rtc/rtc-max8997.c info->rtc = max8997->rtc; max8997 487 drivers/rtc/rtc-max8997.c virq = irq_create_mapping(max8997->irq_domain, MAX8997_PMICIRQ_RTCA1); max8997 399 include/linux/mfd/max8997-private.h extern int max8997_irq_init(struct max8997_dev *max8997); max8997 400 include/linux/mfd/max8997-private.h extern void max8997_irq_exit(struct max8997_dev *max8997); max8997 401 include/linux/mfd/max8997-private.h extern int max8997_irq_resume(struct max8997_dev *max8997);