1{
2    "comments": ["phosphor-regulators configuration file for IBM Fuji systems"],
3
4    "rules": [
5        {
6            "comments": ["Rule to set PMBus PAGE to 0"],
7            "id": "set_page0_rule",
8            "actions": [
9                { "i2c_write_byte": { "register": "0x00", "value": "0x00" } }
10            ]
11        },
12
13        {
14            "comments": ["Rule to set PMBus PAGE to 1"],
15            "id": "set_page1_rule",
16            "actions": [
17                { "i2c_write_byte": { "register": "0x00", "value": "0x01" } }
18            ]
19        },
20
21        {
22            "comments": ["Rule to set output voltage of a PMBus regulator"],
23            "id": "set_voltage_rule",
24            "actions": [
25                {
26                    "comments": [
27                        "Write volts value to VOUT_COMMAND in linear format.",
28                        "Get volts value from configuration.  Get exponent",
29                        "from VOUT_MODE.  Verify write was successful."
30                    ],
31                    "pmbus_write_vout_command": {
32                        "format": "linear",
33                        "is_verified": true
34                    }
35                }
36            ]
37        },
38
39        {
40            "comments": [
41                "Rule to set output voltage of PAGE 0 of a PMBus regulator"
42            ],
43            "id": "set_voltage_page0_rule",
44            "actions": [
45                { "run_rule": "set_page0_rule" },
46                { "run_rule": "set_voltage_rule" }
47            ]
48        },
49
50        {
51            "comments": [
52                "Rule to set output voltage of PAGE 1 of a PMBus regulator"
53            ],
54            "id": "set_voltage_page1_rule",
55            "actions": [
56                { "run_rule": "set_page1_rule" },
57                { "run_rule": "set_voltage_rule" }
58            ]
59        },
60
61        {
62            "comments": [
63                "Rule to set output voltage of a PMBus regulator using",
64                "PMBus OPERATION and VOUT_COMMAND"
65            ],
66            "id": "set_operation_and_voltage_rule",
67            "actions": [
68                {
69                    "comments": [
70                        "Set PMBus OPERATION to 0x80 indicating output voltage",
71                        "is set by the PMBus VOUT_COMMAND"
72                    ],
73                    "i2c_write_byte": { "register": "0x01", "value": "0x80" }
74                },
75
76                {
77                    "comments": [
78                        "Set the output voltage using the PMBus VOUT_COMMAND"
79                    ],
80                    "run_rule": "set_voltage_rule"
81                },
82
83                {
84                    "comments": [
85                        "Set PMBus OPERATION to 0xB0 indicating output voltage",
86                        "will now be set by AVSBus (AVS_VOUT_COMMAND).",
87                        "Hardware settings cause the VOUT_COMMAND value to be",
88                        "the initial voltage value for AVSBus."
89                    ],
90                    "i2c_write_byte": { "register": "0x01", "value": "0xB0" }
91                }
92            ]
93        }
94    ],
95
96    "chassis": [
97        {
98            "comments": ["Chassis (drawer) 1", "Note: Devices not defined yet"],
99            "number": 1,
100            "inventory_path": "system/chassis"
101        }
102    ]
103}
104