]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - board/w7o/post2.c
rename CFG_ macros to CONFIG_SYS
[karo-tx-uboot.git] / board / w7o / post2.c
1 /*
2  * (C) Copyright 2001
3  * Bill Hunter, Wave 7 Optics, williamhunter@mediaone.net
4  *   and
5  * Erik Theisen, Wave 7 Optics, etheisen@mindspring.com.
6  *
7  * See file CREDITS for list of people who contributed to this
8  * project.
9  *
10  * This program is free software; you can redistribute it and/or
11  * modify it under the terms of the GNU General Public License as
12  * published by the Free Software Foundation; either version 2 of
13  * the License, or (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program; if not, write to the Free Software
22  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
23  * MA 02111-1307 USA
24  */
25
26 #include <common.h>
27 #include <config.h>
28 #include <rtc.h>
29 #include "errors.h"
30 #include "dtt.h"
31
32 /* for LM75 DTT POST test */
33 #define DTT_READ_TEMP           0x0
34 #define DTT_CONFIG              0x1
35 #define DTT_TEMP_HYST           0x2
36 #define DTT_TEMP_SET            0x3
37
38 #if defined(CONFIG_RTC_M48T35A)
39 void rtctest(void)
40 {
41     volatile uchar *tchar = (uchar*)(CONFIG_SYS_NVRAM_BASE_ADDR + CONFIG_SYS_NVRAM_SIZE - 9);
42     struct rtc_time tmp;
43
44     /* set up led code for RTC tests */
45     log_stat(ERR_RTCG);
46
47     /*
48      * Do RTC battery test. The first write after power up
49      * fails if battery is low.
50      */
51     *tchar = 0xaa;
52     if ((*tchar ^ 0xaa) != 0x0) log_warn(ERR_RTCBAT);
53     *tchar = 0x55;                              /* Reset test address */
54
55     /*
56      * Now lets check the validity of the values in the RTC.
57      */
58     rtc_get(&tmp);
59     if ((tmp.tm_sec < 0)        | (tmp.tm_sec  > 59)   |
60         (tmp.tm_min < 0)        | (tmp.tm_min  > 59)   |
61         (tmp.tm_hour < 0)       | (tmp.tm_hour > 23)   |
62         (tmp.tm_mday < 1 )      | (tmp.tm_mday > 31)   |
63         (tmp.tm_mon < 1 )       | (tmp.tm_mon  > 12)   |
64         (tmp.tm_year < 2000)    | (tmp.tm_year > 2500) |
65         (tmp.tm_wday < 1 )      | (tmp.tm_wday > 7)) {
66         log_warn(ERR_RTCTIM);
67         rtc_reset();
68     }
69
70     /*
71      * Now lets do a check to see if the NV RAM is there.
72      */
73     *tchar = 0xaa;
74     if ((*tchar ^ 0xaa) != 0x0) log_err(ERR_RTCVAL);
75     *tchar = 0x55;                              /* Reset test address */
76
77 } /* rtctest() */
78 #endif  /* CONFIG_RTC_M48T35A */
79
80
81 #ifdef CONFIG_DTT_LM75
82 int dtt_test(int sensor)
83 {
84     short temp, trip, hyst;
85
86     /* get values */
87     temp = dtt_read(sensor, DTT_READ_TEMP) / 256;
88     trip = dtt_read(sensor, DTT_TEMP_SET) / 256;
89     hyst = dtt_read(sensor, DTT_TEMP_HYST) / 256;
90
91     /* check values */
92     if ((hyst != (CONFIG_SYS_DTT_MAX_TEMP - CONFIG_SYS_DTT_HYSTERESIS)) ||
93         (trip != CONFIG_SYS_DTT_MAX_TEMP) ||
94         (temp < CONFIG_SYS_DTT_LOW_TEMP) || (temp > CONFIG_SYS_DTT_MAX_TEMP))
95         return 1;
96
97     return 0;
98 } /* dtt_test() */
99 #endif /* CONFIG_DTT_LM75 */
100
101 /*****************************************/
102
103 void post2(void)
104 {
105 #if defined(CONFIG_RTC_M48T35A)
106     rtctest();
107 #endif  /* CONFIG_RTC_M48T35A */
108
109 #ifdef CONFIG_DTT_LM75
110     log_stat(ERR_TempG);
111     if(dtt_test(2) != 0) log_warn(ERR_Ttest0);
112     if(dtt_test(4) != 0) log_warn(ERR_Ttest1);
113 #endif /* CONFIG_DTT_LM75 */
114 } /* post2() */