.. | .. |
---|
438 | 438 | { |
---|
439 | 439 | struct hym8563 *hym8563 = (struct hym8563 *)dev_id; |
---|
440 | 440 | struct i2c_client *client = hym8563->client; |
---|
441 | | - struct mutex *lock = &hym8563->rtc->ops_lock; |
---|
| 441 | + //struct mutex *lock = &hym8563->rtc->ops_lock; |
---|
442 | 442 | int data, ret; |
---|
443 | 443 | |
---|
444 | | - mutex_lock(lock); |
---|
| 444 | + //mutex_lock(lock); |
---|
445 | 445 | |
---|
446 | 446 | /* Clear the alarm flag */ |
---|
447 | 447 | |
---|
.. | .. |
---|
461 | 461 | } |
---|
462 | 462 | |
---|
463 | 463 | out: |
---|
464 | | - mutex_unlock(lock); |
---|
| 464 | + //mutex_unlock(lock); |
---|
465 | 465 | return IRQ_HANDLED; |
---|
466 | 466 | } |
---|
467 | 467 | |
---|
.. | .. |
---|
529 | 529 | { |
---|
530 | 530 | struct hym8563 *hym8563; |
---|
531 | 531 | int ret; |
---|
532 | | - |
---|
| 532 | + struct rtc_time tm = { |
---|
| 533 | + .tm_year = 2024 - 1900, |
---|
| 534 | + .tm_mon = 7, |
---|
| 535 | + .tm_mday = 23, |
---|
| 536 | + .tm_wday = 5, |
---|
| 537 | + .tm_hour = 13, |
---|
| 538 | + }; |
---|
533 | 539 | hym8563 = devm_kzalloc(&client->dev, sizeof(*hym8563), GFP_KERNEL); |
---|
534 | 540 | if (!hym8563) |
---|
535 | 541 | return -ENOMEM; |
---|
.. | .. |
---|
565 | 571 | hym8563->valid = !(ret & HYM8563_SEC_VL); |
---|
566 | 572 | dev_dbg(&client->dev, "rtc information is %s\n", |
---|
567 | 573 | hym8563->valid ? "valid" : "invalid"); |
---|
| 574 | + if (!hym8563->valid) { |
---|
| 575 | + dev_err(&client->dev, "rtc use default time !!!\n"); |
---|
| 576 | + hym8563_rtc_set_time(&client->dev, &tm); |
---|
| 577 | + } |
---|
568 | 578 | |
---|
569 | 579 | hym8563->rtc = devm_rtc_device_register(&client->dev, client->name, |
---|
570 | 580 | &hym8563_rtc_ops, THIS_MODULE); |
---|