Lines Matching refs:info

58 	struct pm860x_rtc_info *info = (struct pm860x_rtc_info *)data;
62 pm860x_set_bits(info->i2c, PM8607_RTC1, mask | ALARM_EN, mask);
63 rtc_update_irq(info->rtc_dev, 1, RTC_AF);
69 struct pm860x_rtc_info *info = dev_get_drvdata(dev);
72 pm860x_set_bits(info->i2c, PM8607_RTC1, ALARM_EN, ALARM_EN);
74 pm860x_set_bits(info->i2c, PM8607_RTC1, ALARM_EN, 0);
80 struct pm860x_rtc_info *info = dev_get_drvdata(dev);
84 pm860x_page_bulk_read(info->i2c, REG0_ADDR, 8, buf);
85 dev_dbg(info->dev, "%x-%x-%x-%x-%x-%x-%x-%x\n", buf[0], buf[1],
91 pm860x_bulk_read(info->i2c, PM8607_RTC_COUNTER1, 4, buf);
95 dev_dbg(info->dev, "get base:0x%lx, RO count:0x%lx, ticks:0x%lx\n",
105 struct pm860x_rtc_info *info = dev_get_drvdata(dev);
112 pm860x_bulk_read(info->i2c, PM8607_RTC_COUNTER1, 4, buf);
116 dev_dbg(info->dev, "set base:0x%lx, RO count:0x%lx, ticks:0x%lx\n",
119 pm860x_page_reg_write(info->i2c, REG0_DATA, (base >> 24) & 0xFF);
120 pm860x_page_reg_write(info->i2c, REG1_DATA, (base >> 16) & 0xFF);
121 pm860x_page_reg_write(info->i2c, REG2_DATA, (base >> 8) & 0xFF);
122 pm860x_page_reg_write(info->i2c, REG3_DATA, base & 0xFF);
129 struct pm860x_rtc_info *info = dev_get_drvdata(dev);
134 pm860x_page_bulk_read(info->i2c, REG0_ADDR, 8, buf);
135 dev_dbg(info->dev, "%x-%x-%x-%x-%x-%x-%x-%x\n", buf[0], buf[1],
140 pm860x_bulk_read(info->i2c, PM8607_RTC_EXPIRE1, 4, buf);
144 dev_dbg(info->dev, "get base:0x%lx, RO count:0x%lx, ticks:0x%lx\n",
148 ret = pm860x_reg_read(info->i2c, PM8607_RTC1);
156 struct pm860x_rtc_info *info = dev_get_drvdata(dev);
161 pm860x_set_bits(info->i2c, PM8607_RTC1, ALARM_EN, 0);
163 pm860x_page_bulk_read(info->i2c, REG0_ADDR, 8, buf);
164 dev_dbg(info->dev, "%x-%x-%x-%x-%x-%x-%x-%x\n", buf[0], buf[1],
176 pm860x_bulk_write(info->i2c, PM8607_RTC_EXPIRE1, 4, buf);
179 pm860x_set_bits(info->i2c, PM8607_RTC1, mask, mask);
182 pm860x_set_bits(info->i2c, PM8607_RTC1, mask,
199 struct pm860x_rtc_info *info = container_of(work,
207 pm860x_bulk_read(info->i2c, REG_VRTC_MEAS1, 2, buf);
213 vrtc_set = 2700 + (info->vrtc & 0x3) * 200;
214 dev_dbg(info->dev, "mean:%d, vrtc_set:%d\n", mean, vrtc_set);
216 sum = pm860x_reg_read(info->i2c, PM8607_RTC_MISC1);
223 pm860x_reg_write(info->i2c, PM8607_RTC_MISC1, data);
229 pm860x_reg_write(info->i2c, PM8607_RTC_MISC1, data);
232 dev_dbg(info->dev, "set 0x%x to RTC_MISC1\n", data);
234 schedule_delayed_work(&info->calib_work, VRTC_CALIB_INTERVAL);
238 pm860x_set_bits(info->i2c, PM8607_MEAS_EN2, MEAS2_VRTC, 0);
239 dev_dbg(info->dev, "finish VRTC calibration\n");
246 struct pm860x_rtc_info *info)
257 ret = of_property_read_u32(np, "marvell,88pm860x-vrtc", &info->vrtc);
259 info->vrtc = 0;
270 struct pm860x_rtc_info *info;
273 info = devm_kzalloc(&pdev->dev, sizeof(struct pm860x_rtc_info),
275 if (!info)
277 info->irq = platform_get_irq(pdev, 0);
278 if (info->irq < 0)
279 return info->irq;
281 info->chip = chip;
282 info->i2c = (chip->id == CHIP_PM8607) ? chip->client : chip->companion;
283 info->dev = &pdev->dev;
284 dev_set_drvdata(&pdev->dev, info);
286 info->rtc_dev = devm_rtc_allocate_device(&pdev->dev);
287 if (IS_ERR(info->rtc_dev))
288 return PTR_ERR(info->rtc_dev);
290 ret = devm_request_threaded_irq(&pdev->dev, info->irq, NULL,
292 info);
295 info->irq, ret);
300 pm860x_page_reg_write(info->i2c, REG0_ADDR, REG0_DATA);
301 pm860x_page_reg_write(info->i2c, REG1_ADDR, REG1_DATA);
302 pm860x_page_reg_write(info->i2c, REG2_ADDR, REG2_DATA);
303 pm860x_page_reg_write(info->i2c, REG3_ADDR, REG3_DATA);
305 pm860x_rtc_dt_init(pdev, info);
307 info->rtc_dev->ops = &pm860x_rtc_ops;
308 info->rtc_dev->range_max = U32_MAX;
310 ret = rtc_register_device(info->rtc_dev);
318 pm860x_set_bits(info->i2c, PM8607_RTC1, RTC1_USE_XO, RTC1_USE_XO);
322 pm860x_set_bits(info->i2c, PM8607_MEAS_EN2, MEAS2_VRTC, MEAS2_VRTC);
325 INIT_DELAYED_WORK(&info->calib_work, calibrate_vrtc_work);
326 schedule_delayed_work(&info->calib_work, VRTC_CALIB_INTERVAL);
336 struct pm860x_rtc_info *info = platform_get_drvdata(pdev);
339 cancel_delayed_work_sync(&info->calib_work);
341 pm860x_set_bits(info->i2c, PM8607_MEAS_EN2, MEAS2_VRTC, 0);