1.1 --- a/board-nanonote.c Sun Jun 07 02:14:23 2015 +0200
1.2 +++ b/board-nanonote.c Sun Jun 07 02:18:33 2015 +0200
1.3 @@ -4,7 +4,7 @@
1.4 * Copyright (C) 2015 Paul Boddie <paul@boddie.org.uk>
1.5 * Copyright (C) Xiangfu Liu <xiangfu.z@gmail.com>
1.6 * Copyright (C) 2006 Ingenic Semiconductor, <jlwei@ingenic.cn>
1.7 - * Copyright (C) 2003 Wolfgang Denk, DENX Software Engineering, <wd@denx.de>
1.8 + * Copyright (C) 2000-2009 Wolfgang Denk, DENX Software Engineering, <wd@denx.de>
1.9 *
1.10 * This program is free software; you can redistribute it and/or modify it under
1.11 * the terms of the GNU General Public License as published by the Free Software
1.12 @@ -281,25 +281,37 @@
1.13
1.14 void rtc_init(void)
1.15 {
1.16 - while ( !__rtc_write_ready()) ;
1.17 + while ( !__rtc_write_ready());
1.18 __rtc_enable_alarm(); /* enable alarm */
1.19
1.20 - while ( !__rtc_write_ready())
1.21 - ;
1.22 + while ( !__rtc_write_ready());
1.23 REG_RTC_RGR = 0x00007fff; /* type value */
1.24
1.25 - while ( !__rtc_write_ready())
1.26 - ;
1.27 + while ( !__rtc_write_ready());
1.28 REG_RTC_HWFCR = 0x0000ffe0; /* Power on delay 2s */
1.29
1.30 - while ( !__rtc_write_ready())
1.31 - ;
1.32 + while ( !__rtc_write_ready());
1.33 REG_RTC_HRCR = 0x00000fe0; /* reset delay 125ms */
1.34 }
1.35
1.36 -/*
1.37 - * Timer routines
1.38 - */
1.39 +unsigned long get_memory_size(void)
1.40 +{
1.41 + unsigned int dmcr;
1.42 + unsigned int rows, cols, dw, banks;
1.43 + unsigned long size;
1.44 +
1.45 + dmcr = REG_EMC_DMCR;
1.46 + rows = 11 + ((dmcr & EMC_DMCR_RA_MASK) >> EMC_DMCR_RA_BIT);
1.47 + cols = 8 + ((dmcr & EMC_DMCR_CA_MASK) >> EMC_DMCR_CA_BIT);
1.48 + dw = (dmcr & EMC_DMCR_BW) ? 2 : 4;
1.49 + banks = (dmcr & EMC_DMCR_BA) ? 4 : 2;
1.50 +
1.51 + size = (1 << (rows + cols)) * dw * banks;
1.52 +
1.53 + return size;
1.54 +}
1.55 +
1.56 +/* Timer routines. */
1.57
1.58 #define TIMER_CHAN 0
1.59 #define TIMER_FDATA 0xffff /* Timer full data value */
2.1 --- a/board-nanonote.h Sun Jun 07 02:14:23 2015 +0200
2.2 +++ b/board-nanonote.h Sun Jun 07 02:18:33 2015 +0200
2.3 @@ -1,6 +1,8 @@
2.4 #ifndef __BOARD_NANONOTE_H__
2.5 #define __BOARD_NANONOTE_H__
2.6
2.7 +/* Initialisation functions. */
2.8 +
2.9 void load_args(void);
2.10 void gpio_init(void);
2.11 void gpio_init2(void);
2.12 @@ -9,7 +11,11 @@
2.13 void sdram_init(void);
2.14 void rtc_init(void);
2.15 int timer_init(void);
2.16 +
2.17 +/* Utility functions. */
2.18 +
2.19 void udelay(unsigned long usec);
2.20 void flush_cache_all(void);
2.21 +unsigned long get_memory_size(void);
2.22
2.23 #endif /* __BOARD_NANONOTE_H__ */