1 1.1 brad /* $NetBSD: scmdctlconst.h,v 1.1 2021/12/07 17:39:55 brad Exp $ */ 2 1.1 brad 3 1.1 brad /* 4 1.1 brad * Copyright (c) 2021 Brad Spencer <brad (at) anduin.eldar.org> 5 1.1 brad * 6 1.1 brad * Permission to use, copy, modify, and distribute this software for any 7 1.1 brad * purpose with or without fee is hereby granted, provided that the above 8 1.1 brad * copyright notice and this permission notice appear in all copies. 9 1.1 brad * 10 1.1 brad * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 11 1.1 brad * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 12 1.1 brad * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 13 1.1 brad * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 14 1.1 brad * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 15 1.1 brad * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 16 1.1 brad * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17 1.1 brad */ 18 1.1 brad 19 1.1 brad #ifndef _SCMDCTLCONST_H_ 20 1.1 brad #define _SCMDCTLCONST_H_ 21 1.1 brad 22 1.1 brad static const struct scmdcmd scmdcmds[] = { 23 1.1 brad { 24 1.1 brad .cmd = "identify", 25 1.1 brad .id = SCMD_IDENTIFY, 26 1.1 brad .helpargs = "[module]" 27 1.1 brad }, 28 1.1 brad { 29 1.1 brad .cmd = "diagnostics", 30 1.1 brad .id = SCMD_DIAG, 31 1.1 brad .helpargs = "[module]" 32 1.1 brad }, 33 1.1 brad { 34 1.1 brad .cmd = "motor", 35 1.1 brad .id = SCMD_MOTOR, 36 1.1 brad .helpargs = "get|set|invert|bridge|enable|disable module([get]|set|invert|bridge) A|B(set|invert) value(set)" 37 1.1 brad }, 38 1.1 brad { 39 1.1 brad .cmd = "read_register", 40 1.1 brad .id = SCMD_READ, 41 1.1 brad .helpargs = "module register [register_end]" 42 1.1 brad }, 43 1.1 brad { 44 1.1 brad .cmd = "write_register", 45 1.1 brad .id = SCMD_WRITE, 46 1.1 brad .helpargs = "module register value" 47 1.1 brad }, 48 1.1 brad { 49 1.1 brad .cmd = "restart", 50 1.1 brad .id = SCMD_RESTART, 51 1.1 brad .helpargs = "" 52 1.1 brad }, 53 1.1 brad { 54 1.1 brad .cmd = "re-enumerate", 55 1.1 brad .id = SCMD_ENUMERATE, 56 1.1 brad .helpargs = "" 57 1.1 brad }, 58 1.1 brad { 59 1.1 brad .cmd = "update_rate", 60 1.1 brad .id = SCMD_UPDATERATE, 61 1.1 brad .helpargs = "get|set|force rate(set)" 62 1.1 brad }, 63 1.1 brad { 64 1.1 brad .cmd = "expansion_bus", 65 1.1 brad .id = SCMD_EBUS, 66 1.1 brad .helpargs = "get|set 50kHz|100kHz|400kHz(set)" 67 1.1 brad }, 68 1.1 brad { 69 1.1 brad .cmd = "lock", 70 1.1 brad .id = SCMD_LOCK, 71 1.1 brad .helpargs = "get|lock|unlock local_user|local_master|global_user|global_master" 72 1.1 brad }, 73 1.1 brad { 74 1.1 brad .cmd = "spi_read_one", 75 1.1 brad .id = SCMD_SPIREADONE, 76 1.1 brad .helpargs = "" 77 1.1 brad } 78 1.1 brad }; 79 1.1 brad 80 1.1 brad static const struct scmdcmd motorsubcmds[] = { 81 1.1 brad { 82 1.1 brad .cmd = "get", 83 1.1 brad .id = SCMD_SUBMOTORGET, 84 1.1 brad .helpargs = "" 85 1.1 brad }, 86 1.1 brad { 87 1.1 brad .cmd = "set", 88 1.1 brad .id = SCMD_SUBMOTORSET, 89 1.1 brad .helpargs = "" 90 1.1 brad }, 91 1.1 brad { 92 1.1 brad .cmd = "invert", 93 1.1 brad .id = SCMD_SUBMOTORINVERT, 94 1.1 brad .helpargs = "" 95 1.1 brad }, 96 1.1 brad { 97 1.1 brad .cmd = "bridge", 98 1.1 brad .id = SCMD_SUBMOTORBRIDGE, 99 1.1 brad .helpargs = "" 100 1.1 brad }, 101 1.1 brad { 102 1.1 brad .cmd = "disable", 103 1.1 brad .id = SCMD_SUBMOTORDISABLE, 104 1.1 brad .helpargs = "" 105 1.1 brad }, 106 1.1 brad { 107 1.1 brad .cmd = "enable", 108 1.1 brad .id = SCMD_SUBMOTORENABLE, 109 1.1 brad .helpargs = "" 110 1.1 brad } 111 1.1 brad }; 112 1.1 brad 113 1.1 brad static const struct scmdcmd updateratesubcmds[] = { 114 1.1 brad { 115 1.1 brad .cmd = "get", 116 1.1 brad .id = SCMD_SUBURGET, 117 1.1 brad .helpargs = "" 118 1.1 brad }, 119 1.1 brad { 120 1.1 brad .cmd = "set", 121 1.1 brad .id = SCMD_SUBURSET, 122 1.1 brad .helpargs = "" 123 1.1 brad }, 124 1.1 brad { 125 1.1 brad .cmd = "force", 126 1.1 brad .id = SCMD_SUBURFORCE, 127 1.1 brad .helpargs = "" 128 1.1 brad } 129 1.1 brad }; 130 1.1 brad 131 1.1 brad static const struct scmdcmd ebussubcmds[] = { 132 1.1 brad { 133 1.1 brad .cmd = "get", 134 1.1 brad .id = SCMD_SUBEBUSGET, 135 1.1 brad .helpargs = "" 136 1.1 brad }, 137 1.1 brad { 138 1.1 brad .cmd = "set", 139 1.1 brad .id = SCMD_SUBEBUSSET, 140 1.1 brad .helpargs = "" 141 1.1 brad } 142 1.1 brad }; 143 1.1 brad 144 1.1 brad static const struct scmdcmd locksubcmds[] = { 145 1.1 brad { 146 1.1 brad .cmd = "get", 147 1.1 brad .id = SCMD_SUBLOCKGET, 148 1.1 brad .helpargs = "" 149 1.1 brad }, 150 1.1 brad { 151 1.1 brad .cmd = "lock", 152 1.1 brad .id = SCMD_SUBLOCKLOCK, 153 1.1 brad .helpargs = "" 154 1.1 brad }, 155 1.1 brad { 156 1.1 brad .cmd = "unlock", 157 1.1 brad .id = SCMD_SUBLOCKUNLOCK, 158 1.1 brad .helpargs = "" 159 1.1 brad } 160 1.1 brad }; 161 1.1 brad 162 1.1 brad static const struct scmdcmd lockcmdtypes[] = { 163 1.1 brad { 164 1.1 brad .cmd = "local_user", 165 1.1 brad .id = SCMD_LOCAL_USER_LOCK, 166 1.1 brad .helpargs = "" 167 1.1 brad }, 168 1.1 brad { 169 1.1 brad .cmd = "local_master", 170 1.1 brad .id = SCMD_LOCAL_MASTER_LOCK, 171 1.1 brad .helpargs = "" 172 1.1 brad }, 173 1.1 brad { 174 1.1 brad .cmd = "global_user", 175 1.1 brad .id = SCMD_GLOBAL_USER_LOCK, 176 1.1 brad .helpargs = "" 177 1.1 brad }, 178 1.1 brad { 179 1.1 brad .cmd = "global_master", 180 1.1 brad .id = SCMD_GLOBAL_MASTER_LOCK, 181 1.1 brad .helpargs = "" 182 1.1 brad } 183 1.1 brad }; 184 1.1 brad 185 1.1 brad static const char *ebus_speeds[] = { 186 1.1 brad "50kHz","100kHz","400kHz" 187 1.1 brad }; 188 1.1 brad 189 1.1 brad static const char *scmdregisternames[] = { 190 1.1 brad "FID", 191 1.1 brad "ID", 192 1.1 brad "SLAVE_ADDR", 193 1.1 brad "CONFIG_BITS", 194 1.1 brad "U_I2C_RD_ERR", 195 1.1 brad "U_I2C_WR_ERR", 196 1.1 brad "U_BUF_DUMPED", 197 1.1 brad "E_I2C_RD_ERR", 198 1.1 brad "E_I2C_WR_ERR", 199 1.1 brad "LOOP_TIME", 200 1.1 brad "SLV_POLL_CNT", 201 1.1 brad "SLV_TOP_ADDR", 202 1.1 brad "MST_E_ERR", 203 1.1 brad "MST_E_STATUS", 204 1.1 brad "FSAFE_FAULTS", 205 1.1 brad "REG_OOR_CNT", 206 1.1 brad "REG_RO_WRITE_CNT", 207 1.1 brad "GEN_TEST_WORD", 208 1.1 brad "MOTOR_A_INVERT", 209 1.1 brad "MOTOR_B_INVERT", 210 1.1 brad "BRIDGE", 211 1.1 brad "LOCAL_MASTER_LOCK", 212 1.1 brad "LOCAL_USER_LOCK", 213 1.1 brad "MST_E_IN_FN", 214 1.1 brad "U_PORT_CLKDIV_U", 215 1.1 brad "U_PORT_CLKDIV_L", 216 1.1 brad "U_PORT_CLKDIV_CTRL", 217 1.1 brad "E_PORT_CLKDIV_U", 218 1.1 brad "E_PORT_CLKDIV_L", 219 1.1 brad "E_PORT_CLKDIV_CTRL", 220 1.1 brad "U_BUS_UART_BAUD", 221 1.1 brad "FSAFE_CTRL", 222 1.1 brad "MA_DRIVE", 223 1.1 brad "MB_DRIVE", 224 1.1 brad "S1A_DRIVE", 225 1.1 brad "S1B_DRIVE", 226 1.1 brad "S2A_DRIVE", 227 1.1 brad "S2B_DRIVE", 228 1.1 brad "S3A_DRIVE", 229 1.1 brad "S3B_DRIVE", 230 1.1 brad "S4A_DRIVE", 231 1.1 brad "S4B_DRIVE", 232 1.1 brad "S5A_DRIVE", 233 1.1 brad "S5B_DRIVE", 234 1.1 brad "S6A_DRIVE", 235 1.1 brad "S6B_DRIVE", 236 1.1 brad "S7A_DRIVE", 237 1.1 brad "S7B_DRIVE", 238 1.1 brad "S8A_DRIVE", 239 1.1 brad "S8B_DRIVE", 240 1.1 brad "S9A_DRIVE", 241 1.1 brad "S9B_DRIVE", 242 1.1 brad "S10A_DRIVE", 243 1.1 brad "S10B_DRIVE", 244 1.1 brad "S11A_DRIVE", 245 1.1 brad "S11B_DRIVE", 246 1.1 brad "S12A_DRIVE", 247 1.1 brad "S12B_DRIVE", 248 1.1 brad "S13A_DRIVE", 249 1.1 brad "S13B_DRIVE", 250 1.1 brad "S14A_DRIVE", 251 1.1 brad "S14B_DRIVE", 252 1.1 brad "S15A_DRIVE", 253 1.1 brad "S15B_DRIVE", 254 1.1 brad "S16A_DRIVE", 255 1.1 brad "S16B_DRIVE", 256 1.1 brad "HOLE_1_42", 257 1.1 brad "HOLE_1_43", 258 1.1 brad "HOLE_1_44", 259 1.1 brad "HOLE_1_45", 260 1.1 brad "HOLE_1_46", 261 1.1 brad "HOLE_1_47", 262 1.1 brad "HOLE_1_48", 263 1.1 brad "HOLE_1_49", 264 1.1 brad "HOLE_1_4A", 265 1.1 brad "HOLE_1_4B", 266 1.1 brad "HOLE_1_4C", 267 1.1 brad "HOLE_1_4D", 268 1.1 brad "HOLE_1_4E", 269 1.1 brad "HOLE_1_4F", 270 1.1 brad "INV_2_9", 271 1.1 brad "INV_10_17", 272 1.1 brad "INV_18_25", 273 1.1 brad "INV_26_33", 274 1.1 brad "BRIDGE_SLV_L", 275 1.1 brad "BRIDGE_SLV_H", 276 1.1 brad "HOLE_2_56", 277 1.1 brad "HOLE_2_57", 278 1.1 brad "HOLE_2_58", 279 1.1 brad "HOLE_2_59", 280 1.1 brad "HOLE_2_5A", 281 1.1 brad "HOLE_2_5B", 282 1.1 brad "HOLE_2_5C", 283 1.1 brad "HOLE_2_5D", 284 1.1 brad "HOLE_2_5E", 285 1.1 brad "HOLE_2_5F", 286 1.1 brad "HOLE_2_60", 287 1.1 brad "HOLE_2_61", 288 1.1 brad "HOLE_2_62", 289 1.1 brad "HOLE_2_63", 290 1.1 brad "HOLE_2_64", 291 1.1 brad "HOLE_2_65", 292 1.1 brad "HOLE_2_66", 293 1.1 brad "HOLE_2_67", 294 1.1 brad "HOLE_2_68", 295 1.1 brad "HOLE_2_69", 296 1.1 brad "HOLE_2_6A", 297 1.1 brad "HOLE_2_6B", 298 1.1 brad "HOLE_2_6C", 299 1.1 brad "HOLE_2_6D", 300 1.1 brad "HOLE_2_6E", 301 1.1 brad "PAGE_SELECT", 302 1.1 brad "DRIVER_ENABLE", 303 1.1 brad "UPDATE_RATE", 304 1.1 brad "FORCE_UPDATE", 305 1.1 brad "E_BUS_SPEED", 306 1.1 brad "MASTER_LOCK", 307 1.1 brad "USER_LOCK", 308 1.1 brad "FSAFE_TIME", 309 1.1 brad "STATUS_1", 310 1.1 brad "CONTROL_1", 311 1.1 brad "REM_ADDR", 312 1.1 brad "REM_OFFSET", 313 1.1 brad "REM_DATA_WR", 314 1.1 brad "REM_DATA_RD", 315 1.1 brad "REM_WRITE", 316 1.1 brad "REM_READ" 317 1.1 brad }; 318 1.1 brad 319 1.1 brad #endif 320