<root>
  <include>
    <name>ec_common.xml</name>
  </include>
  <!-- ********** Maps ********** -->
  <map>
    <name>fan_target_rpm</name>
    <doc>map for fan_target_rpm</doc>
    <params auto="-2" max="-1" off="0"></params>
  </map>
  <!-- ******** 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=""></params>
  </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=""></params>
  </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=""></params>
  </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=""></params>
  </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=""></params>
  </control>
  <control>
    <name>cpu_temp</name>
    <doc>CPU temperature reading in degC. Only works when device is
    powered on.</doc>
    <params cmd="get" subtype="cpu_temp" interface="10" drv="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" subtype="milliamps" interface="10" drv="ec">
    </params>
  </control>
  <control>
    <name>ppvar_vbat_mv</name>
    <doc>millivolts of the battery</doc>
    <params cmd="get" subtype="millivolts" interface="10" drv="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>fan_actual_rpm</name>
    <doc>Actual fan RPM.</doc>
    <params cmd="get" subtype="fan_actual_rpm" interface="10"
    drv="ec"></params>
  </control>
  <control>
    <name>fan_target_rpm</name>
    <doc>Target fan RPM. Set this value to -1 to max out fan speed.
    Set to -2 to enable auto fan speed control.</doc>
    <params subtype="fan_target_rpm" interface="10" drv="ec"
    map="fan_target_rpm"></params>
  </control>
  <control>
    <name>fan_duty</name>
    <doc>Current fan duty cycle.</doc>
    <params cmd="get" subtype="fan_duty" interface="10" drv="ec">
    </params>
  </control>
  <control>
    <name>ec_uart_cmd</name>
    <doc>Set to send command to EC UART. Get to obtain the matched
    results with the regular expression of ec_uart_regexp.</doc>
    <params subtype="uart_cmd" interface="10" drv="ec"
    input_type="str"></params>
  </control>
  <control>
    <name>ec_uart_multicmd</name>
    <doc>Set to send multiple commands to EC UART.</doc>
    <params subtype="uart_multicmd" interface="10" drv="ec"
    input_type="str" cmd="set"></params>
  </control>
  <control>
    <name>ec_uart_regexp</name>
    <doc>List of regular expressions which matches the response of
    ec_uart_cmd.</doc>
    <params subtype="uart_regexp" interface="10" drv="ec"
    input_type="str"></params>
  </control>
  <control>
    <name>ec_uart_timeout</name>
    <doc>Timeout value for waiting EC UART response of issuing an
    EC command.</doc>
    <params subtype="uart_timeout" interface="10" drv="ec"
    input_type="float"></params>
  </control>
  <control>
    <name>ec_uart_capture</name>
    <doc>ec_uart_capture</doc>
    <params subtype="uart_capture" interface="10" drv="uart"
    map="onoff"></params>
  </control>
  <control>
    <name>ec_uart_stream</name>
    <doc>Ec uart stream collected while ec_uart_capture is set to 'on'</doc>
    <params cmd="get" subtype="uart_stream" interface="10" drv="uart"></params>
  </control>
  <control>
    <name>power_state</name>
    <doc>Used to turn the DUT off and on</doc>
    <params clobber_ok="" cmd="set" drv="cros_ec_hardrec_power"/>
  </control>
  <control>
    <name>ec_chip</name>
    <doc>EC chip name (read-only)</doc>
    <params clobber_ok="" cmd="get" subtype="chip" interface="servo"
    drv="cros_chip" chip="lm4"/>
  </control>
</root>
