TI论坛
直播中

刘世晓

7年用户 185经验值
私信 关注

请问为什么AM3352 RTC时钟能保持但是不走?

本帖最后由 一只耳朵怪 于 2018-6-21 15:34 编辑

平台AM3352内部RTC
设置硬件时钟以后,系统供电情况下,时钟正常,系统供电无效,单3V电池供电下,时钟保持原来的值,不在走?
请问大神有没有了解的?貌似有说是软件bug,升级就好?从哪里弄升级补丁呢?
附board_AM335xevm.c RTC部分代码
  1. :/*
  2. 334     RTC     ***************************************************************************
  3. 335 */
  4. 336 static struct resource am335x_rtc_resources[] = [
  5. 337     [
  6. 338         .start      = AM33XX_RTC_BASE,
  7. 339         .end        = AM33XX_RTC_BASE + SZ_4K - 1,
  8. 340         .flags      = IORESOURCE_MEM,
  9. 341     ],
  10. 342     [ /* timer irq */
  11. 343         .start      = AM33XX_IRQ_RTC_TIMER,
  12. 344         .end        = AM33XX_IRQ_RTC_TIMER,
  13. 345         .flags      = IORESOURCE_IRQ,
  14. 346     ],
  15. 347     [ /* alARM irq */
  16. 348         .start      = AM33XX_IRQ_RTC_ALARM,
  17. 349         .end        = AM33XX_IRQ_RTC_ALARM,
  18. 350         .flags      = IORESOURCE_IRQ,
  19. 351     ],
  20. 352 ];
  21. 353
  22. 354 static struct platform_device am335x_rtc_device = [
  23. 355     .name           = "omap_rtc",
  24. 356     .id             = -1,
  25. 357     .num_resources  = ARRAY_SIZE(am335x_rtc_resources),
  26. 358     .resource   = am335x_rtc_resources,
  27. 359 ];
  28. 360
  29. 361 static int am335x_rtc_init(void)
  30. 362 [
  31. 363     void __iomem *base;
  32. 364     struct clk *clk;
  33. 365
  34. 366     clk = clk_get(NULL, "rtc_fck");
  35. 367     if (IS_ERR(clk)) [ if (clk_enable(clk)) [
  36. 373         pr_err("rtc: Clock Enable Failedn");
  37. 374         return -1;
  38. 375     ]
  39. 376
  40. 377     base = ioremap(AM33XX_RTC_BASE, SZ_4K);
  41. 378
  42. 379     if (WARN_ON(!base))
  43. 380         return -ENOMEM;
  44. 381
  45. 382     /* Unlock the rtc's registers */
  46. 383     __raw_writel(0x83e70b13, base + 0x6c);
  47. 384     __raw_writel(0x95a4f1e0, base + 0x70);
  48. 385
  49. 386     /*
  50. 387      * Enable the 32K OSc
  51. 388      * TODO: Need a better way to handle this
  52. 389      * Since we want the clock to be running before mmc init
  53. 390      * we need to do it before the rtc probe happens
  54. 391      */
  55. 392     __raw_writel(0x48, base + 0x54);
  56. 393     iounmap(base);
  57. 394
  58. 395     return  platform_device_register(&am335x_rtc_device);
  59. 396 ]
  60. 368         pr_err("rtc : Failed to get RTC clockn");
  61. 369         return -1;
  62. 370     ]

回帖(3)

罗兰君

2018-6-21 05:24:31
芯片是最新的PG2.1么?芯片丝印的型号是什么呢?
举报

刘世晓

2018-6-21 05:37:03
引用: 344868615qq 发表于 2018-6-21 05:24
芯片是最新的PG2.1么?芯片丝印的型号是什么呢?

AM3352ZCZ072
举报

罗兰君

2018-6-21 05:56:35

这个是PG1.0的芯片,会有芯片掉电后RTC也同时停止的bug,PG2.1版本把这个问题解决掉了,你可以看下errata
举报

更多回帖

发帖
×
20
完善资料,
赚取积分