*/
NAND_DEVICE_COMMAND_HANDLER(lpc3180_nand_device_command)
{
- if (argc < 3)
+ if (CMD_ARGC < 3)
{
LOG_WARNING("incomplete 'lpc3180' nand flash configuration");
return ERROR_FLASH_BANK_INVALID;
}
- struct target *target = get_target(args[1]);
+ struct target *target = get_target(CMD_ARGV[1]);
if (NULL == target)
{
- LOG_ERROR("target '%s' not defined", args[1]);
+ LOG_ERROR("target '%s' not defined", CMD_ARGV[1]);
return ERROR_NAND_DEVICE_INVALID;
}
uint32_t osc_freq;
- COMMAND_PARSE_NUMBER(u32, args[2], osc_freq);
+ COMMAND_PARSE_NUMBER(u32, CMD_ARGV[2], osc_freq);
struct lpc3180_nand_controller *lpc3180_info;
lpc3180_info = malloc(sizeof(struct lpc3180_nand_controller));
"no", "mlc", "slc"
};
- if ((argc < 1) || (argc > 2))
+ if ((CMD_ARGC < 1) || (CMD_ARGC > 2))
{
return ERROR_COMMAND_SYNTAX_ERROR;
}
unsigned num;
- COMMAND_PARSE_NUMBER(uint, args[1], num);
+ COMMAND_PARSE_NUMBER(uint, CMD_ARGV[1], num);
struct nand_device *nand = get_nand_device_by_num(num);
if (!nand)
{
- command_print(cmd_ctx, "nand device '#%s' is out of bounds", args[0]);
+ command_print(CMD_CTX, "nand device '#%s' is out of bounds", CMD_ARGV[0]);
return ERROR_OK;
}
lpc3180_info = nand->controller_priv;
- if (argc == 2)
+ if (CMD_ARGC == 2)
{
- if (strcmp(args[1], "mlc") == 0)
+ if (strcmp(CMD_ARGV[1], "mlc") == 0)
{
lpc3180_info->selected_controller = LPC3180_MLC_CONTROLLER;
}
- else if (strcmp(args[1], "slc") == 0)
+ else if (strcmp(CMD_ARGV[1], "slc") == 0)
{
lpc3180_info->selected_controller = LPC3180_SLC_CONTROLLER;
}
}
}
- command_print(cmd_ctx, "%s controller selected", selected[lpc3180_info->selected_controller]);
+ command_print(CMD_CTX, "%s controller selected", selected[lpc3180_info->selected_controller]);
return ERROR_OK;
}
+static const struct command_registration lpc3180_exec_command_handlers[] = {
+ {
+ .name = "select",
+ .handler = &handle_lpc3180_select_command,
+ .mode = COMMAND_EXEC,
+ .help = "select <'mlc'|'slc'> controller (default is mlc)",
+ .usage = "<device_id> (mlc|slc)",
+ },
+ COMMAND_REGISTRATION_DONE
+};
+static const struct command_registration lpc3180_command_handler[] = {
+ {
+ .name = "lpc3180",
+ .mode = COMMAND_ANY,
+ .help = "LPC3180 NAND flash controller commands",
+ .chain = lpc3180_exec_command_handlers,
+ },
+ COMMAND_REGISTRATION_DONE
+};
+
static int lpc3180_register_commands(struct command_context *cmd_ctx)
{
- command_t *lpc3180_cmd = register_command(cmd_ctx, NULL, "lpc3180", NULL, COMMAND_ANY, "commands specific to the LPC3180 NAND flash controllers");
-
- register_command(cmd_ctx, lpc3180_cmd, "select", handle_lpc3180_select_command, COMMAND_EXEC, "select <'mlc'|'slc'> controller (default is mlc)");
-
- return ERROR_OK;
+ return register_commands(cmd_ctx, NULL, lpc3180_command_handler);
}
struct nand_flash_controller lpc3180_nand_controller = {