diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2019-12-05 19:22:33 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2019-12-11 09:05:07 +0100 |
commit | bb99cd0d83ae32e1f222bf2c8235a8f95128815d (patch) | |
tree | 345350623f1913eb19e785bf671e02cc114cdfe0 /cpukit | |
parent | clock: Remove Clock_exit() from API (diff) | |
download | rtems-bb99cd0d83ae32e1f222bf2c8235a8f95128815d.tar.bz2 |
clock: Simplify driver initialization
Use a system initialization handler instead of a legacy IO driver.
Update #3834.
Diffstat (limited to 'cpukit')
-rw-r--r-- | cpukit/include/rtems/clockdrv.h | 39 | ||||
-rw-r--r-- | cpukit/include/rtems/confdefs.h | 12 |
2 files changed, 33 insertions, 18 deletions
diff --git a/cpukit/include/rtems/clockdrv.h b/cpukit/include/rtems/clockdrv.h index 543838b964..f3df912e74 100644 --- a/cpukit/include/rtems/clockdrv.h +++ b/cpukit/include/rtems/clockdrv.h @@ -1,9 +1,11 @@ /** * @file * - * @brief Clock Driver for all Boards + * @ingroup RTEMSDriverClock * - * This file describes the Clock Driver for all boards. + * @brief Clock Driver API + * + * This file defines the Clock Driver API. */ /* @@ -18,26 +20,35 @@ #ifndef _RTEMS_CLOCKDRV_H #define _RTEMS_CLOCKDRV_H -#include <rtems/io.h> /* rtems_device_driver */ +#include <stdint.h> #ifdef __cplusplus extern "C" { #endif -/* variables */ - -extern volatile uint32_t Clock_driver_ticks; +/** + * @defgroup RTEMSDriverClock Clock Driver + * + * @ingroup RTEMSDeviceDrivers + * + * @brief The Clock Driver API. + * + * @{ + */ -/* default clock driver entry */ +/** + * @brief Count of clock driver ticks since system boot or last overflow. + * + * This counter may overflow. + */ +extern volatile uint32_t Clock_driver_ticks; -#define CLOCK_DRIVER_TABLE_ENTRY \ - { Clock_initialize, NULL, NULL, NULL, NULL, NULL } +/** + * @brief Initialize the clock driver. + */ +void _Clock_Initialize( void ); -rtems_device_driver Clock_initialize( - rtems_device_major_number, - rtems_device_minor_number, - void * -); +/** @} */ #ifdef __cplusplus } diff --git a/cpukit/include/rtems/confdefs.h b/cpukit/include/rtems/confdefs.h index f04717006d..cbcd1f98c2 100644 --- a/cpukit/include/rtems/confdefs.h +++ b/cpukit/include/rtems/confdefs.h @@ -1558,6 +1558,14 @@ extern rtems_initialization_tasks_table Initialization_tasks[]; #ifdef CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER #include <rtems/clockdrv.h> + + #ifdef CONFIGURE_INIT + RTEMS_SYSINIT_ITEM( + _Clock_Initialize, + RTEMS_SYSINIT_DEVICE_DRIVERS, + RTEMS_SYSINIT_ORDER_THIRD + ); + #endif #endif #ifdef CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER @@ -1619,9 +1627,6 @@ extern rtems_initialization_tasks_table Initialization_tasks[]; #ifdef CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER CONSOLE_DRIVER_TABLE_ENTRY, #endif - #ifdef CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER - CLOCK_DRIVER_TABLE_ENTRY, - #endif #ifdef CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER RTC_DRIVER_TABLE_ENTRY, #endif @@ -1649,7 +1654,6 @@ extern rtems_initialization_tasks_table Initialization_tasks[]; #ifdef CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER NULL_DRIVER_TABLE_ENTRY #elif !defined(CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER) && \ - !defined(CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER) && \ !defined(CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER) && \ !defined(CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER) && \ !defined(CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER) && \ |