Simran Basi | e750a34 | 2013-03-12 13:45:26 -0700 | [diff] [blame] | 1 | # Copyright (c) 2011 The Chromium OS Authors. All rights reserved. |
| 2 | # Use of this source code is governed by a BSD-style license that can be |
| 3 | # found in the LICENSE file. |
| 4 | """Defines the interfaces for the different servo models.""" |
Simran Basi | 5492bde | 2013-05-16 17:08:47 -0700 | [diff] [blame] | 5 | |
Simran Basi | e750a34 | 2013-03-12 13:45:26 -0700 | [diff] [blame] | 6 | import collections |
| 7 | |
| 8 | INTERFACE_DEFAULTS = collections.defaultdict(dict) |
| 9 | |
Jes B. Klinke | 50973f2 | 2020-11-12 13:33:23 -0800 | [diff] [blame] | 10 | SERVO_ID_DEFAULTS = [(0x0403, 0x6014), (0x18d1, 0x5001)] |
Simran Basi | e750a34 | 2013-03-12 13:45:26 -0700 | [diff] [blame] | 11 | |
Simran Basi | e750a34 | 2013-03-12 13:45:26 -0700 | [diff] [blame] | 12 | # servo v1 |
Wai-Hong Tam | 564c170 | 2017-04-24 09:23:38 -0700 | [diff] [blame] | 13 | INTERFACE_DEFAULTS[0x18d1][0x5001] = \ |
Sam Hurst | 2b48753 | 2020-08-05 11:00:23 -0700 | [diff] [blame] | 14 | ['empty', |
Wai-Hong Tam | 564c170 | 2017-04-24 09:23:38 -0700 | [diff] [blame] | 15 | 'ftdi_gpio', |
| 16 | 'ftdi_i2c', |
| 17 | 'ftdi_gpio', |
| 18 | 'ftdi_gpio', |
Puthikorn Voravootivat | 01ead15 | 2018-03-23 15:38:40 -0700 | [diff] [blame] | 19 | ] |
Wai-Hong Tam | 564c170 | 2017-04-24 09:23:38 -0700 | [diff] [blame] | 20 | |
Simran Basi | e750a34 | 2013-03-12 13:45:26 -0700 | [diff] [blame] | 21 | # servo V2 |
Sam Hurst | 2b48753 | 2020-08-05 11:00:23 -0700 | [diff] [blame] | 22 | # Empty interface 1 == JTAG via openocd |
| 23 | # Empty interface 5,6 == SPI via flashrom |
Wai-Hong Tam | 564c170 | 2017-04-24 09:23:38 -0700 | [diff] [blame] | 24 | # ec3po_uart interface 9,10 == usbpd console, ec console. Applicable to servo v3 |
Aseda Aboagye | a492221 | 2015-11-20 15:19:08 -0800 | [diff] [blame] | 25 | # as well. |
Aseda Aboagye | a492221 | 2015-11-20 15:19:08 -0800 | [diff] [blame] | 26 | SERVO_V2_DEFAULTS = [(0x18d1, 0x5002)] |
| 27 | for vid, pid in SERVO_V2_DEFAULTS: |
| 28 | INTERFACE_DEFAULTS[vid][pid] = \ |
Sam Hurst | 2b48753 | 2020-08-05 11:00:23 -0700 | [diff] [blame] | 29 | ['empty', |
| 30 | 'ftdi_empty', # 1 |
Wai-Hong Tam | 4b97c16 | 2017-04-24 11:58:54 -0700 | [diff] [blame] | 31 | 'ftdi_i2c', # 2 |
| 32 | 'ftdi_uart', # 3: uart3/legacy |
| 33 | 'ftdi_uart', # 4: ATMEGA |
Sam Hurst | 2b48753 | 2020-08-05 11:00:23 -0700 | [diff] [blame] | 34 | 'ftdi_empty', # 5 |
| 35 | 'ftdi_empty', # 6 |
Wai-Hong Tam | 4b97c16 | 2017-04-24 11:58:54 -0700 | [diff] [blame] | 36 | 'ftdi_uart', # 7: EC |
| 37 | 'ftdi_uart', # 8: AP |
| 38 | {'name': 'ec3po_uart', # 9: EC3PO(USBPD) |
Nick Sanders | 116ed9e | 2018-03-09 19:05:16 -0800 | [diff] [blame] | 39 | 'raw_pty': 'raw_usbpd_uart_pty', 'source': 'PD/Cr50'}, |
Wai-Hong Tam | 4b97c16 | 2017-04-24 11:58:54 -0700 | [diff] [blame] | 40 | {'name': 'ec3po_uart', #10: EC3PO(EC) |
Nick Sanders | 116ed9e | 2018-03-09 19:05:16 -0800 | [diff] [blame] | 41 | 'raw_pty': 'raw_ec_uart_pty', 'source': 'EC'}, |
Mary Ruthven | 15a1f2a | 2019-04-26 16:21:51 -0700 | [diff] [blame] | 42 | {'name': 'ec3po_uart', #11: EC3PO(AP) |
| 43 | 'raw_pty': 'raw_cpu_uart_pty', 'source': 'CPU'}, |
Wai-Hong Tam | 6c0fa59 | 2017-04-21 12:41:33 -0700 | [diff] [blame] | 44 | ] |
Simran Basi | e750a34 | 2013-03-12 13:45:26 -0700 | [diff] [blame] | 45 | |
Jes B. Klinke | 50973f2 | 2020-11-12 13:33:23 -0800 | [diff] [blame] | 46 | SERVO_ID_DEFAULTS.extend(SERVO_V2_DEFAULTS) |
| 47 | |
Simran Basi | e750a34 | 2013-03-12 13:45:26 -0700 | [diff] [blame] | 48 | # servo v3 |
Aseda Aboagye | a492221 | 2015-11-20 15:19:08 -0800 | [diff] [blame] | 49 | SERVO_V3_DEFAULTS = [(0x18d1, 0x5004)] |
| 50 | for vid, pid in SERVO_V3_DEFAULTS: |
| 51 | INTERFACE_DEFAULTS[vid][pid] = \ |
Sam Hurst | 2b48753 | 2020-08-05 11:00:23 -0700 | [diff] [blame] | 52 | ['empty', |
Wai-Hong Tam | 4b97c16 | 2017-04-24 11:58:54 -0700 | [diff] [blame] | 53 | 'bb_gpio', # 1 |
| 54 | {'name': 'dev_i2c', 'bus_num': 1}, # 2 |
| 55 | {'name': 'bb_uart', 'uart_num': 5, # 3: uart3/legacy |
| 56 | 'txd': ['lcd_data8', 0x4], |
| 57 | 'rxd': ['lcd_data9', 0x4]}, |
| 58 | {'name': 'bb_uart', 'uart_num': 4}, # 4: ATMEGA |
| 59 | 'bb_adc', # 5 |
| 60 | {'name': 'dev_i2c', 'bus_num': 2}, # 6 |
| 61 | {'name': 'bb_uart', 'uart_num': 1}, # 7: EC |
| 62 | {'name': 'bb_uart', 'uart_num': 2}, # 8: AP |
Sam Hurst | 2b48753 | 2020-08-05 11:00:23 -0700 | [diff] [blame] | 63 | 'empty', # 9 |
Wai-Hong Tam | 4b97c16 | 2017-04-24 11:58:54 -0700 | [diff] [blame] | 64 | {'name': 'ec3po_uart', #10: EC3PO(EC) |
Nick Sanders | 116ed9e | 2018-03-09 19:05:16 -0800 | [diff] [blame] | 65 | 'raw_pty': 'raw_ec_uart_pty', 'source': 'EC'}, |
Mary Ruthven | 15a1f2a | 2019-04-26 16:21:51 -0700 | [diff] [blame] | 66 | {'name': 'ec3po_uart', #11: EC3PO(AP) |
| 67 | 'raw_pty': 'raw_cpu_uart_pty', 'source': 'CPU'}, |
Wai-Hong Tam | 6c0fa59 | 2017-04-21 12:41:33 -0700 | [diff] [blame] | 68 | ] |
Simran Basi | e750a34 | 2013-03-12 13:45:26 -0700 | [diff] [blame] | 69 | |
Simran Basi | a9ad25e | 2013-04-23 11:57:00 -0700 | [diff] [blame] | 70 | INTERFACE_DEFAULTS[0x0403][0x6014] = INTERFACE_DEFAULTS[0x18d1][0x5004] |
Jes B. Klinke | 50973f2 | 2020-11-12 13:33:23 -0800 | [diff] [blame] | 71 | SERVO_ID_DEFAULTS.extend(SERVO_V3_DEFAULTS) |
Simran Basi | a9ad25e | 2013-04-23 11:57:00 -0700 | [diff] [blame] | 72 | |
Nick Sanders | 12d4cd1 | 2016-04-11 22:47:48 -0700 | [diff] [blame] | 73 | # Ryu Raiden CCD |
| 74 | RAIDEN_DEFAULTS = [(0x18d1, 0x500f)] |
| 75 | for vid, pid in RAIDEN_DEFAULTS: |
| 76 | INTERFACE_DEFAULTS[vid][pid] = \ |
Sam Hurst | 2b48753 | 2020-08-05 11:00:23 -0700 | [diff] [blame] | 77 | ['empty', |
Wai-Hong Tam | 564c170 | 2017-04-24 09:23:38 -0700 | [diff] [blame] | 78 | {'name': 'stm32_uart', 'interface': 0}, # 1: EC_PD |
Nick Sanders | 12d4cd1 | 2016-04-11 22:47:48 -0700 | [diff] [blame] | 79 | {'name': 'stm32_uart', 'interface': 1}, # 2: AP |
Sam Hurst | 2b48753 | 2020-08-05 11:00:23 -0700 | [diff] [blame] | 80 | 'empty', # 3 |
| 81 | 'empty', # 4 |
| 82 | 'empty', # 5 |
| 83 | 'empty', # 6 |
| 84 | 'empty', # 7 |
| 85 | 'empty', # 8 |
| 86 | 'empty', # 9 |
Nick Sanders | 12d4cd1 | 2016-04-11 22:47:48 -0700 | [diff] [blame] | 87 | {'name': 'ec3po_uart', #10: dut ec console |
Nick Sanders | 116ed9e | 2018-03-09 19:05:16 -0800 | [diff] [blame] | 88 | 'raw_pty': 'raw_ec_uart_pty', 'source': 'EC'}, |
Sam Hurst | 2b48753 | 2020-08-05 11:00:23 -0700 | [diff] [blame] | 89 | 'empty', #11 |
Nick Sanders | 12d4cd1 | 2016-04-11 22:47:48 -0700 | [diff] [blame] | 90 | ] |
Nick Sanders | 97bc446 | 2016-01-04 15:37:31 -0800 | [diff] [blame] | 91 | |
Jes B. Klinke | 50973f2 | 2020-11-12 13:33:23 -0800 | [diff] [blame] | 92 | SERVO_ID_DEFAULTS.extend(RAIDEN_DEFAULTS) |
| 93 | |
Nick Sanders | 5bf796b | 2016-07-20 23:30:04 -0700 | [diff] [blame] | 94 | # cr50 CCD |
Jes B. Klinke | ebee986 | 2020-11-10 16:34:31 -0800 | [diff] [blame] | 95 | CCD_CR50_DEFAULTS = [(0x18d1, 0x5014)] |
| 96 | for vid, pid in CCD_CR50_DEFAULTS: |
Nick Sanders | 5bf796b | 2016-07-20 23:30:04 -0700 | [diff] [blame] | 97 | INTERFACE_DEFAULTS[vid][pid] = \ |
Sam Hurst | 2b48753 | 2020-08-05 11:00:23 -0700 | [diff] [blame] | 98 | ['empty', |
Wai-Hong Tam | 08f6e85 | 2017-05-17 17:03:07 -0700 | [diff] [blame] | 99 | {'name': 'stm32_uart', 'interface': 0}, # 1: Cr50 console |
Mary Ruthven | d25113b | 2016-11-16 13:16:30 -0800 | [diff] [blame] | 100 | {'name': 'stm32_i2c', 'interface': 5}, # 2: i2c |
Sam Hurst | 2b48753 | 2020-08-05 11:00:23 -0700 | [diff] [blame] | 101 | 'empty', # 3 |
| 102 | 'empty', # 4 |
| 103 | 'empty', # 5 |
| 104 | 'empty', # 6 |
Wai-Hong Tam | b74b791 | 2017-04-24 12:35:35 -0700 | [diff] [blame] | 105 | {'name': 'stm32_uart', 'interface': 2}, # 7: EC/PD |
| 106 | {'name': 'stm32_uart', 'interface': 1}, # 8: AP |
| 107 | {'name': 'ec3po_uart', # 9: EC3PO(Cr50) |
Nick Sanders | 116ed9e | 2018-03-09 19:05:16 -0800 | [diff] [blame] | 108 | 'raw_pty': 'raw_cr50_uart_pty', 'source': 'Cr50'}, |
Wai-Hong Tam | b74b791 | 2017-04-24 12:35:35 -0700 | [diff] [blame] | 109 | {'name': 'ec3po_uart', #10: EC3PO(EC) |
Nick Sanders | 116ed9e | 2018-03-09 19:05:16 -0800 | [diff] [blame] | 110 | 'raw_pty': 'raw_ec_uart_pty', 'source': 'EC'}, |
Mary Ruthven | 15a1f2a | 2019-04-26 16:21:51 -0700 | [diff] [blame] | 111 | {'name': 'ec3po_uart', #11: EC3PO(AP) |
| 112 | 'raw_pty': 'raw_cpu_uart_pty', 'source': 'CPU'}, |
Nick Sanders | 5bf796b | 2016-07-20 23:30:04 -0700 | [diff] [blame] | 113 | ] |
| 114 | |
Jes B. Klinke | ebee986 | 2020-11-10 16:34:31 -0800 | [diff] [blame] | 115 | SERVO_ID_DEFAULTS.extend(CCD_CR50_DEFAULTS) |
| 116 | |
| 117 | # ti50 CCD |
| 118 | CCD_TI50_DEFAULTS = [(0x18d1, 0x504a)] |
| 119 | for vid, pid in CCD_TI50_DEFAULTS: |
| 120 | INTERFACE_DEFAULTS[vid][pid] = \ |
| 121 | ['empty', |
| 122 | {'name': 'stm32_uart', 'interface': 0}, # 1: Ti50 console |
| 123 | {'name': 'stm32_i2c', 'interface': 5}, # 2: i2c |
| 124 | 'empty', # 3 |
| 125 | 'empty', # 4 |
| 126 | 'empty', # 5 |
| 127 | 'empty', # 6 |
| 128 | {'name': 'stm32_uart', 'interface': 2}, # 7: EC/PD |
| 129 | {'name': 'stm32_uart', 'interface': 1}, # 8: AP |
| 130 | {'name': 'ec3po_uart', # 9: EC3PO(Cr50) |
| 131 | 'raw_pty': 'raw_cr50_uart_pty', 'source': 'Cr50'}, |
| 132 | {'name': 'ec3po_uart', #10: EC3PO(EC) |
| 133 | 'raw_pty': 'raw_ec_uart_pty', 'source': 'EC'}, |
| 134 | {'name': 'ec3po_uart', #11: EC3PO(AP) |
| 135 | 'raw_pty': 'raw_cpu_uart_pty', 'source': 'CPU'}, |
| 136 | ] |
| 137 | |
| 138 | SERVO_ID_DEFAULTS.extend(CCD_TI50_DEFAULTS) |
| 139 | |
| 140 | CCD_DEFAULTS = CCD_CR50_DEFAULTS + CCD_TI50_DEFAULTS |
Jes B. Klinke | 50973f2 | 2020-11-12 13:33:23 -0800 | [diff] [blame] | 141 | |
Ruben Rodriguez Buchillon | 8c61301 | 2018-05-09 13:04:54 +0800 | [diff] [blame] | 142 | # Sweetberry |
| 143 | SWEETBERRY_ID_DEFAULTS = [(0x18d1, 0x5020)] |
| 144 | for vid, pid in SWEETBERRY_ID_DEFAULTS: |
| 145 | INTERFACE_DEFAULTS[vid][pid] = \ |
Sam Hurst | 2b48753 | 2020-08-05 11:00:23 -0700 | [diff] [blame] | 146 | ['empty', |
| 147 | 'empty', |
Ruben Rodriguez Buchillon | 8c61301 | 2018-05-09 13:04:54 +0800 | [diff] [blame] | 148 | {'name': 'stm32_i2c', 'interface': 3}, # 2: i2c |
| 149 | {'name': 'stm32_uart', 'interface': 0}, # 3: sweetberry console |
Ruben Rodriguez Buchillon | 4c2cf93 | 2021-02-12 12:22:47 -0800 | [diff] [blame] | 150 | {'name': 'ec3po_uart', # 4: EC3PO(Sweetberry) |
| 151 | 'raw_pty': 'raw_sweetberry_uart_pty', 'source': 'sweetberry'}, |
Ruben Rodriguez Buchillon | 8c61301 | 2018-05-09 13:04:54 +0800 | [diff] [blame] | 152 | ] |
| 153 | |
| 154 | SERVO_ID_DEFAULTS.extend(SWEETBERRY_ID_DEFAULTS) |
| 155 | |
Nick Sanders | 97bc446 | 2016-01-04 15:37:31 -0800 | [diff] [blame] | 156 | # Servo micro |
| 157 | SERVO_MICRO_DEFAULTS = [(0x18d1, 0x501a)] |
| 158 | for vid, pid in SERVO_MICRO_DEFAULTS: |
| 159 | INTERFACE_DEFAULTS[vid][pid] = \ |
Sam Hurst | 2b48753 | 2020-08-05 11:00:23 -0700 | [diff] [blame] | 160 | ['empty', |
Wai-Hong Tam | 08f6e85 | 2017-05-17 17:03:07 -0700 | [diff] [blame] | 161 | {'name': 'stm32_uart', 'interface': 0}, # 1: PD/Cr50 console |
Nicolas Boichat | 11be0fb | 2017-06-30 14:38:37 +0800 | [diff] [blame] | 162 | {'name': 'stm32_i2c', 'interface': 4}, # 2: i2c |
Nick Sanders | 97bc446 | 2016-01-04 15:37:31 -0800 | [diff] [blame] | 163 | {'name': 'stm32_uart', 'interface': 3}, # 3: servo console |
Sam Hurst | 2b48753 | 2020-08-05 11:00:23 -0700 | [diff] [blame] | 164 | 'empty', # 4: empty |
| 165 | 'empty', # 5: empty |
Wai-Hong Tam | cadc919 | 2017-04-24 12:23:52 -0700 | [diff] [blame] | 166 | {'name': 'ec3po_uart', # 6: servo console |
Mary Ruthven | ab7d6fd | 2018-12-07 11:13:19 -0800 | [diff] [blame] | 167 | 'raw_pty': 'raw_servo_micro_uart_pty', 'source': 'servo_micro'}, |
Wai-Hong Tam | cadc919 | 2017-04-24 12:23:52 -0700 | [diff] [blame] | 168 | {'name': 'stm32_uart', 'interface': 6}, # 7: uart1/EC console |
Wai-Hong Tam | 7312f81 | 2017-04-24 12:13:24 -0700 | [diff] [blame] | 169 | {'name': 'stm32_uart', 'interface': 5}, # 8: uart2/AP console |
Wai-Hong Tam | 08f6e85 | 2017-05-17 17:03:07 -0700 | [diff] [blame] | 170 | {'name': 'ec3po_uart', # 9: EC3PO for PD/Cr50 |
Nick Sanders | 116ed9e | 2018-03-09 19:05:16 -0800 | [diff] [blame] | 171 | 'raw_pty': 'raw_usbpd_uart_pty', 'source': 'PD/Cr50'}, |
Wai-Hong Tam | 08f6e85 | 2017-05-17 17:03:07 -0700 | [diff] [blame] | 172 | {'name': 'ec3po_uart', #10: EC3PO for EC |
Nick Sanders | 116ed9e | 2018-03-09 19:05:16 -0800 | [diff] [blame] | 173 | 'raw_pty': 'raw_ec_uart_pty', 'source': 'EC'}, |
Mary Ruthven | 15a1f2a | 2019-04-26 16:21:51 -0700 | [diff] [blame] | 174 | {'name': 'ec3po_uart', #11: EC3PO for CPU |
| 175 | 'raw_pty': 'raw_cpu_uart_pty', 'source': 'CPU'}, |
Nick Sanders | 97bc446 | 2016-01-04 15:37:31 -0800 | [diff] [blame] | 176 | ] |
| 177 | |
Jes B. Klinke | 50973f2 | 2020-11-12 13:33:23 -0800 | [diff] [blame] | 178 | SERVO_ID_DEFAULTS.extend(SERVO_MICRO_DEFAULTS) |
| 179 | |
Jett Rink | 43281fb | 2019-12-13 15:02:40 -0700 | [diff] [blame] | 180 | # C2D2 |
| 181 | C2D2_DEFAULTS = [(0x18d1, 0x5041)] |
| 182 | for vid, pid in C2D2_DEFAULTS: |
| 183 | INTERFACE_DEFAULTS[vid][pid] = \ |
Sam Hurst | 2b48753 | 2020-08-05 11:00:23 -0700 | [diff] [blame] | 184 | ['empty', |
Jett Rink | 43281fb | 2019-12-13 15:02:40 -0700 | [diff] [blame] | 185 | {'name': 'stm32_uart', 'interface': 0}, # 1: H1 console |
Jett Rink | 2985a0b | 2020-02-13 15:26:24 -0700 | [diff] [blame] | 186 | {'name': 'stm32_i2c', 'interface': 4}, # 2: i2c |
Jett Rink | 43281fb | 2019-12-13 15:02:40 -0700 | [diff] [blame] | 187 | {'name': 'stm32_uart', 'interface': 3}, # 3: servo console |
Sam Hurst | 2b48753 | 2020-08-05 11:00:23 -0700 | [diff] [blame] | 188 | 'empty', # 4: empty |
| 189 | 'empty', # 5: empty |
Jett Rink | 43281fb | 2019-12-13 15:02:40 -0700 | [diff] [blame] | 190 | {'name': 'ec3po_uart', # 6: servo console |
| 191 | 'raw_pty': 'raw_c2d2_uart_pty', 'source': 'c2d2'}, |
| 192 | {'name': 'stm32_uart', 'interface': 6}, # 7: uart1/EC console |
| 193 | {'name': 'stm32_uart', 'interface': 5}, # 8: uart2/AP console |
| 194 | {'name': 'ec3po_uart', # 9: EC3PO for H1 |
| 195 | 'raw_pty': 'raw_usbpd_uart_pty', 'source': 'H1'}, |
| 196 | {'name': 'ec3po_uart', #10: EC3PO for EC |
| 197 | 'raw_pty': 'raw_ec_uart_pty', 'source': 'EC'}, |
| 198 | {'name': 'ec3po_uart', #11: EC3PO for CPU |
| 199 | 'raw_pty': 'raw_cpu_uart_pty', 'source': 'CPU'}, |
| 200 | ] |
| 201 | |
| 202 | SERVO_ID_DEFAULTS.extend(C2D2_DEFAULTS) |
| 203 | |
Nick Sanders | 97bc446 | 2016-01-04 15:37:31 -0800 | [diff] [blame] | 204 | # Servo v4 |
Ruben Rodriguez Buchillon | a20217d | 2020-04-19 19:59:11 -0700 | [diff] [blame] | 205 | # Note: the (0x18d1, 0x520d) pair is actually servo v4.1 |
| 206 | # However, servo v4 and v4.1 have the same usb end-points and therefore |
| 207 | # interfaces (for now). Should this change, break v4.1 into its own logic. |
| 208 | SERVO_V4_DEFAULTS = [(0x18d1, 0x501b), (0x18d1, 0x520d)] |
Wai-Hong Tam | 4544c30 | 2017-05-24 19:44:53 -0700 | [diff] [blame] | 209 | SERVO_V4_SLOT_SIZE = 20 |
| 210 | SERVO_V4_SLOT_POSITIONS = { |
Puthikorn Voravootivat | 01ead15 | 2018-03-23 15:38:40 -0700 | [diff] [blame] | 211 | 'default': 1, |
| 212 | 'hammer': 41, |
| 213 | 'staff': 41, |
Ruben Rodriguez Buchillon | d18c6eb | 2019-07-10 14:40:22 -0700 | [diff] [blame] | 214 | 'secondary_ccd': 61, |
Wai-Hong Tam | 4544c30 | 2017-05-24 19:44:53 -0700 | [diff] [blame] | 215 | } |
| 216 | SERVO_V4_CONFIGS = { |
Puthikorn Voravootivat | 01ead15 | 2018-03-23 15:38:40 -0700 | [diff] [blame] | 217 | 'hammer': 'servo_micro_for_hammer.xml', |
| 218 | 'staff': 'servo_micro_for_hammer.xml', |
Wai-Hong Tam | 4544c30 | 2017-05-24 19:44:53 -0700 | [diff] [blame] | 219 | } |
Nick Sanders | 97bc446 | 2016-01-04 15:37:31 -0800 | [diff] [blame] | 220 | for vid, pid in SERVO_V4_DEFAULTS: |
Wai-Hong Tam | 564c170 | 2017-04-24 09:23:38 -0700 | [diff] [blame] | 221 | # Interface #0 is reserved for no use. |
Sam Hurst | 2b48753 | 2020-08-05 11:00:23 -0700 | [diff] [blame] | 222 | INTERFACE_DEFAULTS[vid][pid] = ['empty'] |
Wai-Hong Tam | 564c170 | 2017-04-24 09:23:38 -0700 | [diff] [blame] | 223 | |
Sam Hurst | 2b48753 | 2020-08-05 11:00:23 -0700 | [diff] [blame] | 224 | # Empty slots for servo micro/CCD use (interface #1-20). |
| 225 | INTERFACE_DEFAULTS[vid][pid] += ['empty'] * SERVO_V4_SLOT_SIZE |
Kevin Cheng | 5c66721 | 2016-07-07 10:58:04 -0700 | [diff] [blame] | 226 | |
| 227 | # Servo v4 interfaces. |
| 228 | INTERFACE_DEFAULTS[vid][pid] += \ |
Sam Hurst | 2b48753 | 2020-08-05 11:00:23 -0700 | [diff] [blame] | 229 | ['empty', #21: just nothing. |
Kevin Cheng | 5c66721 | 2016-07-07 10:58:04 -0700 | [diff] [blame] | 230 | {'name': 'stm32_uart', 'interface': 0}, #22: servo console. |
| 231 | {'name': 'stm32_i2c', 'interface': 2}, #23: i2c |
| 232 | {'name': 'stm32_uart', 'interface': 3}, #24: dut sbu uart |
| 233 | {'name': 'stm32_uart', 'interface': 4}, #25: atmega uart |
| 234 | {'name': 'ec3po_uart', #26: servo v4 console |
Mary Ruthven | c7d8189 | 2018-12-07 11:15:02 -0800 | [diff] [blame] | 235 | 'raw_pty': 'raw_servo_v4_uart_pty', 'source': 'servo_v4'}, |
Nick Sanders | 97bc446 | 2016-01-04 15:37:31 -0800 | [diff] [blame] | 236 | ] |
| 237 | |
Wai-Hong Tam | 4544c30 | 2017-05-24 19:44:53 -0700 | [diff] [blame] | 238 | # Buffer slots for servo v4 (interface #27-40). |
Sam Hurst | 2b48753 | 2020-08-05 11:00:23 -0700 | [diff] [blame] | 239 | INTERFACE_DEFAULTS[vid][pid] += ['empty'] * (40 - 27 + 1) |
Wai-Hong Tam | 4544c30 | 2017-05-24 19:44:53 -0700 | [diff] [blame] | 240 | |
| 241 | # Slots for relocating Hammer interfaces. |
Sam Hurst | 2b48753 | 2020-08-05 11:00:23 -0700 | [diff] [blame] | 242 | INTERFACE_DEFAULTS[vid][pid] += ['empty'] * SERVO_V4_SLOT_SIZE |
Wai-Hong Tam | 4544c30 | 2017-05-24 19:44:53 -0700 | [diff] [blame] | 243 | |
Ruben Rodriguez Buchillon | a20217d | 2020-04-19 19:59:11 -0700 | [diff] [blame] | 244 | SERVO_ID_DEFAULTS.extend(SERVO_V4_DEFAULTS) |
| 245 | |
Simran Basi | e750a34 | 2013-03-12 13:45:26 -0700 | [diff] [blame] | 246 | # miniservo |
| 247 | MINISERVO_ID_DEFAULTS = [(0x403, 0x6001), (0x18d1, 0x5000)] |
| 248 | for vid, pid in MINISERVO_ID_DEFAULTS: |
Wai-Hong Tam | 6c0fa59 | 2017-04-21 12:41:33 -0700 | [diff] [blame] | 249 | INTERFACE_DEFAULTS[vid][pid] = \ |
Sam Hurst | 2b48753 | 2020-08-05 11:00:23 -0700 | [diff] [blame] | 250 | ['empty', |
Wai-Hong Tam | d8a94d6 | 2017-04-28 10:11:51 -0700 | [diff] [blame] | 251 | 'ftdi_gpiouart', # occupies 2 slots |
Sam Hurst | 2b48753 | 2020-08-05 11:00:23 -0700 | [diff] [blame] | 252 | 'empty', # reserved for the above ftdi_gpiouart |
Nick Sanders | 116ed9e | 2018-03-09 19:05:16 -0800 | [diff] [blame] | 253 | {'name': 'ec3po_uart', 'raw_pty': 'raw_ec_uart_pty', 'source': 'EC'}, |
Wai-Hong Tam | 6c0fa59 | 2017-04-21 12:41:33 -0700 | [diff] [blame] | 254 | ] |
Simran Basi | e750a34 | 2013-03-12 13:45:26 -0700 | [diff] [blame] | 255 | |
| 256 | SERVO_ID_DEFAULTS.extend(MINISERVO_ID_DEFAULTS) |
Vincent Palatin | f536f00 | 2013-04-11 12:43:49 -0700 | [diff] [blame] | 257 | |
| 258 | # Toad |
| 259 | TOAD_ID_DEFAULTS = [(0x403, 0x6015)] |
| 260 | for vid, pid in TOAD_ID_DEFAULTS: |
Wai-Hong Tam | 6c0fa59 | 2017-04-21 12:41:33 -0700 | [diff] [blame] | 261 | INTERFACE_DEFAULTS[vid][pid] = \ |
Sam Hurst | 2b48753 | 2020-08-05 11:00:23 -0700 | [diff] [blame] | 262 | ['empty', |
Wai-Hong Tam | d8a94d6 | 2017-04-28 10:11:51 -0700 | [diff] [blame] | 263 | 'ftdi_gpiouart', # occupies 2 slots |
Sam Hurst | 2b48753 | 2020-08-05 11:00:23 -0700 | [diff] [blame] | 264 | 'empty', # reserved for the above ftdi_gpiouart |
Nick Sanders | 116ed9e | 2018-03-09 19:05:16 -0800 | [diff] [blame] | 265 | {'name': 'ec3po_uart', 'raw_pty': 'raw_ec_uart_pty', 'source': 'EC'}, |
Wai-Hong Tam | 6c0fa59 | 2017-04-21 12:41:33 -0700 | [diff] [blame] | 266 | ] |
Vincent Palatin | f536f00 | 2013-04-11 12:43:49 -0700 | [diff] [blame] | 267 | |
| 268 | SERVO_ID_DEFAULTS.extend(TOAD_ID_DEFAULTS) |
Vincent Palatin | 32fbecb | 2013-10-23 13:32:47 -0700 | [diff] [blame] | 269 | |
| 270 | # Reston |
| 271 | RESTON_ID_DEFAULTS = [(0x18d1, 0x5007)] |
| 272 | for vid, pid in RESTON_ID_DEFAULTS: |
Wai-Hong Tam | 6c0fa59 | 2017-04-21 12:41:33 -0700 | [diff] [blame] | 273 | INTERFACE_DEFAULTS[vid][pid] = \ |
Sam Hurst | 2b48753 | 2020-08-05 11:00:23 -0700 | [diff] [blame] | 274 | ['empty', |
Wai-Hong Tam | d8a94d6 | 2017-04-28 10:11:51 -0700 | [diff] [blame] | 275 | 'ftdi_gpiouart', # occupies 2 slots |
Sam Hurst | 2b48753 | 2020-08-05 11:00:23 -0700 | [diff] [blame] | 276 | 'empty', # reserved for the above ftdi_gpiouart |
Nick Sanders | 116ed9e | 2018-03-09 19:05:16 -0800 | [diff] [blame] | 277 | {'name': 'ec3po_uart', 'raw_pty': 'raw_ec_uart_pty', 'source': 'EC'}, |
Wai-Hong Tam | 6c0fa59 | 2017-04-21 12:41:33 -0700 | [diff] [blame] | 278 | ] |
Vincent Palatin | 32fbecb | 2013-10-23 13:32:47 -0700 | [diff] [blame] | 279 | |
| 280 | SERVO_ID_DEFAULTS.extend(RESTON_ID_DEFAULTS) |
Vincent Palatin | 77629ac | 2014-03-21 09:33:13 -0700 | [diff] [blame] | 281 | |
| 282 | # Fruitpie |
| 283 | FRUITPIE_ID_DEFAULTS = [(0x18d1, 0x5009)] |
| 284 | for vid, pid in FRUITPIE_ID_DEFAULTS: |
Wai-Hong Tam | 6c0fa59 | 2017-04-21 12:41:33 -0700 | [diff] [blame] | 285 | INTERFACE_DEFAULTS[vid][pid] = \ |
Sam Hurst | 2b48753 | 2020-08-05 11:00:23 -0700 | [diff] [blame] | 286 | ['empty', |
Wai-Hong Tam | d8a94d6 | 2017-04-28 10:11:51 -0700 | [diff] [blame] | 287 | 'ftdi_gpiouart', # occupies 2 slots |
Sam Hurst | 2b48753 | 2020-08-05 11:00:23 -0700 | [diff] [blame] | 288 | 'empty', # reserved for the above ftdi_gpiouart |
Nick Sanders | 116ed9e | 2018-03-09 19:05:16 -0800 | [diff] [blame] | 289 | {'name': 'ec3po_uart', 'raw_pty': 'raw_ec_uart_pty', 'source': 'EC'}, |
Wai-Hong Tam | 6c0fa59 | 2017-04-21 12:41:33 -0700 | [diff] [blame] | 290 | ] |
Vincent Palatin | 77629ac | 2014-03-21 09:33:13 -0700 | [diff] [blame] | 291 | |
| 292 | SERVO_ID_DEFAULTS.extend(FRUITPIE_ID_DEFAULTS) |
Todd Broch | b21d804 | 2014-05-15 12:54:54 -0700 | [diff] [blame] | 293 | |
Alec Berg | e754980 | 2014-07-14 11:52:36 -0700 | [diff] [blame] | 294 | # Plankton |
| 295 | PLANKTON_ID_DEFAULTS = [(0x18d1, 0x500c)] |
| 296 | for vid, pid in PLANKTON_ID_DEFAULTS: |
Wai-Hong Tam | 6c0fa59 | 2017-04-21 12:41:33 -0700 | [diff] [blame] | 297 | INTERFACE_DEFAULTS[vid][pid] = \ |
Sam Hurst | 2b48753 | 2020-08-05 11:00:23 -0700 | [diff] [blame] | 298 | ['empty', |
Wai-Hong Tam | d8a94d6 | 2017-04-28 10:11:51 -0700 | [diff] [blame] | 299 | 'ftdi_gpiouart', # occupies 2 slots |
Sam Hurst | 2b48753 | 2020-08-05 11:00:23 -0700 | [diff] [blame] | 300 | 'empty', # reserved for the above ftdi_gpiouart |
Nick Sanders | 116ed9e | 2018-03-09 19:05:16 -0800 | [diff] [blame] | 301 | {'name': 'ec3po_uart', 'raw_pty': 'raw_ec_uart_pty', 'source': 'EC'}, |
Wai-Hong Tam | 6c0fa59 | 2017-04-21 12:41:33 -0700 | [diff] [blame] | 302 | ] |
Alec Berg | e754980 | 2014-07-14 11:52:36 -0700 | [diff] [blame] | 303 | |
| 304 | SERVO_ID_DEFAULTS.extend(PLANKTON_ID_DEFAULTS) |
| 305 | |
Aseda Aboagye | f4d22bb | 2019-08-26 16:15:35 -0700 | [diff] [blame] | 306 | # Fluffy |
| 307 | FLUFFY_ID_DEFAULTS = [(0x18d1, 0x503b)] |
| 308 | for vid, pid in FLUFFY_ID_DEFAULTS: |
| 309 | # Interface #0 is reserved for no use. |
Sam Hurst | 2b48753 | 2020-08-05 11:00:23 -0700 | [diff] [blame] | 310 | INTERFACE_DEFAULTS[vid][pid] = ['empty'] |
Aseda Aboagye | f4d22bb | 2019-08-26 16:15:35 -0700 | [diff] [blame] | 311 | |
Sam Hurst | 2b48753 | 2020-08-05 11:00:23 -0700 | [diff] [blame] | 312 | # Empty slots for servo micro/CCD, servo v4, and servo micro relocation use |
Aseda Aboagye | f4d22bb | 2019-08-26 16:15:35 -0700 | [diff] [blame] | 313 | # (interface #1-60). |
Sam Hurst | 2b48753 | 2020-08-05 11:00:23 -0700 | [diff] [blame] | 314 | INTERFACE_DEFAULTS[vid][pid] += ['empty'] * SERVO_V4_SLOT_SIZE * 3 |
Aseda Aboagye | f4d22bb | 2019-08-26 16:15:35 -0700 | [diff] [blame] | 315 | |
| 316 | INTERFACE_DEFAULTS[vid][pid] += \ |
| 317 | [ |
| 318 | {'name': 'stm32_uart', 'interface': 0}, # 61 - Fluffy console |
| 319 | ] |
| 320 | |
| 321 | SERVO_ID_DEFAULTS.extend(FLUFFY_ID_DEFAULTS) |
| 322 | |
Todd Broch | b21d804 | 2014-05-15 12:54:54 -0700 | [diff] [blame] | 323 | # Allow Board overrides of interfaces as we've started to overload some servo V2 |
Aseda Aboagye | c24a388 | 2016-03-15 12:37:56 -0700 | [diff] [blame] | 324 | # pinout functionality. To-date just swapping EC SPI and JTAG interfaces for |
Todd Broch | 82e7a7a | 2016-10-25 10:54:48 -0700 | [diff] [blame] | 325 | # USB PD MCU UART. Note this can NOT be done on servo V3. See crbug.com/567842 |
| 326 | # for details. |
Todd Broch | b21d804 | 2014-05-15 12:54:54 -0700 | [diff] [blame] | 327 | INTERFACE_BOARDS = collections.defaultdict( |
| 328 | lambda: collections.defaultdict(dict)) |
Duncan Laurie | 0728aa8 | 2015-10-26 13:56:08 -0700 | [diff] [blame] | 329 | |
Todd Broch | 82e7a7a | 2016-10-25 10:54:48 -0700 | [diff] [blame] | 330 | # re-purposes EC SPI to be UART for USBPD MCU |
Aseda Aboagye | d4afa0d | 2017-08-09 12:24:49 -0700 | [diff] [blame] | 331 | for board in ['elm', 'hana', 'oak', 'samus']: |
Todd Broch | 82e7a7a | 2016-10-25 10:54:48 -0700 | [diff] [blame] | 332 | INTERFACE_BOARDS[board][0x18d1][0x5002] = \ |
| 333 | list(INTERFACE_DEFAULTS[0x18d1][0x5002]) |
Wai-Hong Tam | 564c170 | 2017-04-24 09:23:38 -0700 | [diff] [blame] | 334 | INTERFACE_BOARDS[board][0x18d1][0x5002][6] = 'ftdi_uart' |
Todd Broch | 82e7a7a | 2016-10-25 10:54:48 -0700 | [diff] [blame] | 335 | |
Nicolas Boichat | c02d087 | 2017-03-24 08:25:06 +0800 | [diff] [blame] | 336 | # re-purposes JTAG to be UART for USBPD MCU or H1 |
Puthikorn Voravootivat | 01ead15 | 2018-03-23 15:38:40 -0700 | [diff] [blame] | 337 | for board in [ |
Douglas Anderson | 81ac3e7 | 2018-04-10 16:10:03 -0700 | [diff] [blame] | 338 | 'asuka', |
Ting Shen | d76de94 | 2020-03-16 16:30:40 +0800 | [diff] [blame] | 339 | 'asurada', |
Matthew Blecker | d5f9c18 | 2019-04-24 17:12:14 -0700 | [diff] [blame] | 340 | 'atlas', |
Douglas Anderson | 81ac3e7 | 2018-04-10 16:10:03 -0700 | [diff] [blame] | 341 | 'caroline', |
| 342 | 'cave', |
| 343 | 'chell', |
| 344 | 'cheza', |
Vadim Bendebury | 7b054ec | 2021-02-24 13:00:02 -0800 | [diff] [blame] | 345 | 'd2db', |
Shelley Chen | 9e230ad | 2018-06-26 15:30:36 -0700 | [diff] [blame] | 346 | 'dragonegg', |
Mathew King | 70d093e | 2019-08-13 11:36:24 -0600 | [diff] [blame] | 347 | 'drallion', |
Turg | 104f8f9 | 2020-02-28 13:45:13 -0500 | [diff] [blame] | 348 | 'endeavour', |
| 349 | 'excelsior', |
Douglas Anderson | 81ac3e7 | 2018-04-10 16:10:03 -0700 | [diff] [blame] | 350 | 'eve', |
| 351 | 'fizz', |
Kaka Ni | cc2c0db | 2019-01-18 19:51:09 +0800 | [diff] [blame] | 352 | 'flapjack', |
Douglas Anderson | 81ac3e7 | 2018-04-10 16:10:03 -0700 | [diff] [blame] | 353 | 'glados', |
| 354 | 'grunt', |
Shelley Chen | 2e9582f | 2018-12-12 12:01:31 -0800 | [diff] [blame] | 355 | 'hatch', |
Chen-Tsung Hsieh | 8952792 | 2019-12-27 15:52:27 +0800 | [diff] [blame] | 356 | 'jacuzzi', |
Zhuohao Lee | 291bc6a | 2018-11-08 18:35:24 +0800 | [diff] [blame] | 357 | 'kalista', |
Ruben Rodriguez Buchillon | 6a40804 | 2018-07-25 11:18:45 +0800 | [diff] [blame] | 358 | 'kukui', |
Douglas Anderson | 81ac3e7 | 2018-04-10 16:10:03 -0700 | [diff] [blame] | 359 | 'kunimitsu', |
| 360 | 'lars', |
| 361 | 'meowth', |
| 362 | 'nami', |
| 363 | 'nautilus', |
Aseda Aboagye | e9b2c4f | 2018-05-07 17:22:50 -0700 | [diff] [blame] | 364 | 'nocturne', |
Jett Rink | f97a109 | 2018-05-10 13:52:53 -0600 | [diff] [blame] | 365 | 'octopus_ite', |
| 366 | 'octopus_npcx', |
Douglas Anderson | 81ac3e7 | 2018-04-10 16:10:03 -0700 | [diff] [blame] | 367 | 'pbody', |
| 368 | 'poppy', |
Kangheui Won | 91e53bc | 2019-10-16 17:10:41 +1100 | [diff] [blame] | 369 | 'puff', |
Zhuohao Lee | d89e5b5 | 2018-07-26 10:38:50 +0800 | [diff] [blame] | 370 | 'rammus', |
Douglas Anderson | 81ac3e7 | 2018-04-10 16:10:03 -0700 | [diff] [blame] | 371 | 'reef', |
Duncan Laurie | fdb18b4 | 2018-10-05 15:50:33 -0700 | [diff] [blame] | 372 | 'sarien', |
Douglas Anderson | 81ac3e7 | 2018-04-10 16:10:03 -0700 | [diff] [blame] | 373 | 'scarlet', |
| 374 | 'sentry', |
| 375 | 'soraka', |
Ren Kuo | ba07a02 | 2021-03-18 14:07:03 +0800 | [diff] [blame^] | 376 | 'spherion', |
Douglas Anderson | 81ac3e7 | 2018-04-10 16:10:03 -0700 | [diff] [blame] | 377 | 'strago', |
Bob Moragues | e1a2f8e | 2020-11-03 18:22:45 +0000 | [diff] [blame] | 378 | 'strongbad', |
Wai-Hong Tam | c485973 | 2019-11-04 14:53:34 -0800 | [diff] [blame] | 379 | 'trogdor', |
Keith Short | 68717a4 | 2019-11-05 09:36:32 -0800 | [diff] [blame] | 380 | 'volteer', |
Douglas Anderson | 81ac3e7 | 2018-04-10 16:10:03 -0700 | [diff] [blame] | 381 | 'zoombini', |
Raul E Rangel | 5b382cb | 2019-10-03 16:49:59 -0600 | [diff] [blame] | 382 | 'zork', |
Puthikorn Voravootivat | 01ead15 | 2018-03-23 15:38:40 -0700 | [diff] [blame] | 383 | ]: |
Todd Broch | 82e7a7a | 2016-10-25 10:54:48 -0700 | [diff] [blame] | 384 | INTERFACE_BOARDS[board][0x18d1][0x5002] = \ |
| 385 | list(INTERFACE_DEFAULTS[0x18d1][0x5002]) |
Wai-Hong Tam | 564c170 | 2017-04-24 09:23:38 -0700 | [diff] [blame] | 386 | INTERFACE_BOARDS[board][0x18d1][0x5002][1] = 'ftdi_uart' |