Lines Matching refs:chip

73 	struct adp5520_chip *chip = i2c_get_clientdata(client);  in __adp5520_ack_bits()  local
77 mutex_lock(&chip->lock); in __adp5520_ack_bits()
86 mutex_unlock(&chip->lock); in __adp5520_ack_bits()
104 struct adp5520_chip *chip = dev_get_drvdata(dev); in adp5520_set_bits() local
108 mutex_lock(&chip->lock); in adp5520_set_bits()
110 ret = __adp5520_read(chip->client, reg, &reg_val); in adp5520_set_bits()
114 ret = __adp5520_write(chip->client, reg, reg_val); in adp5520_set_bits()
117 mutex_unlock(&chip->lock); in adp5520_set_bits()
124 struct adp5520_chip *chip = dev_get_drvdata(dev); in adp5520_clr_bits() local
128 mutex_lock(&chip->lock); in adp5520_clr_bits()
130 ret = __adp5520_read(chip->client, reg, &reg_val); in adp5520_clr_bits()
134 ret = __adp5520_write(chip->client, reg, reg_val); in adp5520_clr_bits()
137 mutex_unlock(&chip->lock); in adp5520_clr_bits()
145 struct adp5520_chip *chip = dev_get_drvdata(dev); in adp5520_register_notifier() local
147 if (chip->irq) { in adp5520_register_notifier()
148 adp5520_set_bits(chip->dev, ADP5520_INTERRUPT_ENABLE, in adp5520_register_notifier()
152 return blocking_notifier_chain_register(&chip->notifier_list, in adp5520_register_notifier()
163 struct adp5520_chip *chip = dev_get_drvdata(dev); in adp5520_unregister_notifier() local
165 adp5520_clr_bits(chip->dev, ADP5520_INTERRUPT_ENABLE, in adp5520_unregister_notifier()
169 return blocking_notifier_chain_unregister(&chip->notifier_list, nb); in adp5520_unregister_notifier()
175 struct adp5520_chip *chip = data; in adp5520_irq_thread() local
180 ret = __adp5520_read(chip->client, ADP5520_MODE_STATUS, &reg_val); in adp5520_irq_thread()
187 blocking_notifier_call_chain(&chip->notifier_list, events, NULL); in adp5520_irq_thread()
189 __adp5520_ack_bits(chip->client, ADP5520_MODE_STATUS, events); in adp5520_irq_thread()
201 static int adp5520_remove_subdevs(struct adp5520_chip *chip) in adp5520_remove_subdevs() argument
203 return device_for_each_child(chip->dev, NULL, __remove_subdev); in adp5520_remove_subdevs()
211 struct adp5520_chip *chip; in adp5520_probe() local
225 chip = devm_kzalloc(&client->dev, sizeof(*chip), GFP_KERNEL); in adp5520_probe()
226 if (!chip) in adp5520_probe()
229 i2c_set_clientdata(client, chip); in adp5520_probe()
230 chip->client = client; in adp5520_probe()
232 chip->dev = &client->dev; in adp5520_probe()
233 chip->irq = client->irq; in adp5520_probe()
234 chip->id = id->driver_data; in adp5520_probe()
235 mutex_init(&chip->lock); in adp5520_probe()
237 if (chip->irq) { in adp5520_probe()
238 BLOCKING_INIT_NOTIFIER_HEAD(&chip->notifier_list); in adp5520_probe()
240 ret = request_threaded_irq(chip->irq, NULL, adp5520_irq_thread, in adp5520_probe()
242 "adp5520", chip); in adp5520_probe()
245 chip->irq); in adp5520_probe()
250 ret = adp5520_write(chip->dev, ADP5520_MODE_STATUS, ADP5520_nSTNBY); in adp5520_probe()
257 pdev = platform_device_register_data(chip->dev, "adp5520-keys", in adp5520_probe()
258 chip->id, pdata->keys, sizeof(*pdata->keys)); in adp5520_probe()
266 pdev = platform_device_register_data(chip->dev, "adp5520-gpio", in adp5520_probe()
267 chip->id, pdata->gpio, sizeof(*pdata->gpio)); in adp5520_probe()
275 pdev = platform_device_register_data(chip->dev, "adp5520-led", in adp5520_probe()
276 chip->id, pdata->leds, sizeof(*pdata->leds)); in adp5520_probe()
284 pdev = platform_device_register_data(chip->dev, in adp5520_probe()
286 chip->id, in adp5520_probe()
298 adp5520_remove_subdevs(chip); in adp5520_probe()
301 if (chip->irq) in adp5520_probe()
302 free_irq(chip->irq, chip); in adp5520_probe()
309 struct adp5520_chip *chip = dev_get_drvdata(&client->dev); in adp5520_remove() local
311 if (chip->irq) in adp5520_remove()
312 free_irq(chip->irq, chip); in adp5520_remove()
314 adp5520_remove_subdevs(chip); in adp5520_remove()
315 adp5520_write(chip->dev, ADP5520_MODE_STATUS, 0); in adp5520_remove()
323 struct adp5520_chip *chip = dev_get_drvdata(&client->dev); in adp5520_suspend() local
325 adp5520_read(chip->dev, ADP5520_MODE_STATUS, &chip->mode); in adp5520_suspend()
327 chip->mode &= ADP5520_BL_EN | ADP5520_DIM_EN | ADP5520_nSTNBY; in adp5520_suspend()
328 adp5520_write(chip->dev, ADP5520_MODE_STATUS, 0); in adp5520_suspend()
335 struct adp5520_chip *chip = dev_get_drvdata(&client->dev); in adp5520_resume() local
337 adp5520_write(chip->dev, ADP5520_MODE_STATUS, chip->mode); in adp5520_resume()