|
@@ -32,9 +32,9 @@
|
|
|
* The test passes when all the following voltages and temperatures
|
|
|
* are within allowed ranges:
|
|
|
*
|
|
|
- * Temperature -40 .. +85 C
|
|
|
- * +5V +4.75 .. +5.25 V
|
|
|
- * +5V standby +4.75 .. +5.25 V
|
|
|
+ * Temperature -40 .. +90 C
|
|
|
+ * +5V +4.50 .. +5.50 V
|
|
|
+ * +5V 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]);
|
|
|
|