| <?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> |