static int rtc_pdrv_probe(struct platform_device *pdev) { unsigned long flags; /* only enable LPD interrupt in engineering build */ spin_lock_irqsave(&rtc_lock, flags); hal_rtc_set_lp_irq(); spin_unlock_irqrestore(&rtc_lock, flags); /* register rtc device (/dev/rtc0) */ rtc = rtc_device_register(RTC_NAME, &pdev->dev, &rtc_ops, THIS_MODULE); if (IS_ERR(rtc)) { rtc_xerror("register rtc device failed (%ld)\n", PTR_ERR(rtc)); return PTR_ERR(rtc); } return 0; }
static int rtc_pdrv_probe(struct platform_device *pdev) { unsigned long flags; /* only enable LPD interrupt in engineering build */ spin_lock_irqsave(&rtc_lock, flags); hal_rtc_set_lp_irq(); spin_unlock_irqrestore(&rtc_lock, flags); /* register rtc device (/dev/rtc0) */ rtc = rtc_device_register(RTC_NAME, &pdev->dev, &rtc_ops, THIS_MODULE); if (IS_ERR(rtc)) { rtc_xerror("register rtc device failed (%ld)\n", PTR_ERR(rtc)); return PTR_ERR(rtc); } #ifdef PMIC_REGISTER_INTERRUPT_ENABLE pmic_register_interrupt_callback(RTC_INTERRUPT_NUM,rtc_irq_handler); pmic_enable_interrupt(RTC_INTERRUPT_NUM,1,"RTC"); #endif device_init_wakeup(&pdev->dev, 1); return 0; }