use COMMAND_REGISTER macro
[fw/openocd] / src / jtag / at91rm9200.c
index 8c91171d31d2b7c36dffc3bca13897ce2bc133aa..024dd6d7ea25a78d50c7bd64291247b5e822f162 100644 (file)
 #include "config.h"
 #endif
 
-#include "log.h"
-#include "jtag.h"
+#include "interface.h"
 #include "bitbang.h"
 
-/* system includes */
-#include <string.h>
-#include <stdlib.h>
-#include <stdio.h>
 #include <sys/mman.h>
-#include <unistd.h>
-#include <fcntl.h>
+
 
 /* AT91RM9200 */
 #define AT91C_BASE_SYS (0xfffff000)
@@ -88,47 +82,47 @@ struct device_t
 {
        char* name;
        int TDO_PIO;    /* PIO holding TDO */
-       u32 TDO_MASK;   /* TDO bitmask */
+       uint32_t TDO_MASK;      /* TDO bitmask */
        int TRST_PIO;   /* PIO holding TRST */
-       u32 TRST_MASK;  /* TRST bitmask */
+       uint32_t TRST_MASK;     /* TRST bitmask */
        int TMS_PIO;    /* PIO holding TMS */
-       u32 TMS_MASK;   /* TMS bitmask */
+       uint32_t TMS_MASK;      /* TMS bitmask */
        int TCK_PIO;    /* PIO holding TCK */
-       u32 TCK_MASK;   /* TCK bitmask */
+       uint32_t TCK_MASK;      /* TCK bitmask */
        int TDI_PIO;    /* PIO holding TDI */
-       u32 TDI_MASK;   /* TDI bitmask */
+       uint32_t TDI_MASK;      /* TDI bitmask */
        int SRST_PIO;   /* PIO holding SRST */
-       u32 SRST_MASK;  /* SRST bitmask */
+       uint32_t SRST_MASK;     /* SRST bitmask */
 };
 
-struct device_t devices[] =
+static struct device_t devices[] =
 {
        { "rea_ecr", PIOD, P27, PIOA, NC, PIOD, P23, PIOD, P24, PIOD, P26, PIOC, P5 },
-       { NULL, 0 }
+       { .name = NULL },
 };
 
 /* configuration */
-char* at91rm9200_device;
+static char* at91rm9200_device;
 
 /* interface variables
  */
 static struct device_t* device;
 static int dev_mem_fd;
 static void *sys_controller;
-static u32* pio_base;
+static uint32_t* pio_base;
 
 /* low level command set
  */
-int at91rm9200_read(void);
-void at91rm9200_write(int tck, int tms, int tdi);
-void at91rm9200_reset(int trst, int srst);
+static int at91rm9200_read(void);
+static void at91rm9200_write(int tck, int tms, int tdi);
+static void at91rm9200_reset(int trst, int srst);
 
-int at91rm9200_speed(int speed);
-int at91rm9200_register_commands(struct command_context_s *cmd_ctx);
-int at91rm9200_init(void);
-int at91rm9200_quit(void);
+static int at91rm9200_speed(int speed);
+static int at91rm9200_register_commands(struct command_context *cmd_ctx);
+static int at91rm9200_init(void);
+static int at91rm9200_quit(void);
 
-jtag_interface_t at91rm9200_interface =
+struct jtag_interface at91rm9200_interface =
 {
        .name = "at91rm9200",
 
@@ -140,7 +134,7 @@ jtag_interface_t at91rm9200_interface =
        .quit = at91rm9200_quit,
 };
 
-bitbang_interface_t at91rm9200_bitbang =
+static struct bitbang_interface at91rm9200_bitbang =
 {
        .read = at91rm9200_read,
        .write = at91rm9200_write,
@@ -148,12 +142,12 @@ bitbang_interface_t at91rm9200_bitbang =
        .blink = 0
 };
 
