<root>
  <!-- ******** Controls ******** -->
  <control>
    <name>kbd_en</name>
    <doc>Enable servo to assert certain keypresses via kbd_m1 and
    kbd_m2</doc>
    <params subtype="kbd_en" interface="10" drv="ec" map="onoff"
    clobber_ok="full"/>
  </control>
  <control>
    <name>kbd_m1_a0</name>
    <doc>kbd_m1_a0</doc>
    <params subtype="kbd_m1_a0" interface="10" drv="ec" map="onoff"
    clobber_ok="full"/>
  </control>
  <control>
    <name>kbd_m1_a1</name>
    <doc>kbd_m1_a1</doc>
    <params subtype="kbd_m1_a1" interface="10" drv="ec" map="onoff"
    clobber_ok="full"/>
  </control>
  <control>
    <name>kbd_m2_a0</name>
    <doc>kbd_m2_a0</doc>
    <params subtype="kbd_m2_a0" interface="10" drv="ec" map="onoff"
    clobber_ok="full"/>
  </control>
  <control>
    <name>kbd_m2_a1</name>
    <doc>kbd_m2_a1</doc>
    <params subtype="kbd_m2_a1" interface="10" drv="ec" map="onoff"
    clobber_ok="full"/>
  </control>
  <control>
    <name>avg_ppvar_vbat_ma</name>
    <doc>milliamps being consumed (discharging/positive) or supplied
    (charging/negative) to the battery. 1 minute running
    average</doc>
    <params cmd="get" uart_cmd="pwr_avg" regex="ma = (-?\d+)[\r\n]+"
    group="1" formatting="int,negative" interface="10" drv="simple_ec"></params>
  </control>
  <control>
    <name>avg_ppvar_vbat_mv</name>
    <doc>millivolts of the battery. 1 minute running average</doc>
    <params cmd="get" uart_cmd="pwr_avg" regex="mv = (-?\d+)[\r\n]+"
    group="1" formatting="int" interface="10" drv="simple_ec"></params>
  </control>
  <control>
    <name>avg_ppvar_vbat_mw</name>
    <doc>milliwatts being consumed (discharging) or supplied
    (charging) to the battery. 1 minute running average</doc>
    <params cmd="get" uart_cmd="pwr_avg" regex="mw = (-?\d+)[\r\n]+|%s"
    group="1" formatting="int,negative" interface="10" drv="simple_ec"></params>
  </control>
  <control>
    <name>ppvar_vbat_ma</name>
    <doc>milliamps being consumed (discharging/positive) or supplied
    (charging/negative) to the battery</doc>
    <params cmd="get" uart_cmd="battery" regex="I:[\s0-9a-fx]*= (-*\d+) mA"
    group="1" formatting="int,negative" retries="3" interface="10" drv="simple_ec"></params>
  </control>
  <control>
    <name>ppvar_vbat_mv</name>
    <doc>millivolts of the battery</doc>
    <params cmd="get" uart_cmd="battery" regex="V:[\s0-9a-fx]*= (-*\d+) mV"
    group="1" formatting="int" retries="3" interface="10" drv="simple_ec"></params>
  </control>
  <control>
    <name>ppvar_vbat_mw</name>
    <doc>milliwatts being consumed (discharging) or supplied
    (charging) to the battery</doc>
    <params cmd="get" subtype="milliwatts" interface="10" drv="ec">
    </params>
  </control>
  <control>
    <name>charger_attached</name>
    <doc>whether an AC charger is attached</doc>
    <params cmd="get" uart_cmd="chgstate" regex="ac = (\d)[\r\n]+"
    group="1" formatting="int,bool" interface="10" drv="simple_ec"></params>
  </control>
  <control>
    <name>battery_tempc</name>
    <doc>battery temperature in degrees Celsius</doc>
    <params cmd="get" uart_cmd="battery" regex="Temp:[\s0-9a-fx]*= \d+\.\d+ K \((-*\d+\.\d+)"
    group="1" formatting="float" retries="3" interface="10" drv="simple_ec"></params>
  </control>
  <control>
    <name>battery_charge_percent</name>
    <doc>battery charge in percent</doc>
    <params cmd="get" uart_cmd="battery" regex="Charge:\s*(\d+) %"
    group="1" formatting="int" retries="3" interface="10" drv="simple_ec"></params>
  </control>
  <control>
    <name>battery_charge_mah</name>
    <doc>battery charge in mAh</doc>
    <params cmd="get" uart_cmd="battery" regex="Remaining:\s*(\d+) mAh"
    group="1" formatting="int" retries="3" interface="10" drv="simple_ec"></params>
  </control>
  <control>
    <name>battery_full_charge_mah</name>
    <doc>battery last full charge in mAh</doc>
    <params cmd="get" uart_cmd="battery" regex="Cap-full:\s*(\d+) mAh"
    group="1" formatting="int" retries="3" interface="10" drv="simple_ec"></params>
  </control>
  <control>
    <name>battery_full_design_mah</name>
    <doc>battery design full capacity in mAh</doc>
    <params cmd="get" uart_cmd="battery" regex="Design:\s*(\d+) mAh"
    group="1" formatting="int" retries="3" interface="10" drv="simple_ec"></params>
  </control>
  <control>
    <name>battery_is_charging</name>
    <doc>Whether the battery is charging.</doc>
    <params cmd="get" uart_cmd="chgstate" regex="batt_is_charging = (\d)[\r\n]+"
    group="1" formatting="int,bool" interface="10" drv="simple_ec"></params>
  </control>
  <control>
    <name>battery_voltage_design_mv</name>
    <doc>Battery design voltage in mV</doc>
    <params cmd="get" uart_cmd="battery" regex="V-design:[\s0-9a-fx]*= (\d+) mV"
    group="1" formatting="int" retries="3" interface="10" drv="simple_ec"></params>
  </control>
  <control>
    <name>pwr_button_hold</name>
    <doc>milliseconds to hold the power button</doc>
    <params cmd="get" interface="10" drv="na" />
    <params cmd="set" subtype='button_hold' interface="10"
    drv="ec" input_type="int" ec_cmd="powerbtn"/>
  </control>
  <control>
    <name>power_state</name>
    <doc>Used to turn the DUT off and on</doc>
    <params cmd="set" interface="servo" drv="cros_ec_power"
    input_type="str" reset_hold="0.1" reset_recovery="0.5" />
  </control>
  <control>
    <name>ec_chip</name>
    <doc>EC chip name (read-only)</doc>
    <params cmd="get" subtype="chip" interface="servo"
    drv="cros_chip" chip="unknown" />
  </control>
  <control>
    <name>usbpd_chip</name>
    <doc>USB PD chip name (read-only)</doc>
    <params cmd="get" subtype="chip" interface="servo"
    drv="cros_chip" chip="unknown" />
  </control>
  <control>
    <name>fpmcu_chip</name>
    <doc>Fingerprint MCU chip name (read-only)</doc>
    <params cmd="get" subtype="chip" interface="servo"
    drv="cros_chip" chip="unknown" />
  </control>
  <control>
    <name>dut_pd_data_role</name>
    <doc>The USB PD data role from the perspective of the DUT. It is not possible to set to UFP when servo_pd_role is SNK.</doc>
    <params interface="10" drv="ec" port_count="2" subtype="dut_pd_data_role" input_type="str" pdc="no"/>
  </control>
  <control>
    <name>cpu_fw_spi_depends_on_ec_fw</name>
    <doc>Returns "yes" or "no" of whether cpu_fw_spi control depends on DUT EC firmware cooperation. See https://issuetracker.google.com/269804618 for background. This control is only meaningful when cpu_fw_spi control exists.</doc>
    <params drv="echo" value="no" interface="servo"/>
  </control>
  <control>
    <name>ccd_cpu_fw_spi_depends_on_ec_fw</name>
    <doc>Returns "yes" or "no" of whether ccd_cpu_fw_spi control depends on DUT EC firmware cooperation. See https://issuetracker.google.com/269804618 for background. This control is only meaningful when ccd_cpu_fw_spi control exists.</doc>
    <params drv="echo" value="no" interface="servo"/>
  </control>
</root>
