## Overview The `UCD90xMonitor` class and its subclasses determine the device configuration from a JSON configuration file. The configuration file describes the power sequencer rails and power good (pgood) pins defined in the system. ## File Name The expected filename format is `Monitor_.json`, where `` is the specific power sequencer device type (UCD90320 or UCD90160), and `` is a `Compatible System` name from a `Chassis` Entity Manager configuration file. Example file name: ``` UCD90320Monitor_mysystem.json ``` ## File Format The configuration consists of an array of `rails` and an array of `pins`. Both `rails` and `pins` use a `name` element. The name element should be mnemonic and unique. If the BMC system utilizes the openpower-pels extension, then it will be used as an index into the `phosphor-logging` Message Registry. Example `rails` array with `name` elements: ``` "rails": [ { "name": "12.0V" }, { "name": "VDN_DCM0" } ] ``` The `pins` array also uses a `line` element which is the GPIO line number of the pgood pin in the power sequencer device. Example `pins` array with `name` and `line` elements: ``` "pins": [ { "name": "5.0V", "line": 67 }, { "name": "VCS_DCM0", "line": 74 } ] ``` Both `rails` and `pins` can optionally define a `presence` element which is an inventory path to a system component which must be present in order for the rail or pin to be used in failure isolation. By default, a rail or pin is considered to be present, which could mean the necessary parts are always present in the system or that a not present part would not cause a pgood failure. Example `rails` array element including `presence` element: ``` { "name": "VCS1", "presence": "/xyz/openbmc_project/inventory/system/chassis/motherboard/vrm1" } ``` Example `pins` array element including `presence` element: ``` { "name": "VPCIE", "line": 61, "presence": "/xyz/openbmc_project/inventory/system/chassis/motherboard/vrm0" } ```