-int at91rm9200_read(void)
+static int at91rm9200_read(void)
 {
        return (pio_base[device->TDO_PIO + PIO_PDSR] & device->TDO_MASK) != 0;
 }
 
-void at91rm9200_write(int tck, int tms, int tdi)
+static void at91rm9200_write(int tck, int tms, int tdi)
 {
        if (tck)
                pio_base[device->TCK_PIO + PIO_SODR] = device->TCK_MASK;
@@ -172,7 +166,7 @@ void at91rm9200_write(int tck, int tms, int tdi)
 }
 
 /* (1) assert or (0) deassert reset lines */
-void at91rm9200_reset(int trst, int srst)
+static void at91rm9200_reset(int trst, int srst)
 {
        if (trst == 0)
                pio_base[device->TRST_PIO + PIO_SODR] = device->TRST_MASK;
@@ -185,35 +179,35 @@ void at91rm9200_reset(int trst, int srst)
                pio_base[device->SRST_PIO + PIO_CODR] = device->SRST_MASK;
 }
 
-int at91rm9200_speed(int speed)
+static int at91rm9200_speed(int speed)
 {
 
        return ERROR_OK;
 }
 
-int at91rm9200_handle_device_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+static int at91rm9200_handle_device_command(struct command_context *cmd_ctx, char *cmd, char **CMD_ARGV, int argc)
 {
-       if (argc == 0)
+       if (CMD_ARGC == 0)
                return ERROR_OK;
 
        /* only if the device name wasn't overwritten by cmdline */
        if (at91rm9200_device == 0)
        {
-               at91rm9200_device = malloc(strlen(args[0]) + sizeof(char));
-               strcpy(at91rm9200_device, args[0]);
+               at91rm9200_device = malloc(strlen(CMD_ARGV[0]) + sizeof(char));
+               strcpy(at91rm9200_device, CMD_ARGV[0]);
        }
 
        return ERROR_OK;
 }
 
-int at91rm9200_register_commands(struct command_context_s *cmd_ctx)
+static int at91rm9200_register_commands(struct command_context *cmd_ctx)
 {
-       register_command(cmd_ctx, NULL, "at91rm9200_device", at91rm9200_handle_device_command,
+       COMMAND_REGISTER(cmd_ctx, NULL, "at91rm9200_device", at91rm9200_handle_device_command,
                COMMAND_CONFIG, NULL);
        return ERROR_OK;
 }
 
-int at91rm9200_init(void)
+static int at91rm9200_init(void)
 {
        struct device_t *cur_device;
 
@@ -222,7 +216,7 @@ int at91rm9200_init(void)
        if (at91rm9200_device == NULL || at91rm9200_device[0] == 0)
        {
                at91rm9200_device = "rea_ecr";
-               WARNING("No at91rm9200 device specified, using default 'rea_ecr'");
+               LOG_WARNING("No at91rm9200 device specified, using default 'rea_ecr'");
        }
 
        while (cur_device->name)
@@ -237,7 +231,7 @@ int at91rm9200_init(void)
 
        if (!device)
        {
-               ERROR("No matching device found for %s", at91rm9200_device);
+               LOG_ERROR("No matching device found for %s", at91rm9200_device);
                return ERROR_JTAG_INIT_FAILED;
        }
 
@@ -256,7 +250,7 @@ int at91rm9200_init(void)
                close(dev_mem_fd);
                return ERROR_JTAG_INIT_FAILED;
        }
-       pio_base = (u32*)sys_controller + 0x100;
+       pio_base = (uint32_t*)sys_controller + 0x100;
 
        /*
         * Configure TDO as an input, and TDI, TCK, TMS, TRST, SRST
@@ -284,7 +278,7 @@ int at91rm9200_init(void)
        return ERROR_OK;
 }
 
-int at91rm9200_quit(void)
+static int at91rm9200_quit(void)
 {
 
        return ERROR_OK;