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| rails | no | array of [rails](rail.md) | One or more voltage rails produced by this device. This property can only be specified if the "is_regulator" property is true. | 22 23## Example 24``` 25{ 26 "comments": [ "IR35221 regulator producing the Vdd rail" ], 27 "id": "vdd_regulator", 28 "is_regulator": true, 29 "fru": "system/chassis/motherboard/regulator2", 30 "i2c_interface": { 31 "bus": 1, 32 "address": "0x70" 33 }, 34 "configuration": { 35 "rule_id": "configure_ir35221_rule" 36 }, 37 "rails": [ 38 { 39 "id": "vdd", 40 ... details omitted ... 41 } 42 ] 43} 44``` 45