|
@@ -18,6 +18,26 @@
|
|
|
|
|
|
#include "rtc-core.h"
|
|
|
|
|
|
+#define NAME_SIZE 10
|
|
|
+
|
|
|
+#if defined(CONFIG_RTC_HCTOSYS_DEVICE)
|
|
|
+static bool is_rtc_hctosys(struct rtc_device *rtc)
|
|
|
+{
|
|
|
+ int size;
|
|
|
+ char name[NAME_SIZE];
|
|
|
+
|
|
|
+ size = scnprintf(name, NAME_SIZE, "rtc%d", rtc->id);
|
|
|
+ if (size > NAME_SIZE)
|
|
|
+ return false;
|
|
|
+
|
|
|
+ return !strncmp(name, CONFIG_RTC_HCTOSYS_DEVICE, NAME_SIZE);
|
|
|
+}
|
|
|
+#else
|
|
|
+static bool is_rtc_hctosys(struct rtc_device *rtc)
|
|
|
+{
|
|
|
+ return (rtc->id == 0);
|
|
|
+}
|
|
|
+#endif
|
|
|
|
|
|
static int rtc_proc_show(struct seq_file *seq, void *offset)
|
|
|
{
|
|
@@ -117,12 +137,12 @@ static const struct file_operations rtc_proc_fops = {
|
|
|
|
|
|
void rtc_proc_add_device(struct rtc_device *rtc)
|
|
|
{
|
|
|
- if (rtc->id == 0)
|
|
|
+ if (is_rtc_hctosys(rtc))
|
|
|
proc_create_data("driver/rtc", 0, NULL, &rtc_proc_fops, rtc);
|
|
|
}
|
|
|
|
|
|
void rtc_proc_del_device(struct rtc_device *rtc)
|
|
|
{
|
|
|
- if (rtc->id == 0)
|
|
|
+ if (is_rtc_hctosys(rtc))
|
|
|
remove_proc_entry("driver/rtc", NULL);
|
|
|
}
|