use ARRAY_SIZE macro
[fw/openocd] / src / flash / s3c2440_nand.c
index 2321382cbe5e03218d50bad6364cee5449f636e4..556f6f1e89b960af560360689cf0d1f62932ad47 100644 (file)
 #include "s3c24xx_nand.h"
 
 
-static int s3c2440_nand_device_command(struct command_context_s *cmd_ctx, char *cmd,
-                               char **args, int argc,
-                               struct nand_device_s *device)
+NAND_DEVICE_COMMAND_HANDLER(s3c2440_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;
@@ -51,10 +45,10 @@ static int s3c2440_nand_device_command(struct command_context_s *cmd_ctx, char *
        return ERROR_OK;
 }
 
-static int s3c2440_init(struct nand_device_s *device)
+static int s3c2440_init(struct nand_device *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) |
@@ -67,10 +61,10 @@ static int s3c2440_init(struct nand_device_s *device)
        return ERROR_OK;
 }
 
-int s3c2440_nand_ready(struct nand_device_s *device, int timeout)
+int s3c2440_nand_ready(struct nand_device *nand, int timeout)
 {
-       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;
        uint8_t status;
 
        if (target->state != TARGET_HALTED) {
@@ -93,14 +87,14 @@ int s3c2440_nand_ready(struct nand_device_s *device, int timeout)
 
 /* use the fact we can read/write 4 bytes in one go via a single 32bit op */
 
-int s3c2440_read_block_data(struct nand_device_s *device, uint8_t *data, int data_size)
+int s3c2440_read_block_data(struct nand_device *nand, uint8_t *data, int data_size)
 {
-       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;
        uint32_t nfdata = s3c24xx_info->data;
        uint32_t tmp;
 
-       LOG_INFO("%s: reading data: %p, %p, %d\n", __func__, device, data, data_size);
+       LOG_INFO("%s: reading data: %p, %p, %d\n", __func__, nand, data, data_size);
 
        if (target->state != TARGET_HALTED) {
                LOG_ERROR("target must be halted to use S3C24XX NAND flash controller");
@@ -129,10 +123,10 @@ int s3c2440_read_block_data(struct nand_device_s *device, uint8_t *data, int dat
        return ERROR_OK;
 }
 
-int s3c2440_write_block_data(struct nand_device_s *device, uint8_t *data, int data_size)
+int s3c2440_write_block_data(struct nand_device *nand, uint8_t *data, int data_size)
 {
-       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;
        uint32_t nfdata = s3c24xx_info->data;
        uint32_t tmp;
 
@@ -159,10 +153,9 @@ int s3c2440_write_block_data(struct nand_device_s *device, uint8_t *data, int da
        return ERROR_OK;
 }
 
-nand_flash_controller_t s3c2440_nand_controller = {
+struct nand_flash_controller s3c2440_nand_controller = {
                .name = "s3c2440",
                .nand_device_command = &s3c2440_nand_device_command,
-               .register_commands = &s3c24xx_register_commands,
                .init = &s3c2440_init,
                .reset = &s3c24xx_reset,
                .command = &s3c24xx_command,