说明:
rtc时钟驱动将大部分通用部分在rtc-dev.c文件中实现.通用部分实现了file_operations,并导出了rtc_class_ops结构,rtc_device_register rtc_device_unregister函数,底层部分只要实现rtc_class_ops即可.
变量:
rtc_class_ops{ open release ioctl read_time set_time read_alarm set_alarm irq_set_freq irq_set_state proc }
函数:
rtc_device_register(char *name,device *dev,rtc_class_ops *class,MODULE) rtc_decice_ungister
用法:
实现 rtc_class_ops中的函数 xx_read_time{ } xx_set_time{ } rtc_class_ops xx_class_ops={ .read_time=xx_read_time; .set_time=xx_set_time; } xx_probe(struct platform_device*pdev){ … rtc_device_register(name,pdev->dev,&xx_class_ops,THIS_MODULE); } xx_driver={ driver={ .name=”xx”; .owner=THIS_MODULE; } .probe=xx_probe; .remove .id_table } xx_init(void){ i2c_add_driver(&xx_driver); 或者spi_register_driver 或者其他类似的驱动函数 } xx_exit(void){ i2c_del_driver(&xx_driver); 或者spi_unregister_driver 或者其他类似的驱动函数 }