Lines Matching refs:wm8350
19 #include <linux/mfd/wm8350/rtc.h>
20 #include <linux/mfd/wm8350/core.h>
33 struct wm8350 *wm8350 = dev_get_drvdata(dev);
42 ret = wm8350_block_read(wm8350, WM8350_RTC_SECONDS_MINUTES,
46 ret = wm8350_block_read(wm8350, WM8350_RTC_SECONDS_MINUTES,
92 struct wm8350 *wm8350 = dev_get_drvdata(dev);
110 ret = wm8350_set_bits(wm8350, WM8350_RTC_TIME_CONTROL, WM8350_RTC_SET);
116 rtc_ctrl = wm8350_reg_read(wm8350, WM8350_RTC_TIME_CONTROL);
126 ret = wm8350_block_write(wm8350, WM8350_RTC_SECONDS_MINUTES, 4, time);
131 ret = wm8350_clear_bits(wm8350, WM8350_RTC_TIME_CONTROL,
141 struct wm8350 *wm8350 = dev_get_drvdata(dev);
146 ret = wm8350_block_read(wm8350, WM8350_ALARM_SECONDS_MINUTES, 4, time);
185 static int wm8350_rtc_stop_alarm(struct wm8350 *wm8350)
192 ret = wm8350_set_bits(wm8350, WM8350_RTC_TIME_CONTROL,
199 rtc_ctrl = wm8350_reg_read(wm8350, WM8350_RTC_TIME_CONTROL);
209 static int wm8350_rtc_start_alarm(struct wm8350 *wm8350)
215 ret = wm8350_clear_bits(wm8350, WM8350_RTC_TIME_CONTROL,
222 rtc_ctrl = wm8350_reg_read(wm8350, WM8350_RTC_TIME_CONTROL);
235 struct wm8350 *wm8350 = dev_get_drvdata(dev);
238 return wm8350_rtc_start_alarm(wm8350);
240 return wm8350_rtc_stop_alarm(wm8350);
245 struct wm8350 *wm8350 = dev_get_drvdata(dev);
282 ret = wm8350_rtc_stop_alarm(wm8350);
287 ret = wm8350_block_write(wm8350, WM8350_ALARM_SECONDS_MINUTES,
293 ret = wm8350_rtc_start_alarm(wm8350);
300 struct wm8350 *wm8350 = data;
301 struct rtc_device *rtc = wm8350->rtc.rtc;
307 ret = wm8350_set_bits(wm8350, WM8350_RTC_TIME_CONTROL,
310 dev_err(&(wm8350->rtc.pdev->dev),
319 struct wm8350 *wm8350 = data;
320 struct rtc_device *rtc = wm8350->rtc.rtc;
338 struct wm8350 *wm8350 = dev_get_drvdata(dev);
342 reg = wm8350_reg_read(wm8350, WM8350_RTC_TIME_CONTROL);
344 if (device_may_wakeup(&wm8350->rtc.pdev->dev) &&
346 ret = wm8350_rtc_stop_alarm(wm8350);
356 struct wm8350 *wm8350 = dev_get_drvdata(dev);
359 if (wm8350->rtc.alarm_enabled) {
360 ret = wm8350_rtc_start_alarm(wm8350);
371 struct wm8350 *wm8350 = platform_get_drvdata(pdev);
372 struct wm8350_rtc *wm_rtc = &wm8350->rtc;
376 timectl = wm8350_reg_read(wm8350, WM8350_RTC_TIME_CONTROL);
387 power5 = wm8350_reg_read(wm8350, WM8350_POWER_MGMT_5);
389 dev_info(wm8350->dev, "Starting RTC\n");
391 wm8350_reg_unlock(wm8350);
393 ret = wm8350_set_bits(wm8350, WM8350_POWER_MGMT_5,
400 wm8350_reg_lock(wm8350);
406 ret = wm8350_clear_bits(wm8350, WM8350_RTC_TIME_CONTROL,
415 timectl = wm8350_reg_read(wm8350,
427 wm_rtc->rtc = devm_rtc_device_register(&pdev->dev, "wm8350",
435 ret = wm8350_register_irq(wm8350, WM8350_IRQ_RTC_SEC,
437 "RTC Seconds", wm8350);
441 wm8350_mask_irq(wm8350, WM8350_IRQ_RTC_SEC);
443 ret = wm8350_register_irq(wm8350, WM8350_IRQ_RTC_ALM,
445 "RTC Alarm", wm8350);
447 wm8350_free_irq(wm8350, WM8350_IRQ_RTC_SEC, wm8350);
456 struct wm8350 *wm8350 = platform_get_drvdata(pdev);
458 wm8350_free_irq(wm8350, WM8350_IRQ_RTC_SEC, wm8350);
459 wm8350_free_irq(wm8350, WM8350_IRQ_RTC_ALM, wm8350);
471 .name = "wm8350-rtc",
481 MODULE_ALIAS("platform:wm8350-rtc");