target_t -> struct target
[fw/openocd] / src / flash / s3c2412_nand.c
index 11e54e71b22815500b87cfbdc188120e1dec43a2..852193229238e65a2e7e1cb8e8d7939c4abce796 100644 (file)
 #include "config.h"
 #endif
 
-#include "replacements.h"
-#include "log.h"
-
-#include <stdlib.h>
-#include <string.h>
-
-#include "nand.h"
 #include "s3c24xx_nand.h"
-#include "target.h"
-
-static int s3c2412_nand_device_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct nand_device_s *device);
-static int s3c2412_init(struct nand_device_s *device);
-
-nand_flash_controller_t s3c2412_nand_controller =
-{
-       .name                   = "s3c2412",
-       .nand_device_command    = s3c2412_nand_device_command,
-       .register_commands      = s3c24xx_register_commands,
-       .init                   = s3c2412_init,
-       .reset                  = s3c24xx_reset,
-       .command                = s3c24xx_command,
-       .address                = s3c24xx_address,
-       .write_data             = s3c24xx_write_data,
-       .read_data              = s3c24xx_read_data,
-       .write_page             = s3c24xx_write_page,
-       .read_page              = s3c24xx_read_page,
-       .write_block_data       = s3c2440_write_block_data,
-       .read_block_data        = s3c2440_read_block_data,
-       .controller_ready       = s3c24xx_controller_ready,
-       .nand_ready             = s3c2440_nand_ready,
-};
 
-static int s3c2412_nand_device_command(struct command_context_s *cmd_ctx, char *cmd,
-                               char **args, int argc,
-                               struct nand_device_s *device)
+NAND_DEVICE_COMMAND_HANDLER(s3c2412_nand_device_command)
 {
-       s3c24xx_nand_controller_t *info;
-
-       info = s3c24xx_nand_device_command(cmd_ctx, cmd, args, argc, device);
-       if (info == NULL) {
-               return ERROR_NAND_DEVICE_INVALID;
-       }
+       struct s3c24xx_nand_controller *info;
+       CALL_S3C24XX_DEVICE_COMMAND(nand, &info);
 
        /* fill in the address fields for the core device */
        info->cmd = S3C2440_NFCMD;
        info->addr = S3C2440_NFADDR;
        info->data = S3C2440_NFDATA;
        info->nfstat = S3C2412_NFSTAT;
-       
+
        return ERROR_OK;
 }
 
-static int s3c2412_init(struct nand_device_s *device)
+static int s3c2412_init(struct nand_device_s *nand)
 {
-       s3c24xx_nand_controller_t *s3c24xx_info = device->controller_priv;
-       target_t *target = s3c24xx_info->target;
+       struct s3c24xx_nand_controller *s3c24xx_info = nand->controller_priv;
+       struct target *target = s3c24xx_info->target;
 
        target_write_u32(target, S3C2410_NFCONF,
                         S3C2440_NFCONF_TACLS(3) |
@@ -96,3 +60,21 @@ static int s3c2412_init(struct nand_device_s *device)
 
        return ERROR_OK;
 }
+
+struct nand_flash_controller s3c2412_nand_controller = {
+               .name = "s3c2412",
+               .nand_device_command = &s3c2412_nand_device_command,
+               .register_commands = &s3c24xx_register_commands,
+               .init = &s3c2412_init,
+               .reset = &s3c24xx_reset,
+               .command = &s3c24xx_command,
+               .address = &s3c24xx_address,
+               .write_data = &s3c24xx_write_data,
+               .read_data = &s3c24xx_read_data,
+               .write_page = s3c24xx_write_page,
+               .read_page = s3c24xx_read_page,
+               .write_block_data = &s3c2440_write_block_data,
+               .read_block_data = &s3c2440_read_block_data,
+               .controller_ready = &s3c24xx_controller_ready,
+               .nand_ready = &s3c2440_nand_ready,
+       };