RTC是DS1339,驱动采用的是rtc-ds1307.c

我的外部RTC是DS1339,驱动采用的是rtc-ds1307.c
在内核里选上了 
<*> I2C support 
以及
 [*]   Set system time from RTC on startup and resume             │ │  
  │ │    (rtc0)  RTC used to set the system time                          │ │  
  │ │    [*]   RTC debug support                                          │ │  
  │ │          *** RTC interfaces ***                                     │ │  
  │ │    [*]   /sys/class/rtc/rtcN (sysfs)                                │ │  
  │ │    [*]   /proc/driver/rtc (procfs for rtc0)                         │ │  
  │ │    [*]   /dev/rtcN (character devices)                              │ │  
  │ │    [*]     RTC UIE emulation on dev interface                       │ │  
  │ │    < >   Test driver/device                       
  │ │          *** I2C RTC drivers ***                                    │ │  
  │ │    <*>   Dallas/Maxim DS1307/37/38/39/40, ST M41T00, EPSON RX-8025  │
但是启动的时候提示找不到rtc:
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
启动完成后看到有:
/dev/i2c-1
/sys/bus/i2c/drivers/rtc-ds1307
但是没有/dev/rtc什么的。
加了些调试信息后发现ds1307_probe并没有被执行。以前接触的驱动都是用platform_driver_register注册的,这个rtc则是
static int __init ds1307_init(void)
{
return i2c_add_driver(&ds1307_driver);
}
在这种情况下,系统是怎么调用和加载驱动的?我往里看了看,没发现它调用probe和执行I2C操作

static struct i2c_board_info __initdata am3517evm_i2c1_boardinfo[]
如下代码:
     {
         I2C_BOARD_INFO("rtc-ds1307",0x68),
         .type = "ds3231",
     },

原文地址:https://www.cnblogs.com/subo_peng/p/5041247.html