diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-04-25 10:32:28 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-04-25 11:02:24 +0200 |
commit | a79d650d0df238b7286379ca5e11566eda3a2cfe (patch) | |
tree | 958568fa5fce222a30034bcdc945bcacf6d5bfe5 /c/src/lib/libbsp | |
parent | bsp/mrm332: Move interr.c to bsps (diff) | |
download | rtems-a79d650d0df238b7286379ca5e11566eda3a2cfe.tar.bz2 |
bsp/mcf5206elite: Move nvram.c to bsps
This patch is a part of the BSP source reorganization.
Update #3285.
Diffstat (limited to 'c/src/lib/libbsp')
-rw-r--r-- | c/src/lib/libbsp/m68k/mcf5206elite/Makefile.am | 2 | ||||
-rw-r--r-- | c/src/lib/libbsp/m68k/mcf5206elite/nvram/nvram.c | 173 |
2 files changed, 1 insertions, 174 deletions
diff --git a/c/src/lib/libbsp/m68k/mcf5206elite/Makefile.am b/c/src/lib/libbsp/m68k/mcf5206elite/Makefile.am index b05c381e88..4148b28366 100644 --- a/c/src/lib/libbsp/m68k/mcf5206elite/Makefile.am +++ b/c/src/lib/libbsp/m68k/mcf5206elite/Makefile.am @@ -42,7 +42,7 @@ librtemsbsp_a_SOURCES += ../../../../../../bsps/m68k/mcf5206elite/rtc/ds1307.c librtemsbsp_a_SOURCES += ../../../../../../bsps/m68k/mcf5206elite/rtc/todcfg.c librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/dev/rtc/rtc-support.c # nvram -librtemsbsp_a_SOURCES += nvram/nvram.c +librtemsbsp_a_SOURCES += ../../../../../../bsps/m68k/mcf5206elite/nvram/nvram.c librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/cache/nocache.c librtemsbsp_a_SOURCES += ../../../../../../bsps/m68k/shared/m68kidle.c diff --git a/c/src/lib/libbsp/m68k/mcf5206elite/nvram/nvram.c b/c/src/lib/libbsp/m68k/mcf5206elite/nvram/nvram.c deleted file mode 100644 index d140272523..0000000000 --- a/c/src/lib/libbsp/m68k/mcf5206elite/nvram/nvram.c +++ /dev/null @@ -1,173 +0,0 @@ -/* - * DS1307-based Non-Volatile memory device driver - * - * DS1307 chip is a I2C Real-Time Clock. It contains 56 bytes of - * non-volatile RAM storage. This driver provide file-like interface to - * this memory. - * - * Copyright (C) 2000 OKTET Ltd., St.-Petersburg, Russia - * Author: Victor V. Vengerov <vvv@oktet.ru> - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * - * http://www.rtems.org/license/LICENSE. - */ - -#include <rtems.h> -#include <rtems/libio.h> -#include <errno.h> -#include <string.h> -#include <bsp.h> -#include <nvram.h> -#include <i2c.h> -#include <ds1307.h> - -/* nvram_driver_initialize -- - * Non-volatile memory device driver initialization. - */ -rtems_device_driver -nvram_driver_initialize(rtems_device_major_number major, - rtems_device_minor_number minor, - void *arg) -{ - rtems_status_code sc; - i2c_message_status status; - i2c_bus_number bus = DS1307_I2C_BUS_NUMBER; - i2c_address addr = DS1307_I2C_ADDRESS; - int try = 0; - do { - status = i2c_wrbyte(bus, addr, 0); - if (status == I2C_NO_DEVICE) - break; - try++; - } while ((try < 15) && (status != I2C_SUCCESSFUL)); - - if (status == I2C_SUCCESSFUL) - { - sc = rtems_io_register_name("/dev/nvram", major, 0); - if (sc != RTEMS_SUCCESSFUL) - { - errno = EIO; - return RTEMS_UNSATISFIED; - } - else - return RTEMS_SUCCESSFUL; - } - else - { - errno = ENODEV; - return RTEMS_UNSATISFIED; - } -} - -/* nvram_driver_open -- - * Non-volatile memory device driver open primitive. - */ -rtems_device_driver -nvram_driver_open(rtems_device_major_number major, - rtems_device_minor_number minor, - void *arg) -{ - return RTEMS_SUCCESSFUL; -} - -/* nvram_driver_close -- - * Non-volatile memory device driver close primitive. - */ -rtems_device_driver -nvram_driver_close(rtems_device_major_number major, - rtems_device_minor_number minor, - void *arg) -{ - return RTEMS_SUCCESSFUL; -} - -/* nvram_driver_read -- - * Non-volatile memory device driver read primitive. - */ -rtems_device_driver -nvram_driver_read(rtems_device_major_number major, - rtems_device_minor_number minor, - void *arg) -{ - rtems_libio_rw_args_t *args = arg; - uint32_t count; - i2c_bus_number bus = DS1307_I2C_BUS_NUMBER; - i2c_address addr = DS1307_I2C_ADDRESS; - i2c_message_status status; - if (args->offset >= DS1307_NVRAM_SIZE) - { - count = 0; - } - else if (args->offset + args->count >= DS1307_NVRAM_SIZE) - { - count = DS1307_NVRAM_SIZE - args->offset; - } - else - { - count = args->count; - } - if (count > 0) - { - int try = 0; - do { - status = i2c_wbrd(bus, addr, DS1307_NVRAM_START + args->offset, - args->buffer, count); - try++; - } while ((try < 15) && (status != I2C_SUCCESSFUL)); - if (status != I2C_SUCCESSFUL) - { - errno = EIO; - return RTEMS_UNSATISFIED; - } - } - args->bytes_moved = count; - return RTEMS_SUCCESSFUL; -} - -/* nvram_driver_write -- - * Non-volatile memory device driver write primitive. - */ -rtems_device_driver -nvram_driver_write(rtems_device_major_number major, - rtems_device_minor_number minor, - void *arg) -{ - rtems_libio_rw_args_t *args = arg; - uint32_t count; - i2c_bus_number bus = DS1307_I2C_BUS_NUMBER; - i2c_address addr = DS1307_I2C_ADDRESS; - i2c_message_status status; - - if (args->offset >= DS1307_NVRAM_SIZE) - { - count = 0; - } - else if (args->offset + args->count >= DS1307_NVRAM_SIZE) - { - count = DS1307_NVRAM_SIZE - args->offset; - } - else - { - count = args->count; - } - if (count > 0) - { - int try = 0; - do { - uint8_t buf[DS1307_NVRAM_SIZE + 1]; - buf[0] = DS1307_NVRAM_START + args->offset; - memcpy(buf+1, args->buffer, count); - status = i2c_write(bus, addr, buf, count+1); - try++; - } while ((try < 15) && (status != I2C_SUCCESSFUL)); - if (status != I2C_SUCCESSFUL) - { - errno = EIO; - return RTEMS_UNSATISFIED; - } - } - args->bytes_moved = count; - return RTEMS_SUCCESSFUL; -} |