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