1# device 2 3## Description 4A hardware device within the chassis. 5 6The following devices should be defined in the config file: 7* Voltage regulators that require configuration or monitoring. 8* Other devices that are required to configure or monitor regulators. For 9 example, an I/O expander may provide necessary information about a regulator. 10 11## Properties 12| Name | Required | Type | Description | 13| :--- | :------: | :--- | :---------- | 14| comments | no | array of strings | One or more comment lines describing this device. | 15| id | yes | string | Unique ID for this device. Can only contain letters (A-Z, a-z), numbers (0-9), and underscore (\_). | 16| is_regulator | yes | boolean (true or false) | Indicates whether this device is a voltage regulator (phase controller). | 17| fru | yes | string | Field-Replaceable Unit (FRU) for this device. If the device itself is not a FRU, specify the FRU that contains it. Specify the relative D-Bus inventory path of the FRU. Full inventory paths begin with the root "/xyz/openbmc_project/inventory". Specify the relative path below the root, such as "system/chassis/motherboard/regulator2". | 18| i2c_interface | yes | [i2c_interface](i2c_interface.md) | I2C interface to this device. | 19| presence_detection | no | [presence_detection](presence_detection.md) | Specifies how to detect whether this device is present. If this property is not specified, the device is assumed to always be present. | 20| configuration | no | [configuration](configuration.md) | Specifies configuration changes that should be applied to this device. These changes usually override hardware default settings. The configuration changes are applied during the boot before regulators are enabled. | 21| phase_fault_detection | no | [phase_fault_detection](phase_fault_detection.md) | Specifies how to detect and log redundant phase faults in this voltage regulator. Can only be specified if the "is_regulator" property is true. | 22| rails | no | array of [rails](rail.md) | One or more voltage rails produced by this device. Can only be specified if the "is_regulator" property is true. | 23 24## Example 25``` 26{ 27 "comments": [ "IR35221 regulator producing the Vdd rail" ], 28 "id": "vdd_regulator", 29 "is_regulator": true, 30 "fru": "system/chassis/motherboard/regulator2", 31 "i2c_interface": { 32 "bus": 1, 33 "address": "0x70" 34 }, 35 "configuration": { 36 "rule_id": "configure_ir35221_rule" 37 }, 38 "rails": [ 39 { 40 "id": "vdd", 41 ... details omitted ... 42 } 43 ] 44} 45``` 46