blob: 6b384ecf5218ab5de85c5c8a4081e9967a84e017 [file] [log] [blame]
<?xml version="1.0"?>
<!-- map : gets used inside controls -->
<!-- control : gets used inside sequences -->
<!-- sequence : can take argument list like seq:arg0:arg1:arg2 -->
<root>
<include>
<name>common.xml</name>
</include>
<map>
<name>i2c_mux</name>
<doc>4 to 1 mux to steer ftdi i2c bus to different sets of
adcs.</doc>
<params local_adc_ch0="0" local_adc_ch1="1" remote_adc="2"
reserved="3" loc0="0" loc1="1" rem="2" res="3"></params>
</map>
<!-- ******************** Interface 1 ******************** -->
<control>
<name>warm_reset</name>
<doc>Reset the device warmly</doc>
<params cmd="set" interface="1" drv="gpio" offset="5"
map="onoff_i" init="off"></params>
<params cmd="get" interface="2" drv="tca6416" child="0x20"
port="0" offset="1" map="onoff_i"></params>
</control>
<control>
<name>dut_spare1_in</name>
<doc>gpio spare1 from DUT (read-only)</doc>
<params cmd="get" interface="1" drv="gpio" offset="6"
map="onoff"></params>
</control>
<!-- ******************** Interface 2 ******************** -->
<!-- I2C + GPIOS -->
<control>
<name>tp6</name>
<doc>test point 6</doc>
<params interface="2" drv="gpio" offset="3" width="1"></params>
</control>
<map>
<name>kbd_m1</name>
<doc>map of key presses for kbd_m1</doc>
<params ctrl_r="0" d="1" enter="2" none="3"></params>
</map>
<control>
<name>kbd_m1</name>
<doc>create key presses row1|row2|row3 and col2</doc>
<params interface="2" drv="gpio" offset="4" width="2"
map="kbd_m1"></params>
</control>
<control>
<name>kbd_m1_a1</name>
<doc>kbd_m1_a1</doc>
<params interface="2" drv="gpio" offset="5" map="onoff">
</params>
</control>
<control>
<name>kbd_m1_a0</name>
<doc>kbd_m1_a0</doc>
<params interface="2" drv="gpio" offset="4" map="onoff">
</params>
</control>
<map>
<name>kbd_m2</name>
<doc>map of key presses for kbd_m2</doc>
<params ctrl="0" refresh="1" unused="2" none="3"></params>
</map>
<control>
<name>kbd_m2</name>
<doc>create key presses row1|row2|row3 and col1</doc>
<params interface="2" drv="gpio" offset="6" width="2"
map="kbd_m2"></params>
</control>
<control>
<name>kbd_m2_a1</name>
<doc>kbd_m2_a1</doc>
<params interface="2" drv="gpio" offset="7" map="onoff">
</params>
</control>
<control>
<name>kbd_m2_a0</name>
<doc>kbd_m2_a0</doc>
<params interface="2" drv="gpio" offset="6" map="onoff">
</params>
</control>
<!-- ******************** Interface 3 ******************** -->
<!-- TODO(tbroch) As implemented its either UART or GPIOs not both -->
<!-- UART -->
<control>
<name>cpu_uart_pty</name>
<doc>Psuedo-terminal (pty) thats connected to CPU's uart
console</doc>
<params cmd="get" interface="3" subtype="pty" drv="uart">
</params>
</control>
<control>
<name>cpu_uart_baudrate</name>
<doc>Baudrate for CPU's uart console</doc>
<params drv="uart" subtype="props" line_prop="baudrate"
interface="3"></params>
</control>
<control>
<name>cpu_uart_parity</name>
<doc>Parity for CPU's uart console</doc>
<params drv="uart" subtype="props" line_prop="parity"
interface="3" map="uart_parity"></params>
</control>
<control>
<name>cpu_uart_sbits</name>
<doc>Number of stop bits for CPU's uart console</doc>
<params drv="uart" subtype="props" line_prop="sbits"
interface="3" map="uart_sbits"></params>
</control>
<control>
<name>cpu_uart_bits</name>
<doc>Number of data bits for CPU's uart console</doc>
<params drv="uart" subtype="props" line_prop="bits"
interface="3" map="uart_bits"></params>
</control>
<!-- GPIOS -->
<control>
<name>servo_dut_tx</name>
<doc>Make input when in EC SPI programming mode</doc>
<params interface="3" drv="gpio" offset="0" map="onoff">
</params>
</control>
<control>
<name>dut_flaga</name>
<doc>flag (A) used for TBD signalling between DUT host and
servo</doc>
<params cmd="set" interface="3" drv="gpio" offset="4"
map="onoff"></params>
<params cmd="get" interface="2" drv="tca6416" child="0x20"
port="0" offset="5" map="onoff"></params>
</control>
<control>
<name>dut_flagb</name>
<doc>flag (B) used for TBD signalling between DUT host and
servo</doc>
<params cmd="set" interface="3" drv="gpio" offset="5"
map="onoff"></params>
<params cmd="get" interface="2" drv="tca6416" child="0x20"
port="0" offset="3" map="onoff"></params>
</control>
<control>
<name>dut_nmi</name>
<doc>Non maskable interrupt (NMI) used to signal DUT from
servo</doc>
<params cmd="set" interface="3" drv="gpio" offset="6"
map="onoff"></params>
<params cmd="get" interface="2" drv="tca6416" child="0x20"
port="0" offset="0" map="onoff"></params>
</control>
<!-- ******************** Interface 4 ******************** -->
<control>
<name>kbd_en</name>
<doc>Enable servo to assert certain keypresses via kdb_m1 and
kbd_m2</doc>
<params interface="4" drv="gpio" offset="0" map="onoff"
init="off"></params>
</control>
<control>
<name>fw_up</name>
<alias>t20_rec</alias>
<doc>Firmware update mode via USB</doc>
<params cmd="set" interface="4" drv="gpio" offset="1"
map="onoff_i" init="off"></params>
<params cmd="get" interface="2" drv="tca6416" child="0x20"
port="1" offset="7" map="onoff_i"></params>
</control>
<control>
<name>dev_mode</name>
<doc>Developer mode</doc>
<params cmd="set" interface="4" drv="gpio" offset="2"
map="onoff"></params>
<params cmd="get" interface="2" drv="tca6416" child="0x20"
port="1" offset="6" map="onoff_i"></params>
</control>
<control>
<name>lid_open</name>
<doc>lid open gpio</doc>
<params cmd="set" interface="4" drv="gpio" offset="3"
map="yesno" init="yes"></params>
<params cmd="get" interface="2" drv="tca6416" child="0x20"
port="1" offset="5" map="yesno"></params>
</control>
<control>
<name>pwr_button</name>
<doc>power button gpio</doc>
<params cmd="set" interface="4" drv="gpio" offset="4"
map="press" init="release"></params>
<params cmd="get" interface="2" drv="tca6416" child="0x20"
port="1" offset="4" map="press"></params>
</control>
<control>
<name>rec_mode</name>
<doc>Google recovery mode</doc>
<params cmd="set" interface="4" drv="gpio" offset="5"
map="onoff_i" init="off"></params>
<params cmd="get" interface="2" drv="tca6416" child="0x20"
port="1" offset="3" map="onoff_i"></params>
</control>
<control>
<name>cold_reset</name>
<doc>reset the device frigidly</doc>
<params cmd="set" interface="4" drv="gpio" offset="6"
map="onoff_i"></params>
<params cmd="get" interface="2" drv="tca6416" child="0x20"
port="0" offset="2" map="onoff_i"></params>
</control>
<control>
<name>fw_wp</name>
<doc>Firmware write-protect GPIO</doc>
<params cmd="set" interface="4" drv="gpio" offset="7"
map="onoff_i"></params>
<params cmd="get" interface="2" drv="tca6416" child="0x20"
port="1" offset="2" map="onoff_i"></params>
</control>
<!-- ******************** I2c related controls ******************** -->
<!-- child 0x20 : ioexpander port 0 -->
<control>
<name>prtctl4_ocs</name>
<doc>USB port 4 (J19, USB key) over current signal (OCS)</doc>
<params cmd="get" interface="2" drv="tca6416" child="0x20"
port="0" offset="6" map="onoff_i"></params>
</control>
<control>
<name>dut_usb2_ocs</name>
<doc>Over-current signal for USB port (TYPE A/J18) to DUT via
USB port (TYPE MINI-AB/J15)</doc>
<params cmd="get" interface="2" drv="tca6416" child="0x20"
port="0" offset="7" map="onoff_i"></params>
</control>
<!-- child 0x20 : ioexpander port 1 -->
<!-- TODO(tbroch) implement these controls -->
<map>
<name>io</name>
<doc>map for buffer direction</doc>
<params input="0" output="1"></params>
</map>
<control>
<name>tx_dir</name>
<doc>Sets the direction of dut tx buffer.</doc>
<params interface="2" drv="tca6416" child="0x20" port="1"
offset="1" map="io" init="input"></params>
</control>
<control>
<name>dut_hub_ocs</name>
<doc>DUT USB hub over current signal (OCS). This hub supports
ethernet (RJ45/I79) and USB port (vert TYPE A/J19)</doc>
<params cmd="get" interface="2" drv="tca6416" child="0x20"
port="1" offset="0" map="onoff_i"></params>
</control>
<!-- child 0x21 : ioexpander port 0 -->
<control>
<name>dut_hub_on</name>
<doc>Enables DUT's USB hub with ethernet (RJ45/I79) and USB
port (Vert TYPE A/J19)</doc>
<params interface="2" drv="tca6416" child="0x21" port="0"
offset="0" map="yesno_i"></params>
</control>
<control>
<name>usb_mux_oe2</name>
<doc>Output enable for USB port (TYPE A/J18) to DUT via USB
port (TYPE MINI-AB/J15)</doc>
<params interface="2" drv="tca6416" child="0x21" port="0"
offset="1" map="onoff_i"></params>
</control>
<control>
<name>usb_mux_oe1</name>
<doc>Output enable for USB port (vert TYPE A/J19) to DUT via
DUT USB hub</doc>
<params interface="2" drv="tca6416" child="0x21" port="0"
offset="2" map="onoff_i"></params>
</control>
<map>
<name>usbkey</name>
<doc>Determines whether DUT or servo sees USB port (vert TYPE
A/J19)</doc>
<params dut_sees_usbkey="0" servo_sees_usbkey="1"></params>
</map>
<control>
<name>usb_mux_sel1</name>
<doc>2to1 mux select for USB port (vert TYPE A/J19). Set either
'dut_sees_usbkey' or 'servo_sees_usbkey'</doc>
<params interface="2" drv="tca6416" child="0x21" port="0"
offset="3" map="usbkey"></params>
</control>
<control>
<name>dut_hub1_rst1</name>
<alias>dut_hub_usb_reset</alias>
<doc>Reset DUT's USB hub with ethernet (RJ45/I79) and USB port
(Vert TYPE A/J19)</doc>
<params interface="2" drv="tca6416" child="0x21" port="0"
offset="4" map="onoff_i"></params>
</control>
<control>
<name>dut_usb2_prtctl</name>
<doc>power enable for USB port (TYPE A/J18) to DUT via USB port
(TYPE MINI-AB/J15)</doc>
<params interface="2" drv="tca6416" child="0x21" port="0"
offset="5" map="onoff"></params>
</control>
<map>
<name>duthub</name>
<doc>Determine whether DUT sees USB hub or Servo via USB port
(TYPE MINI-AB/J15)</doc>
<params dut_sees_hub="0" dut_sees_servo="1"></params>
</map>
<control>
<name>dut_hub_sel</name>
<doc>2to1 Mux select for USB port (TYPE mini-AB/J14) Set either
'dut_sees_hub' or 'dut_sees_servo'</doc>
<params interface="2" drv="tca6416" child="0x21" port="0"
offset="6" map="duthub"></params>
</control>
<control>
<name>prtctl4_pwren</name>
<doc>USB port 4 (J19, USB key) power enable</doc>
<params interface="2" drv="tca6416" child="0x21" port="0"
offset="7" map="onoff"></params>
</control>
<!-- child 0x21 : ioexpander port 1 -->
<control>
<name>i2c_mux</name>
<doc>4to1 mux select which steers i2c bus from FTDI to
different banks (16) of ina219 adcs</doc>
<params interface="2" drv="tca6416" child="0x21" port="1"
offset="0" width="2" map="i2c_mux" init="rem"></params>
</control>
<control>
<name>i2c_mux_en</name>
<doc>Enable pin (ADG804) of 4to1 mux</doc>
<params interface="2" drv="tca6416" child="0x21" port="1"
offset="2" map="onoff" init="on"></params>
</control>
<control>
<name>blinky</name>
<doc>LED on gpio for blinking</doc>
<params interface="2" drv="tca6416" child="0x21" port="1"
offset="3" map="onoff_i"></params>
</control>
<control>
<name>dut_hub_pwren</name>
<doc>enable power to DUT's USB hub</doc>
<params interface="2" drv="tca6416" child="0x21" port="1"
offset="5" map="onoff"></params>
</control>
<control>
<name>pwren_gate</name>
<doc>Enable drivers for JTAG/SPI and UART IO's</doc>
<params interface="2" drv="tca6416" child="0x21" port="1"
offset="7" map="onoff_i"></params>
</control>
<control>
<name>ec_spi</name>
<doc>Enable power to DUT for programming EC SPI Flash</doc>
<params interface="2" drv="tca6416" child="0x21" port="1"
offset="4" map="onoff_i"></params>
</control>
<control>
<name>spi_flash</name>
<doc>Enable power to DUT for programming BIOS SPI Flash</doc>
<params interface="2" drv="tca6416" child="0x21" port="1"
offset="6" map="onoff_i"></params>
</control>
<!-- i2c_mux:res, child 0x18 : LTC1663 10-bit DAC for USB load on USB J14 -->
<control>
<name>usb_load_dhub_dac</name>
<doc>USB load for the dut's USB hub connection for USB port
(TYPE mini-AB/J14)</doc>
<params interface="2" drv="ltc1663" child="0x18"></params>
</control>
<!-- i2c_mux:res, child 0x19 : LTC1663 10-bit DAC for USB load on USB J15 -->
<control>
<name>usb_load_din_dac</name>
<doc>USB load for the dut USB connection for USB port (TYPE
mini-AB/J15)</doc>
<params interface="2" drv="ltc1663" child="0x19"></params>
</control>
<!-- ******************** Sequences **************************** -->
<sequence>
<name>i2c_mux_seq</name>
<params cmdlist="i2c_mux_en:off i2c_mux_add:__arg0__ i2c_mux_en:on">
</params>
</sequence>
</root>