# device ## Description A hardware device within the chassis. The following devices should be defined in the config file: * Voltage regulators that require configuration or monitoring. * Other devices that are required to configure or monitor regulators. For example, an I/O expander may provide necessary information about a regulator. ## Properties | Name | Required | Type | Description | | :--- | :------: | :--- | :---------- | | comments | no | array of strings | One or more comment lines describing this device. | | id | yes | string | Unique ID for this device. Can only contain letters (A-Z, a-z), numbers (0-9), and underscore (\_). | | is_regulator | yes | boolean (true or false) | Indicates whether this device is a voltage regulator (phase controller). | | fru | yes | string | Field-Replaceable Unit (FRU) for this device. Specify the D-Bus inventory path of the FRU. If the device itself is not a FRU, specify the FRU that contains it. | | i2c_interface | yes | [i2c_interface](i2c_interface.md) | I2C interface to this device. | | 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. | | 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. | | 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. | ## Example ``` { "comments": [ "IR35221 regulator producing the Vdd rail" ], "id": "vdd_regulator", "is_regulator": true, "fru": "/system/chassis/motherboard/regulator2", "i2c_interface": { "bus": 1, "address": "0x70" }, "configuration": { "rule_id": "configure_ir35221_rule" }, "rails": [ { "id": "vdd", ... details omitted ... } ] } ```