summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2018-06-19 10:02:29 -0400
committerGeert Uytterhoeven <geert@linux-m68k.org>2018-07-29 04:48:18 -0400
commitd7de1c3af18b1a638fc5211f8078ac427280d455 (patch)
treec9c5496b02a7502ad9d7680aacde1ad08b78b61f
parent5b9bfb8ec467b2017f36d7675434822271ce3d29 (diff)
m68k: Remove unused set_clock_mmss() helpers
Commit 397ac99c6cef ("m68k: remove dead timer code") removed set_rtc_mmss() because it was unused in 2012. However, this was itself the only user of the mach_set_clock_mmss() callback and the many implementations of that callback, which are equally unused. This removes all of those as well. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Greg Ungerer <gerg@linux-m68k.org> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
-rw-r--r--arch/m68k/apollo/config.c8
-rw-r--r--arch/m68k/atari/config.c5
-rw-r--r--arch/m68k/atari/time.c63
-rw-r--r--arch/m68k/bvme6000/config.c45
-rw-r--r--arch/m68k/include/asm/machdep.h1
-rw-r--r--arch/m68k/kernel/setup_mm.c1
-rw-r--r--arch/m68k/kernel/setup_no.c1
-rw-r--r--arch/m68k/mac/config.c2
-rw-r--r--arch/m68k/mac/misc.c16
-rw-r--r--arch/m68k/mvme147/config.c7
-rw-r--r--arch/m68k/mvme16x/config.c8
-rw-r--r--arch/m68k/q40/config.c30
12 files changed, 0 insertions, 187 deletions
diff --git a/arch/m68k/apollo/config.c b/arch/m68k/apollo/config.c
index b2a6bc63f8cd..aef8d42e078d 100644
--- a/arch/m68k/apollo/config.c
+++ b/arch/m68k/apollo/config.c
@@ -31,7 +31,6 @@ extern void dn_sched_init(irq_handler_t handler);
31extern void dn_init_IRQ(void); 31extern void dn_init_IRQ(void);
32extern u32 dn_gettimeoffset(void); 32extern u32 dn_gettimeoffset(void);
33extern int dn_dummy_hwclk(int, struct rtc_time *); 33extern int dn_dummy_hwclk(int, struct rtc_time *);
34extern int dn_dummy_set_clock_mmss(unsigned long);
35extern void dn_dummy_reset(void); 34extern void dn_dummy_reset(void);
36#ifdef CONFIG_HEARTBEAT 35#ifdef CONFIG_HEARTBEAT
37static void dn_heartbeat(int on); 36static void dn_heartbeat(int on);
@@ -156,7 +155,6 @@ void __init config_apollo(void)
156 arch_gettimeoffset = dn_gettimeoffset; 155 arch_gettimeoffset = dn_gettimeoffset;
157 mach_max_dma_address = 0xffffffff; 156 mach_max_dma_address = 0xffffffff;
158 mach_hwclk = dn_dummy_hwclk; /* */ 157 mach_hwclk = dn_dummy_hwclk; /* */
159 mach_set_clock_mmss = dn_dummy_set_clock_mmss; /* */
160 mach_reset = dn_dummy_reset; /* */ 158 mach_reset = dn_dummy_reset; /* */
161#ifdef CONFIG_HEARTBEAT 159#ifdef CONFIG_HEARTBEAT
162 mach_heartbeat = dn_heartbeat; 160 mach_heartbeat = dn_heartbeat;
@@ -240,12 +238,6 @@ int dn_dummy_hwclk(int op, struct rtc_time *t) {
240 238
241} 239}
242 240
243int dn_dummy_set_clock_mmss(unsigned long nowtime)
244{
245 pr_info("set_clock_mmss\n");
246 return 0;
247}
248
249void dn_dummy_reset(void) { 241void dn_dummy_reset(void) {
250 242
251 dn_serial_print("The end !\n"); 243 dn_serial_print("The end !\n");
diff --git a/arch/m68k/atari/config.c b/arch/m68k/atari/config.c
index 565c6f06ab0b..bd96702a1ad0 100644
--- a/arch/m68k/atari/config.c
+++ b/arch/m68k/atari/config.c
@@ -81,9 +81,6 @@ extern void atari_sched_init(irq_handler_t);
81extern u32 atari_gettimeoffset(void); 81extern u32 atari_gettimeoffset(void);
82extern int atari_mste_hwclk (int, struct rtc_time *); 82extern int atari_mste_hwclk (int, struct rtc_time *);
83extern int atari_tt_hwclk (int, struct rtc_time *); 83extern int atari_tt_hwclk (int, struct rtc_time *);
84extern int atari_mste_set_clock_mmss (unsigned long);
85extern int atari_tt_set_clock_mmss (unsigned long);
86
87 84
88/* ++roman: This is a more elaborate test for an SCC chip, since the plain 85/* ++roman: This is a more elaborate test for an SCC chip, since the plain
89 * Medusa board generates DTACK at the SCC's standard addresses, but a SCC 86 * Medusa board generates DTACK at the SCC's standard addresses, but a SCC
@@ -362,13 +359,11 @@ void __init config_atari(void)
362 ATARIHW_SET(TT_CLK); 359 ATARIHW_SET(TT_CLK);
363 pr_cont(" TT_CLK"); 360 pr_cont(" TT_CLK");
364 mach_hwclk = atari_tt_hwclk; 361 mach_hwclk = atari_tt_hwclk;
365 mach_set_clock_mmss = atari_tt_set_clock_mmss;
366 } 362 }
367 if (hwreg_present(&mste_rtc.sec_ones)) { 363 if (hwreg_present(&mste_rtc.sec_ones)) {
368 ATARIHW_SET(MSTE_CLK); 364 ATARIHW_SET(MSTE_CLK);
369 pr_cont(" MSTE_CLK"); 365 pr_cont(" MSTE_CLK");
370 mach_hwclk = atari_mste_hwclk; 366 mach_hwclk = atari_mste_hwclk;
371 mach_set_clock_mmss = atari_mste_set_clock_mmss;
372 } 367 }
373 if (!MACH_IS_MEDUSA && hwreg_present(&dma_wd.fdc_speed) && 368 if (!MACH_IS_MEDUSA && hwreg_present(&dma_wd.fdc_speed) &&
374 hwreg_write(&dma_wd.fdc_speed, 0)) { 369 hwreg_write(&dma_wd.fdc_speed, 0)) {
diff --git a/arch/m68k/atari/time.c b/arch/m68k/atari/time.c
index c549b48174ec..9cca64286464 100644
--- a/arch/m68k/atari/time.c
+++ b/arch/m68k/atari/time.c
@@ -285,69 +285,6 @@ int atari_tt_hwclk( int op, struct rtc_time *t )
285 return( 0 ); 285 return( 0 );
286} 286}
287 287
288
289int atari_mste_set_clock_mmss (unsigned long nowtime)
290{
291 short real_seconds = nowtime % 60, real_minutes = (nowtime / 60) % 60;
292 struct MSTE_RTC val;
293 unsigned char rtc_minutes;
294
295 mste_read(&val);
296 rtc_minutes= val.min_ones + val.min_tens * 10;
297 if ((rtc_minutes < real_minutes
298 ? real_minutes - rtc_minutes
299 : rtc_minutes - real_minutes) < 30)
300 {
301 val.sec_ones = real_seconds % 10;
302 val.sec_tens = real_seconds / 10;
303 val.min_ones = real_minutes % 10;
304 val.min_tens = real_minutes / 10;
305 mste_write(&val);
306 }
307 else
308 return -1;
309 return 0;
310}
311
312int atari_tt_set_clock_mmss (unsigned long nowtime)
313{
314 int retval = 0;
315 short real_seconds = nowtime % 60, real_minutes = (nowtime / 60) % 60;
316 unsigned char save_control, save_freq_select, rtc_minutes;
317
318 save_control = RTC_READ (RTC_CONTROL); /* tell the clock it's being set */
319 RTC_WRITE (RTC_CONTROL, save_control | RTC_SET);
320
321 save_freq_select = RTC_READ (RTC_FREQ_SELECT); /* stop and reset prescaler */
322 RTC_WRITE (RTC_FREQ_SELECT, save_freq_select | RTC_DIV_RESET2);
323
324 rtc_minutes = RTC_READ (RTC_MINUTES);
325 if (!(save_control & RTC_DM_BINARY))
326 rtc_minutes = bcd2bin(rtc_minutes);
327
328 /* Since we're only adjusting minutes and seconds, don't interfere
329 with hour overflow. This avoids messing with unknown time zones
330 but requires your RTC not to be off by more than 30 minutes. */
331 if ((rtc_minutes < real_minutes
332 ? real_minutes - rtc_minutes
333 : rtc_minutes - real_minutes) < 30)
334 {
335 if (!(save_control & RTC_DM_BINARY))
336 {
337 real_seconds = bin2bcd(real_seconds);
338 real_minutes = bin2bcd(real_minutes);
339 }
340 RTC_WRITE (RTC_SECONDS, real_seconds);
341 RTC_WRITE (RTC_MINUTES, real_minutes);
342 }
343 else
344 retval = -1;
345
346 RTC_WRITE (RTC_FREQ_SELECT, save_freq_select);
347 RTC_WRITE (RTC_CONTROL, save_control);
348 return retval;
349}
350
351/* 288/*
352 * Local variables: 289 * Local variables:
353 * c-indent-level: 4 290 * c-indent-level: 4
diff --git a/arch/m68k/bvme6000/config.c b/arch/m68k/bvme6000/config.c
index 2cfff4765040..143ee9fa3893 100644
--- a/arch/m68k/bvme6000/config.c
+++ b/arch/m68k/bvme6000/config.c
@@ -41,7 +41,6 @@ static void bvme6000_get_model(char *model);
41extern void bvme6000_sched_init(irq_handler_t handler); 41extern void bvme6000_sched_init(irq_handler_t handler);
42extern u32 bvme6000_gettimeoffset(void); 42extern u32 bvme6000_gettimeoffset(void);
43extern int bvme6000_hwclk (int, struct rtc_time *); 43extern int bvme6000_hwclk (int, struct rtc_time *);
44extern int bvme6000_set_clock_mmss (unsigned long);
45extern void bvme6000_reset (void); 44extern void bvme6000_reset (void);
46void bvme6000_set_vectors (void); 45void bvme6000_set_vectors (void);
47 46
@@ -113,7 +112,6 @@ void __init config_bvme6000(void)
113 mach_init_IRQ = bvme6000_init_IRQ; 112 mach_init_IRQ = bvme6000_init_IRQ;
114 arch_gettimeoffset = bvme6000_gettimeoffset; 113 arch_gettimeoffset = bvme6000_gettimeoffset;
115 mach_hwclk = bvme6000_hwclk; 114 mach_hwclk = bvme6000_hwclk;
116 mach_set_clock_mmss = bvme6000_set_clock_mmss;
117 mach_reset = bvme6000_reset; 115 mach_reset = bvme6000_reset;
118 mach_get_model = bvme6000_get_model; 116 mach_get_model = bvme6000_get_model;
119 117
@@ -305,46 +303,3 @@ int bvme6000_hwclk(int op, struct rtc_time *t)
305 303
306 return 0; 304 return 0;
307} 305}
308
309/*
310 * Set the minutes and seconds from seconds value 'nowtime'. Fail if
311 * clock is out by > 30 minutes. Logic lifted from atari code.
312 * Algorithm is to wait for the 10ms register to change, and then to
313 * wait a short while, and then set it.
314 */
315
316int bvme6000_set_clock_mmss (unsigned long nowtime)
317{
318 int retval = 0;
319 short real_seconds = nowtime % 60, real_minutes = (nowtime / 60) % 60;
320 unsigned char rtc_minutes, rtc_tenms;
321 volatile RtcPtr_t rtc = (RtcPtr_t)BVME_RTC_BASE;
322 unsigned char msr = rtc->msr & 0xc0;
323 unsigned long flags;
324 volatile int i;
325
326 rtc->msr = 0; /* Ensure clock accessible */
327 rtc_minutes = bcd2bin (rtc->bcd_min);
328
329 if ((rtc_minutes < real_minutes
330 ? real_minutes - rtc_minutes
331 : rtc_minutes - real_minutes) < 30)
332 {
333 local_irq_save(flags);
334 rtc_tenms = rtc->bcd_tenms;
335 while (rtc_tenms == rtc->bcd_tenms)
336 ;
337 for (i = 0; i < 1000; i++)
338 ;
339 rtc->bcd_min = bin2bcd(real_minutes);
340 rtc->bcd_sec = bin2bcd(real_seconds);
341 local_irq_restore(flags);
342 }
343 else
344 retval = -1;
345
346 rtc->msr = msr;
347
348 return retval;
349}
350
diff --git a/arch/m68k/include/asm/machdep.h b/arch/m68k/include/asm/machdep.h
index 1605da48ebf2..49bd3266b4b1 100644
--- a/arch/m68k/include/asm/machdep.h
+++ b/arch/m68k/include/asm/machdep.h
@@ -22,7 +22,6 @@ extern int (*mach_hwclk)(int, struct rtc_time*);
22extern unsigned int (*mach_get_ss)(void); 22extern unsigned int (*mach_get_ss)(void);
23extern int (*mach_get_rtc_pll)(struct rtc_pll_info *); 23extern int (*mach_get_rtc_pll)(struct rtc_pll_info *);
24extern int (*mach_set_rtc_pll)(struct rtc_pll_info *); 24extern int (*mach_set_rtc_pll)(struct rtc_pll_info *);
25extern int (*mach_set_clock_mmss)(unsigned long);
26extern void (*mach_reset)( void ); 25extern void (*mach_reset)( void );
27extern void (*mach_halt)( void ); 26extern void (*mach_halt)( void );
28extern void (*mach_power_off)( void ); 27extern void (*mach_power_off)( void );
diff --git a/arch/m68k/kernel/setup_mm.c b/arch/m68k/kernel/setup_mm.c
index f35e3ebd6331..07244732eb41 100644
--- a/arch/m68k/kernel/setup_mm.c
+++ b/arch/m68k/kernel/setup_mm.c
@@ -88,7 +88,6 @@ void (*mach_get_hardware_list) (struct seq_file *m);
88/* machine dependent timer functions */ 88/* machine dependent timer functions */
89int (*mach_hwclk) (int, struct rtc_time*); 89int (*mach_hwclk) (int, struct rtc_time*);
90EXPORT_SYMBOL(mach_hwclk); 90EXPORT_SYMBOL(mach_hwclk);
91int (*mach_set_clock_mmss) (unsigned long);
92unsigned int (*mach_get_ss)(void); 91unsigned int (*mach_get_ss)(void);
93int (*mach_get_rtc_pll)(struct rtc_pll_info *); 92int (*mach_get_rtc_pll)(struct rtc_pll_info *);
94int (*mach_set_rtc_pll)(struct rtc_pll_info *); 93int (*mach_set_rtc_pll)(struct rtc_pll_info *);
diff --git a/arch/m68k/kernel/setup_no.c b/arch/m68k/kernel/setup_no.c
index a98af1018201..3c53e4c366ac 100644
--- a/arch/m68k/kernel/setup_no.c
+++ b/arch/m68k/kernel/setup_no.c
@@ -51,7 +51,6 @@ char __initdata command_line[COMMAND_LINE_SIZE];
51 51
52/* machine dependent timer functions */ 52/* machine dependent timer functions */
53void (*mach_sched_init)(irq_handler_t handler) __initdata = NULL; 53void (*mach_sched_init)(irq_handler_t handler) __initdata = NULL;
54int (*mach_set_clock_mmss)(unsigned long);
55int (*mach_hwclk) (int, struct rtc_time*); 54int (*mach_hwclk) (int, struct rtc_time*);
56 55
57/* machine dependent reboot functions */ 56/* machine dependent reboot functions */
diff --git a/arch/m68k/mac/config.c b/arch/m68k/mac/config.c
index d468a9d467a0..b02d7254b73a 100644
--- a/arch/m68k/mac/config.c
+++ b/arch/m68k/mac/config.c
@@ -57,7 +57,6 @@ static unsigned long mac_orig_videoaddr;
57/* Mac specific timer functions */ 57/* Mac specific timer functions */
58extern u32 mac_gettimeoffset(void); 58extern u32 mac_gettimeoffset(void);
59extern int mac_hwclk(int, struct rtc_time *); 59extern int mac_hwclk(int, struct rtc_time *);
60extern int mac_set_clock_mmss(unsigned long);
61extern void iop_preinit(void); 60extern void iop_preinit(void);
62extern void iop_init(void); 61extern void iop_init(void);
63extern void via_init(void); 62extern void via_init(void);
@@ -158,7 +157,6 @@ void __init config_mac(void)
158 mach_get_model = mac_get_model; 157 mach_get_model = mac_get_model;
159 arch_gettimeoffset = mac_gettimeoffset; 158 arch_gettimeoffset = mac_gettimeoffset;
160 mach_hwclk = mac_hwclk; 159 mach_hwclk = mac_hwclk;
161 mach_set_clock_mmss = mac_set_clock_mmss;
162 mach_reset = mac_reset; 160 mach_reset = mac_reset;
163 mach_halt = mac_poweroff; 161 mach_halt = mac_poweroff;
164 mach_power_off = mac_poweroff; 162 mach_power_off = mac_poweroff;
diff --git a/arch/m68k/mac/misc.c b/arch/m68k/mac/misc.c
index c2ff5059d3cc..19e9d8eef1f2 100644
--- a/arch/m68k/mac/misc.c
+++ b/arch/m68k/mac/misc.c
@@ -727,19 +727,3 @@ int mac_hwclk(int op, struct rtc_time *t)
727 } 727 }
728 return 0; 728 return 0;
729} 729}
730
731/*
732 * Set minutes/seconds in the hardware clock
733 */
734
735int mac_set_clock_mmss (unsigned long nowtime)
736{
737 struct rtc_time now;
738
739 mac_hwclk(0, &now);
740 now.tm_sec = nowtime % 60;
741 now.tm_min = (nowtime / 60) % 60;
742 mac_hwclk(1, &now);
743
744 return 0;
745}
diff --git a/arch/m68k/mvme147/config.c b/arch/m68k/mvme147/config.c
index f8a710fd84cd..adea549d240e 100644
--- a/arch/m68k/mvme147/config.c
+++ b/arch/m68k/mvme147/config.c
@@ -40,7 +40,6 @@ static void mvme147_get_model(char *model);
40extern void mvme147_sched_init(irq_handler_t handler); 40extern void mvme147_sched_init(irq_handler_t handler);
41extern u32 mvme147_gettimeoffset(void); 41extern u32 mvme147_gettimeoffset(void);
42extern int mvme147_hwclk (int, struct rtc_time *); 42extern int mvme147_hwclk (int, struct rtc_time *);
43extern int mvme147_set_clock_mmss (unsigned long);
44extern void mvme147_reset (void); 43extern void mvme147_reset (void);
45 44
46 45
@@ -92,7 +91,6 @@ void __init config_mvme147(void)
92 mach_init_IRQ = mvme147_init_IRQ; 91 mach_init_IRQ = mvme147_init_IRQ;
93 arch_gettimeoffset = mvme147_gettimeoffset; 92 arch_gettimeoffset = mvme147_gettimeoffset;
94 mach_hwclk = mvme147_hwclk; 93 mach_hwclk = mvme147_hwclk;
95 mach_set_clock_mmss = mvme147_set_clock_mmss;
96 mach_reset = mvme147_reset; 94 mach_reset = mvme147_reset;
97 mach_get_model = mvme147_get_model; 95 mach_get_model = mvme147_get_model;
98 96
@@ -164,8 +162,3 @@ int mvme147_hwclk(int op, struct rtc_time *t)
164 } 162 }
165 return 0; 163 return 0;
166} 164}
167
168int mvme147_set_clock_mmss (unsigned long nowtime)
169{
170 return 0;
171}
diff --git a/arch/m68k/mvme16x/config.c b/arch/m68k/mvme16x/config.c
index 4ffd9ef98de4..6ee36a5b528d 100644
--- a/arch/m68k/mvme16x/config.c
+++ b/arch/m68k/mvme16x/config.c
@@ -46,7 +46,6 @@ static void mvme16x_get_model(char *model);
46extern void mvme16x_sched_init(irq_handler_t handler); 46extern void mvme16x_sched_init(irq_handler_t handler);
47extern u32 mvme16x_gettimeoffset(void); 47extern u32 mvme16x_gettimeoffset(void);
48extern int mvme16x_hwclk (int, struct rtc_time *); 48extern int mvme16x_hwclk (int, struct rtc_time *);
49extern int mvme16x_set_clock_mmss (unsigned long);
50extern void mvme16x_reset (void); 49extern void mvme16x_reset (void);
51 50
52int bcd2int (unsigned char b); 51int bcd2int (unsigned char b);
@@ -280,7 +279,6 @@ void __init config_mvme16x(void)
280 mach_init_IRQ = mvme16x_init_IRQ; 279 mach_init_IRQ = mvme16x_init_IRQ;
281 arch_gettimeoffset = mvme16x_gettimeoffset; 280 arch_gettimeoffset = mvme16x_gettimeoffset;
282 mach_hwclk = mvme16x_hwclk; 281 mach_hwclk = mvme16x_hwclk;
283 mach_set_clock_mmss = mvme16x_set_clock_mmss;
284 mach_reset = mvme16x_reset; 282 mach_reset = mvme16x_reset;
285 mach_get_model = mvme16x_get_model; 283 mach_get_model = mvme16x_get_model;
286 mach_get_hardware_list = mvme16x_get_hardware_list; 284 mach_get_hardware_list = mvme16x_get_hardware_list;
@@ -411,9 +409,3 @@ int mvme16x_hwclk(int op, struct rtc_time *t)
411 } 409 }
412 return 0; 410 return 0;
413} 411}
414
415int mvme16x_set_clock_mmss (unsigned long nowtime)
416{
417 return 0;
418}
419
diff --git a/arch/m68k/q40/config.c b/arch/m68k/q40/config.c
index 71c0867ecf20..96810d91da2b 100644
--- a/arch/m68k/q40/config.c
+++ b/arch/m68k/q40/config.c
@@ -43,7 +43,6 @@ extern void q40_sched_init(irq_handler_t handler);
43static u32 q40_gettimeoffset(void); 43static u32 q40_gettimeoffset(void);
44static int q40_hwclk(int, struct rtc_time *); 44static int q40_hwclk(int, struct rtc_time *);
45static unsigned int q40_get_ss(void); 45static unsigned int q40_get_ss(void);
46static int q40_set_clock_mmss(unsigned long);
47static int q40_get_rtc_pll(struct rtc_pll_info *pll); 46static int q40_get_rtc_pll(struct rtc_pll_info *pll);
48static int q40_set_rtc_pll(struct rtc_pll_info *pll); 47static int q40_set_rtc_pll(struct rtc_pll_info *pll);
49 48
@@ -175,7 +174,6 @@ void __init config_q40(void)
175 mach_get_ss = q40_get_ss; 174 mach_get_ss = q40_get_ss;
176 mach_get_rtc_pll = q40_get_rtc_pll; 175 mach_get_rtc_pll = q40_get_rtc_pll;
177 mach_set_rtc_pll = q40_set_rtc_pll; 176 mach_set_rtc_pll = q40_set_rtc_pll;
178 mach_set_clock_mmss = q40_set_clock_mmss;
179 177
180 mach_reset = q40_reset; 178 mach_reset = q40_reset;
181 mach_get_model = q40_get_model; 179 mach_get_model = q40_get_model;
@@ -267,34 +265,6 @@ static unsigned int q40_get_ss(void)
267 return bcd2bin(Q40_RTC_SECS); 265 return bcd2bin(Q40_RTC_SECS);
268} 266}
269 267
270/*
271 * Set the minutes and seconds from seconds value 'nowtime'. Fail if
272 * clock is out by > 30 minutes. Logic lifted from atari code.
273 */
274
275static int q40_set_clock_mmss(unsigned long nowtime)
276{
277 int retval = 0;
278 short real_seconds = nowtime % 60, real_minutes = (nowtime / 60) % 60;
279
280 int rtc_minutes;
281
282 rtc_minutes = bcd2bin(Q40_RTC_MINS);
283
284 if ((rtc_minutes < real_minutes ?
285 real_minutes - rtc_minutes :
286 rtc_minutes - real_minutes) < 30) {
287 Q40_RTC_CTRL |= Q40_RTC_WRITE;
288 Q40_RTC_MINS = bin2bcd(real_minutes);
289 Q40_RTC_SECS = bin2bcd(real_seconds);
290 Q40_RTC_CTRL &= ~(Q40_RTC_WRITE);
291 } else
292 retval = -1;
293
294 return retval;
295}
296
297
298/* get and set PLL calibration of RTC clock */ 268/* get and set PLL calibration of RTC clock */
299#define Q40_RTC_PLL_MASK ((1<<5)-1) 269#define Q40_RTC_PLL_MASK ((1<<5)-1)
300#define Q40_RTC_PLL_SIGN (1<<5) 270#define Q40_RTC_PLL_SIGN (1<<5)