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;
}