Lines Matching refs:max77693
166 struct max77693_dev *max77693; in max77693_i2c_probe() local
170 max77693 = devm_kzalloc(&i2c->dev, in max77693_i2c_probe()
172 if (max77693 == NULL) in max77693_i2c_probe()
175 i2c_set_clientdata(i2c, max77693); in max77693_i2c_probe()
176 max77693->dev = &i2c->dev; in max77693_i2c_probe()
177 max77693->i2c = i2c; in max77693_i2c_probe()
178 max77693->irq = i2c->irq; in max77693_i2c_probe()
179 max77693->type = id->driver_data; in max77693_i2c_probe()
181 max77693->regmap = devm_regmap_init_i2c(i2c, &max77693_regmap_config); in max77693_i2c_probe()
182 if (IS_ERR(max77693->regmap)) { in max77693_i2c_probe()
183 ret = PTR_ERR(max77693->regmap); in max77693_i2c_probe()
184 dev_err(max77693->dev, "failed to allocate register map: %d\n", in max77693_i2c_probe()
189 ret = regmap_read(max77693->regmap, MAX77693_PMIC_REG_PMIC_ID2, in max77693_i2c_probe()
192 dev_err(max77693->dev, "device not found on this channel\n"); in max77693_i2c_probe()
195 dev_info(max77693->dev, "device ID: 0x%x\n", reg_data); in max77693_i2c_probe()
197 max77693->i2c_muic = i2c_new_dummy(i2c->adapter, I2C_ADDR_MUIC); in max77693_i2c_probe()
198 if (!max77693->i2c_muic) { in max77693_i2c_probe()
199 dev_err(max77693->dev, "Failed to allocate I2C device for MUIC\n"); in max77693_i2c_probe()
202 i2c_set_clientdata(max77693->i2c_muic, max77693); in max77693_i2c_probe()
204 max77693->i2c_haptic = i2c_new_dummy(i2c->adapter, I2C_ADDR_HAPTIC); in max77693_i2c_probe()
205 if (!max77693->i2c_haptic) { in max77693_i2c_probe()
206 dev_err(max77693->dev, "Failed to allocate I2C device for Haptic\n"); in max77693_i2c_probe()
210 i2c_set_clientdata(max77693->i2c_haptic, max77693); in max77693_i2c_probe()
212 max77693->regmap_haptic = devm_regmap_init_i2c(max77693->i2c_haptic, in max77693_i2c_probe()
214 if (IS_ERR(max77693->regmap_haptic)) { in max77693_i2c_probe()
215 ret = PTR_ERR(max77693->regmap_haptic); in max77693_i2c_probe()
216 dev_err(max77693->dev, in max77693_i2c_probe()
226 max77693->regmap_muic = devm_regmap_init_i2c(max77693->i2c_muic, in max77693_i2c_probe()
228 if (IS_ERR(max77693->regmap_muic)) { in max77693_i2c_probe()
229 ret = PTR_ERR(max77693->regmap_muic); in max77693_i2c_probe()
230 dev_err(max77693->dev, in max77693_i2c_probe()
235 ret = regmap_add_irq_chip(max77693->regmap, max77693->irq, in max77693_i2c_probe()
239 &max77693->irq_data_led); in max77693_i2c_probe()
241 dev_err(max77693->dev, "failed to add irq chip: %d\n", ret); in max77693_i2c_probe()
245 ret = regmap_add_irq_chip(max77693->regmap, max77693->irq, in max77693_i2c_probe()
249 &max77693->irq_data_topsys); in max77693_i2c_probe()
251 dev_err(max77693->dev, "failed to add irq chip: %d\n", ret); in max77693_i2c_probe()
255 ret = regmap_add_irq_chip(max77693->regmap, max77693->irq, in max77693_i2c_probe()
259 &max77693->irq_data_chg); in max77693_i2c_probe()
261 dev_err(max77693->dev, "failed to add irq chip: %d\n", ret); in max77693_i2c_probe()
265 ret = regmap_add_irq_chip(max77693->regmap_muic, max77693->irq, in max77693_i2c_probe()
269 &max77693->irq_data_muic); in max77693_i2c_probe()
271 dev_err(max77693->dev, "failed to add irq chip: %d\n", ret); in max77693_i2c_probe()
276 ret = regmap_update_bits(max77693->regmap, in max77693_i2c_probe()
280 dev_err(max77693->dev, in max77693_i2c_probe()
286 pm_runtime_set_active(max77693->dev); in max77693_i2c_probe()
288 ret = mfd_add_devices(max77693->dev, -1, max77693_devs, in max77693_i2c_probe()
296 mfd_remove_devices(max77693->dev); in max77693_i2c_probe()
298 regmap_del_irq_chip(max77693->irq, max77693->irq_data_muic); in max77693_i2c_probe()
300 regmap_del_irq_chip(max77693->irq, max77693->irq_data_chg); in max77693_i2c_probe()
302 regmap_del_irq_chip(max77693->irq, max77693->irq_data_topsys); in max77693_i2c_probe()
304 regmap_del_irq_chip(max77693->irq, max77693->irq_data_led); in max77693_i2c_probe()
306 i2c_unregister_device(max77693->i2c_haptic); in max77693_i2c_probe()
308 i2c_unregister_device(max77693->i2c_muic); in max77693_i2c_probe()
314 struct max77693_dev *max77693 = i2c_get_clientdata(i2c); in max77693_i2c_remove() local
316 mfd_remove_devices(max77693->dev); in max77693_i2c_remove()
318 regmap_del_irq_chip(max77693->irq, max77693->irq_data_muic); in max77693_i2c_remove()
319 regmap_del_irq_chip(max77693->irq, max77693->irq_data_chg); in max77693_i2c_remove()
320 regmap_del_irq_chip(max77693->irq, max77693->irq_data_topsys); in max77693_i2c_remove()
321 regmap_del_irq_chip(max77693->irq, max77693->irq_data_led); in max77693_i2c_remove()
323 i2c_unregister_device(max77693->i2c_muic); in max77693_i2c_remove()
324 i2c_unregister_device(max77693->i2c_haptic); in max77693_i2c_remove()
338 struct max77693_dev *max77693 = i2c_get_clientdata(i2c); in max77693_suspend() local
341 enable_irq_wake(max77693->irq); in max77693_suspend()
342 disable_irq(max77693->irq); in max77693_suspend()
351 struct max77693_dev *max77693 = i2c_get_clientdata(i2c); in max77693_resume() local
354 disable_irq_wake(max77693->irq); in max77693_resume()
355 enable_irq(max77693->irq); in max77693_resume()