Commit 410e9197 authored by Adam Wujek's avatar Adam Wujek

main_fw/i2c: add CAPABILITY register

Signed-off-by: 's avatarAdam Wujek <dev_public@wujek.eu>
parent 68dc65aa
Pipeline #3681 passed with stage
in 49 seconds
......@@ -10,6 +10,9 @@
typedef void(*fp_t)(void);
/* Defines for CAPABILITY */
#define CAPABILITY_PEC 0x80
/* Defines for STATUS_BYTE */
#define STATUS_CML 0x1
......
......@@ -211,6 +211,30 @@ parameter are :math:`0 \leq N \leq 3` for the DI/OT Rad-Tol System
Board revision and :math:`0 \leq N \leq 2` for the fan-tray, RaToPUS
and generic prototype revisions.
.. _CAPABILITY:
CAPABILITY
~~~~~~~~~~
| Command code: **19**
| Transaction type: **Byte read**
| Data length: **1**
The CAPABILITY command returns one byte of information with some key
capabilities of a PMBus device.
.. table:: CAPABILITY Data byte format
+--------+------------------------------------------------------+
| Bit(s) | Meaning |
+--------+------------------------------------------------------+
| 7 | Packet Error Checking is supported |
+--------+------------------------------------------------------+
| 6:0 | Unused |
+--------+------------------------------------------------------+
Bit 7 of the CAPABILITY register reflects the use of PEC set by the USE_PEC_ register.
.. _QUERY:
QUERY
......
......@@ -78,7 +78,9 @@ uint32_t TMR_ERROR_CNT;
static uint8_t dummy_byte;
static uint8_t fw_type = FW_MAIN;
static uint8_t capablity;
void get_capablity(void);
void get_frpms(void);
void set_frpms();
uint16_t setfrpms_lin[3];
......@@ -109,6 +111,7 @@ void boot_new_fw();
enum {
cmd_0x00 = 0,
cmd_0x19,
cmd_0x1A,
cmd_0x20,
cmd_0x3A,
......@@ -148,6 +151,7 @@ enum {
/* "- 1" to avoid adding null char at the end of a string */
static const int8_t cmd_data_lengths[] = {
[cmd_0x00] = 1,
[cmd_0x19] = 1,
[cmd_0x1A] = -1,
[cmd_0x20] = 1,
[cmd_0x3A] = 1,
......@@ -189,6 +193,7 @@ static int8_t cmd_data_length_query = -1;
static const cmd_t cmds_cmds[] = (cmd_t[]){
{0x00, (int8_t *)&cmd_data_lengths[cmd_0x00], (uint8_t *)&page_tmp, (fp_t)NULL, &page_chk, (fp_t)NULL, QUERY_WR | QUERY_RD | QUERY_FMT_8B, 0},
{0x19, (int8_t *)&cmd_data_lengths[cmd_0x19], (uint8_t *)&capablity, &get_capablity, (fp_t)NULL, (fp_t)NULL, QUERY_RD, 0},
{0x1A, (int8_t *)&cmd_data_length_query, (uint8_t *)&query_r, (fp_t)NULL, &query_prp, (fp_t)NULL, QUERY_WR, 1},
{0x20, (int8_t *)&cmd_data_lengths[cmd_0x20], (uint8_t *)&vout_mode, (fp_t)NULL, (fp_t)NULL, (fp_t)NULL, QUERY_RD, 1},
{0x3A, (int8_t *)&cmd_data_lengths[cmd_0x3A], (uint8_t *)&fan_config_1_2, &get_fan_configs, &fan_config, (fp_t)NULL, QUERY_WR | QUERY_RD | QUERY_FMT_NAN,0},
......@@ -270,6 +275,10 @@ void __xMR page_chk()
page = page_tmp;
}
void __xMR get_capablity()
{
capablity = use_pec ? CAPABILITY_PEC : 0;
}
void __xMR accvolt()
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment