Lines Matching refs:pcf
27 int pcf50633_read_block(struct pcf50633 *pcf, u8 reg,
32 ret = regmap_raw_read(pcf->regmap, reg, data, nr_regs);
41 int pcf50633_write_block(struct pcf50633 *pcf , u8 reg,
44 return regmap_raw_write(pcf->regmap, reg, data, nr_regs);
48 u8 pcf50633_reg_read(struct pcf50633 *pcf, u8 reg)
53 ret = regmap_read(pcf->regmap, reg, &val);
61 int pcf50633_reg_write(struct pcf50633 *pcf, u8 reg, u8 val)
63 return regmap_write(pcf->regmap, reg, val);
67 int pcf50633_reg_set_bit_mask(struct pcf50633 *pcf, u8 reg, u8 mask, u8 val)
69 return regmap_update_bits(pcf->regmap, reg, mask, val);
73 int pcf50633_reg_clear_bits(struct pcf50633 *pcf, u8 reg, u8 val)
75 return regmap_update_bits(pcf->regmap, reg, val, 0);
83 struct pcf50633 *pcf = dev_get_drvdata(dev);
102 dump[n1] = pcf50633_reg_read(pcf, n + n1);
114 struct pcf50633 *pcf = dev_get_drvdata(dev);
118 pcf->resume_reason[0],
119 pcf->resume_reason[1],
120 pcf->resume_reason[2],
121 pcf->resume_reason[3],
122 pcf->resume_reason[4]);
140 pcf50633_client_dev_register(struct pcf50633 *pcf, const char *name,
147 dev_err(pcf->dev, "Failed to allocate %s\n", name);
151 (*pdev)->dev.parent = pcf->dev;
155 dev_err(pcf->dev, "Failed to register %s: %d\n", name, ret);
165 struct pcf50633 *pcf = i2c_get_clientdata(client);
167 return pcf50633_irq_suspend(pcf);
173 struct pcf50633 *pcf = i2c_get_clientdata(client);
175 return pcf50633_irq_resume(pcf);
189 struct pcf50633 *pcf;
200 pcf = devm_kzalloc(&client->dev, sizeof(*pcf), GFP_KERNEL);
201 if (!pcf)
204 i2c_set_clientdata(client, pcf);
205 pcf->dev = &client->dev;
206 pcf->pdata = pdata;
208 mutex_init(&pcf->lock);
210 pcf->regmap = devm_regmap_init_i2c(client, &pcf50633_regmap_config);
211 if (IS_ERR(pcf->regmap)) {
212 ret = PTR_ERR(pcf->regmap);
213 dev_err(pcf->dev, "Failed to allocate register map: %d\n", ret);
217 version = pcf50633_reg_read(pcf, 0);
218 variant = pcf50633_reg_read(pcf, 1);
220 dev_err(pcf->dev, "Unable to probe pcf50633\n");
225 dev_info(pcf->dev, "Probed device version %d variant %d\n",
228 pcf50633_irq_init(pcf, client->irq);
231 pcf50633_client_dev_register(pcf, "pcf50633-input", &pcf->input_pdev);
232 pcf50633_client_dev_register(pcf, "pcf50633-rtc", &pcf->rtc_pdev);
233 pcf50633_client_dev_register(pcf, "pcf50633-mbc", &pcf->mbc_pdev);
234 pcf50633_client_dev_register(pcf, "pcf50633-adc", &pcf->adc_pdev);
235 pcf50633_client_dev_register(pcf, "pcf50633-backlight", &pcf->bl_pdev);
245 pdev->dev.parent = pcf->dev;
255 pcf->regulator_pdev[i] = pdev;
260 dev_warn(pcf->dev, "error creating sysfs entries\n");
263 pdata->probe_done(pcf);
271 platform_device_put(pcf->regulator_pdev[j]);
278 struct pcf50633 *pcf = i2c_get_clientdata(client);
282 pcf50633_irq_free(pcf);
284 platform_device_unregister(pcf->input_pdev);
285 platform_device_unregister(pcf->rtc_pdev);
286 platform_device_unregister(pcf->mbc_pdev);
287 platform_device_unregister(pcf->adc_pdev);
288 platform_device_unregister(pcf->bl_pdev);
291 platform_device_unregister(pcf->regulator_pdev[i]);