git://scm.lunaixsky.com
/
lunaix-os.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Unit testing framework and devicetree framework refactoring (#50)
[lunaix-os.git]
/
lunaix-os
/
includes
/
hal
/
hwrtc.h
diff --git
a/lunaix-os/includes/hal/hwrtc.h
b/lunaix-os/includes/hal/hwrtc.h
index fcd4d48a5f2ddccc6599fc51463b1e4304e5f898..37a1877a1738a86fe55c56543d96fca2b7a32068 100644
(file)
--- a/
lunaix-os/includes/hal/hwrtc.h
+++ b/
lunaix-os/includes/hal/hwrtc.h
@@
-8,36
+8,38
@@
#define RTC_STATE_MASKED 0x1
#define RTC_STATE_MASKED 0x1
-#define EXPORT_RTC_DEVICE(id, init_fn) \
- export_ldga_el(rtcdev, id, ptr_t, init_fn)
+struct hwrtc_potens;
+struct hwrtc_potens_ops
+{
+ void (*get_walltime)(struct hwrtc_potens*, datetime_t*);
+ void (*set_walltime)(struct hwrtc_potens*, datetime_t*);
+ void (*set_proactive)(struct hwrtc_potens*, bool);
+ int (*chfreq)(struct hwrtc_potens*, int);
+
+ int (*calibrate)(struct hwrtc_potens*);
+};
-struct hwrtc
+struct hwrtc
_potens
{
{
- struct llist_header rtc_list;
- struct device* rtc_dev;
+ POTENS_META;
+
+ struct llist_header rtc_potentes;
+ struct device* rtc_proxy;
- char* name;
- void* data;
ticks_t base_freq;
ticks_t base_freq;
+ volatile ticks_t live;
int state;
int state;
- void (*get_walltime)(struct hwrtc*, datetime_t*);
- void (*set_walltime)(struct hwrtc*, datetime_t*);
- void (*set_mask)(struct hwrtc*);
- void (*cls_mask)(struct hwrtc*);
- int (*get_counts)(struct hwrtc*);
- int (*chfreq)(struct hwrtc*, int);
+ struct hwrtc_potens_ops* ops;
};
};
-extern const struct hwrtc* primary_rtc;
-
void
hwrtc_init();
void
hwrtc_init();
-struct hwrtc*
-hwrtc_alloc_new(char* driver_id);
-
void
hwrtc_walltime(datetime_t* dt);
void
hwrtc_walltime(datetime_t* dt);
+struct hwrtc_potens*
+hwrtc_attach_potens(struct device* raw_rtcdev, struct hwrtc_potens_ops* ops);
+
#endif /* __LUNAIX_HWRTC_H */
#endif /* __LUNAIX_HWRTC_H */