@ -32,9 +32,9 @@
* The test passes when all the following voltages and temperatures
* are within allowed ranges :
*
* Temperature - 40 . . + 85 C
* + 5 V + 4.7 5 . . + 5.2 5 V
* + 5 V standby + 4.75 . . + 5.2 5 V
* Temperature - 40 . . + 90 C
* + 5 V + 4.50 . . + 5.50 V
* + 5 V standby + 3.50 . . + 5.50 V
*
* LCD backlight is not enabled if temperature values are not within
* allowed ranges ( - 30 . . + 80 ) . The brightness of backlite can be
@ -60,6 +60,21 @@ extern int dspic_read(ushort reg);
# define RELOC(x) if (x != NULL) x = (void *) ((ulong) (x) + gd->reloc_off)
# define REG_TEMPERATURE 0x12BC
# define REG_VOLTAGE_5V 0x12CA
# define REG_VOLTAGE_5V_STANDBY 0x12C6
# define TEMPERATURE_MIN (-40) /* degr. C */
# define TEMPERATURE_MAX (+90) /* degr. C */
# define TEMPERATURE_DISPLAY_MIN (-35) /* degr. C */
# define TEMPERATURE_DISPLAY_MAX (+85) /* degr. C */
# define VOLTAGE_5V_MIN (+4500) /* mV */
# define VOLTAGE_5V_MAX (+5500) /* mV */
# define VOLTAGE_5V_STANDBY_MIN (+3500) /* mV */
# define VOLTAGE_5V_STANDBY_MAX (+5500) /* mV */
typedef struct sysmon_s sysmon_t ;
typedef struct sysmon_table_s sysmon_table_t ;
@ -107,17 +122,31 @@ struct sysmon_table_s
static sysmon_table_t sysmon_table [ ] =
{
{ " Temperature " , " C " , & sysmon_dspic , NULL , sysmon_backlight_disable ,
1 , 1 , - 32768 , 32767 , 0xFFFF , 0x8000 - 40 , 0x8000 + 85 , 0 ,
0x8000 - 30 , 0x8000 + 80 , 0 , 0x12BC } ,
{ " + 5 V " , " V " , & sysmon_dspic , NULL , NULL ,
100 , 1000 , - 0x8000 , 0x7FFF , 0xFFFF , 0x8000 + 4750 , 0x8000 + 5250 , 0 ,
0x8000 + 4750 , 0x8000 + 5250 , 0 , 0x12CA } ,
{ " + 5 V standby " , " V " , & sysmon_dspic , NULL , NULL ,
100 , 1000 , - 0x8000 , 0x7FFF , 0xFFFF , 0x8000 + 4750 , 0x8000 + 5250 , 0 ,
0x8000 + 4750 , 0x8000 + 5250 , 0 , 0x12C6 } ,
{
" Temperature " , " C " , & sysmon_dspic , NULL , sysmon_backlight_disable ,
1 , 1 , - 32768 , 32767 , 0xFFFF ,
0x8000 + TEMPERATURE_MIN , 0x8000 + TEMPERATURE_MAX , 0 ,
0x8000 + TEMPERATURE_DISPLAY_MIN , 0x8000 + TEMPERATURE_DISPLAY_MAX , 0 ,
REG_TEMPERATURE
} ,
{
" + 5 V " , " V " , & sysmon_dspic , NULL , NULL ,
100 , 1000 , - 0x8000 , 0x7FFF , 0xFFFF ,
100 , 1000 , 0 , 0xFFFF , 0xFFFF ,
VOLTAGE_5V_MIN , VOLTAGE_5V_MAX , 0 ,
VOLTAGE_5V_MIN , VOLTAGE_5V_MAX , 0 ,
REG_VOLTAGE_5V
} ,
{
" + 5 V standby " , " V " , & sysmon_dspic , NULL , NULL ,
100 , 1000 , - 0x8000 , 0x7FFF , 0xFFFF ,
100 , 1000 , 0 , 0xFFFF , 0xFFFF ,
VOLTAGE_5V_STANDBY_MIN , VOLTAGE_5V_STANDBY_MAX , 0 ,
VOLTAGE_5V_STANDBY_MIN , VOLTAGE_5V_STANDBY_MAX , 0 ,
REG_VOLTAGE_5V_STANDBY
} ,
} ;
static int sysmon_table_size = sizeof ( sysmon_table ) / sizeof ( sysmon_table [ 0 ] ) ;