1## Overview
2
3The `UCD90xMonitor` class and its subclasses determine the device configuration
4from a JSON configuration file. The configuration file describes the power
5sequencer rails and power good (pgood) pins defined in the system.
6
7## File Name
8
9The expected filename format is `<device>Monitor_<systemType>.json`, where
10`<device>` is the specific power sequencer device type (UCD90320 or UCD90160),
11and `<systemType>` is a `Compatible System` name from a `Chassis` Entity Manager
12configuration file.
13
14Example file name:
15
16```
17UCD90320Monitor_mysystem.json
18```
19
20## File Format
21
22The configuration consists of an array of `rails` and an array of `pins`. Both
23`rails` and `pins` use a `name` element. The name element should be mnemonic and
24unique. If the BMC system utilizes the openpower-pels extension, then it will be
25used as an index into the `phosphor-logging` Message Registry.
26
27Example `rails` array with `name` elements:
28
29```
30"rails": [
31    { "name": "12.0V" },
32    { "name": "VDN_DCM0" }
33]
34```
35
36The `pins` array also uses a `line` element which is the GPIO line number of the
37pgood pin in the power sequencer device.
38
39Example `pins` array with `name` and `line` elements:
40
41```
42"pins": [
43    {
44        "name": "5.0V",
45        "line": 67
46    },
47    {
48        "name": "VCS_DCM0",
49        "line": 74
50    }
51]
52```
53
54Both `rails` and `pins` can optionally define a `presence` element which is an
55inventory path to a system component which must be present in order for the rail
56or pin to be used in failure isolation. By default, a rail or pin is considered
57to be present, which could mean the necessary parts are always present in the
58system or that a not present part would not cause a pgood failure.
59
60Example `rails` array element including `presence` element:
61
62```
63{
64    "name": "VCS1",
65    "presence": "/xyz/openbmc_project/inventory/system/chassis/motherboard/vrm1"
66}
67```
68
69Example `pins` array element including `presence` element:
70
71```
72{
73    "name": "VPCIE",
74    "line": 61,
75    "presence": "/xyz/openbmc_project/inventory/system/chassis/motherboard/vrm0"
76}
77```
78