description: >
    Implement to provide control of voltage regulator devices from dbus
    Control.VoltageRegulatorProfile.Supported is read only.  Implementation of
    the Supported property populates the list of supported modes.  In the case
    where the VR has a well defined default, implementations should place the
    default in index 0. Control.VoltageRegulatorProfile.Current is read/write
    and sets the implementation specific mode for the voltage regulator to run
    in.  The definitions of said enum are implementation defined, as systems
    likely will have a multitude of possible states.  Some examples of naming
    might be "HighPower" or "LowPower" in the case of bipolar power states, or
    might be something more complex like, "Profile 1", "Profile 2", "Profile 3"
    if the VR itself defines the interfaces. Implementations may implement this
    alongside to a VoltageRegulatorControl interface, and may react to the
    results of changes to the Control interface.

    Any service implementing Control.VoltageRegulatorControlMode on one or more
    objects must implement org.freedesktop.DBus.ObjectManager on
    /xyz/openbmc_project/vr. DBus objects must fall under this path so that they
    can be found through the GetManagedObjects DBus method.

properties:
    - name: Supported
      type: array[string]
      flags:
          - readonly
      description: >
          An implementation specific list of supported modes that the voltage
          regulator control application can be configured to provide for a
          platform.
    - name: Selected
      type: string
      default: "Default"
      description: >
          The current mode the voltage regulator control application should
          use.  This can be read to verify the current mode, or written to
          change to a new mode.
