Centralize definitions associated with CONFIG_DEBUG_TIMER

This commit is contained in:
Gregory Nutt 2016-06-16 07:16:25 -06:00
parent 6b517ed017
commit 37b9742189
29 changed files with 368 additions and 440 deletions

30
Kconfig
View File

@ -1276,14 +1276,40 @@ config DEBUG_SPI_INFO
endif # DEBUG_SPI endif # DEBUG_SPI
config DEBUG_TIMER config DEBUG_TIMER
bool "Timer Debug Output" bool "Timer Debug Features"
default n default n
depends on TIMER depends on TIMER
---help--- ---help---
Enable timer debug SYSLOG output (disabled by default). Enable timer debug features.
Support for this debug option is architecture-specific and may not Support for this debug option is architecture-specific and may not
be available for some MCUs. be available for some MCUs.
if DEBUG_TIMER
config DEBUG_TIMER_ERROR
bool "Timer Error Output"
default n
depends on DEBUG_ERROR
---help---
Enable timer error output to SYSLOG.
config DEBUG_TIMER_WARN
bool "Timer Warnings Output"
default n
depends on DEBUG_WARN
---help---
Enable timer warning output to SYSLOG.
config DEBUG_TIMER_INFO
bool "Timer Informational Output"
default n
depends on DEBUG_INFO
---help---
Enable timer informational output to SYSLOG.
endif # DEBUG_TIMER
config DEBUG_USB config DEBUG_USB
bool "USB Debug Features" bool "USB Debug Features"
default n default n

View File

@ -55,50 +55,18 @@
#include "efm32_config.h" #include "efm32_config.h"
#include "efm32_gpio.h" #include "efm32_gpio.h"
/**************************************************************************** /****************************************************************************
* Pre-processor Definitions * Pre-processor Definitions
****************************************************************************/ ****************************************************************************/
/* Debug ********************************************************************/ /* Debug ********************************************************************/
/* Non-standard debug that may be enabled just for testing TIMER */
#ifndef CONFIG_DEBUG_FEATURES #ifdef CONFIG_DEBUG_TIMER_INFO
# undef CONFIG_DEBUG_TIMER # define efm32_timer_dumpgpio(p,m) efm32_dumpgpio(p,m)
#endif
#ifdef CONFIG_DEBUG_TIMER
# define efm32_timererr err
# define efm32_timerllerr llerr
# ifdef CONFIG_DEBUG_INFO
# define efm32_timerinfo info
# define efm32_timerllinfo llinfo
# define efm32_timer_dumpgpio(p,m) efm32_dumpgpio(p,m)
# else
# define efm32_timerllerr(x...)
# define efm32_timerllinfo(x...)
# define efm32_timer_dumpgpio(p,m)
# endif
#else #else
# define efm32_timererr(x...)
# define efm32_timerllerr(x...)
# define efm32_timerinfo(x...)
# define efm32_timerllinfo(x...)
# define efm32_timer_dumpgpio(p,m) # define efm32_timer_dumpgpio(p,m)
#endif #endif
/****************************************************************************
* Private Types
****************************************************************************/
/****************************************************************************
* Static Function Prototypes
****************************************************************************/
/****************************************************************************
* Private Data
****************************************************************************/
/**************************************************************************** /****************************************************************************
* Private Functions * Private Functions
****************************************************************************/ ****************************************************************************/
@ -119,48 +87,43 @@
void efm32_timer_dumpregs(uintptr_t base, FAR const char *msg) void efm32_timer_dumpregs(uintptr_t base, FAR const char *msg)
{ {
#ifdef CONFIG_DEBUG_TIMER_INFO
int i; int i;
efm32_timerinfo("%s:\n", msg); tmrinfo("%s:\n", msg);
efm32_timerinfo(" CTRL: %04x STATUS: %04x IEN: %04x IF: %04x\n", tmrinfo(" CTRL: %04x STATUS: %04x IEN: %04x IF: %04x\n",
getreg32(base + EFM32_TIMER_CTRL_OFFSET ), getreg32(base + EFM32_TIMER_CTRL_OFFSET ),
getreg32(base + EFM32_TIMER_STATUS_OFFSET ), getreg32(base + EFM32_TIMER_STATUS_OFFSET ),
getreg32(base + EFM32_TIMER_IEN_OFFSET ), getreg32(base + EFM32_TIMER_IEN_OFFSET ),
getreg32(base + EFM32_TIMER_IF_OFFSET ) getreg32(base + EFM32_TIMER_IF_OFFSET ));
); tmrinfo(" TOP: %04x TOPB: %04x CNT: %04x ROUTE: %04x\n",
efm32_timerinfo(" TOP: %04x TOPB: %04x CNT: %04x ROUTE: %04x\n", getreg32(base + EFM32_TIMER_TOP_OFFSET ),
getreg32(base + EFM32_TIMER_TOP_OFFSET ), getreg32(base + EFM32_TIMER_TOPB_OFFSET ),
getreg32(base + EFM32_TIMER_TOPB_OFFSET ), getreg32(base + EFM32_TIMER_CNT_OFFSET ),
getreg32(base + EFM32_TIMER_CNT_OFFSET ), getreg32(base + EFM32_TIMER_ROUTE_OFFSET ));
getreg32(base + EFM32_TIMER_ROUTE_OFFSET )
);
for (i = 0; i < EFM32_TIMER_NCC; i++) for (i = 0; i < EFM32_TIMER_NCC; i++)
{ {
#if defined(CONFIG_DEBUG_TIMER) && defined(CONFIG_DEBUG_INFO)
uintptr_t base_cc = base + EFM32_TIMER_CC_OFFSET(i); uintptr_t base_cc = base + EFM32_TIMER_CC_OFFSET(i);
#endif
efm32_timerinfo("CC%d => CTRL: %04x CCV: %04x CCVP: %04x CCVB: %04x\n", tmrinfo("CC%d => CTRL: %04x CCV: %04x CCVP: %04x CCVB: %04x\n",
i i
getreg32(base_cc + EFM32_TIMER_CC_CTRL_OFFSET ), getreg32(base_cc + EFM32_TIMER_CC_CTRL_OFFSET ),
getreg32(base_cc + EFM32_TIMER_CC_CCV_OFFSET ), getreg32(base_cc + EFM32_TIMER_CC_CCV_OFFSET ),
getreg32(base_cc + EFM32_TIMER_CC_CCVP_OFFSET ), getreg32(base_cc + EFM32_TIMER_CC_CCVP_OFFSET ),
getreg32(base_cc + EFM32_TIMER_CC_CCVB_OFFSET ) getreg32(base_cc + EFM32_TIMER_CC_CCVB_OFFSET ));
);
} }
efm32_timerinfo("DTCTRL: %04x DTTIME: %04x DTFC: %04x DTOGEN: %04x\n", tmrinfo("DTCTRL: %04x DTTIME: %04x DTFC: %04x DTOGEN: %04x\n",
getreg32(base + EFM32_TIMER_CTRL_OFFSET ), getreg32(base + EFM32_TIMER_CTRL_OFFSET ),
getreg32(base + EFM32_TIMER_STATUS_OFFSET ), getreg32(base + EFM32_TIMER_STATUS_OFFSET ),
getreg32(base + EFM32_TIMER_IEN_OFFSET ), getreg32(base + EFM32_TIMER_IEN_OFFSET ),
getreg32(base + EFM32_TIMER_IF_OFFSET ) getreg32(base + EFM32_TIMER_IF_OFFSET ));
); tmrinfo("DTFAULT: %04x DTFAULTC: %04x DTLOCK: %04x \n",
efm32_timerinfo("DTFAULT: %04x DTFAULTC: %04x DTLOCK: %04x \n", getreg32(base + EFM32_TIMER_CTRL_OFFSET ),
getreg32(base + EFM32_TIMER_CTRL_OFFSET ), getreg32(base + EFM32_TIMER_STATUS_OFFSET ),
getreg32(base + EFM32_TIMER_STATUS_OFFSET ), getreg32(base + EFM32_TIMER_IEN_OFFSET ),
getreg32(base + EFM32_TIMER_IEN_OFFSET ), #endif
getreg32(base + EFM32_TIMER_IF_OFFSET )
);
} }
/**************************************************************************** /****************************************************************************
@ -238,6 +201,7 @@ void efm32_timer_reset(uintptr_t base)
* prescaler setted, -1 in case of error. * prescaler setted, -1 in case of error.
* *
****************************************************************************/ ****************************************************************************/
int efm32_timer_set_freq(uintptr_t base, uint32_t clk_freq, uint32_t freq) int efm32_timer_set_freq(uintptr_t base, uint32_t clk_freq, uint32_t freq)
{ {
int prescaler = 0; int prescaler = 0;
@ -262,8 +226,7 @@ int efm32_timer_set_freq(uintptr_t base, uint32_t clk_freq, uint32_t freq)
reload = (clk_freq / prescaler / freq); reload = (clk_freq / prescaler / freq);
efm32_timererr("Source: %4xHz Div: %4x Reload: %4x \n", tmrinfo("Source: %4xHz Div: %4x Reload: %4x \n", clk_freq, prescaler, reload);
clk_freq, prescaler, reload);
putreg32(reload, base + EFM32_TIMER_TOP_OFFSET); putreg32(reload, base + EFM32_TIMER_TOP_OFFSET);

View File

@ -449,7 +449,7 @@ static int timer_shutdown(FAR struct pwm_lowerhalf_s *dev)
FAR struct lpc11_timer_s *priv = (FAR struct lpc11_timer_s *)dev; FAR struct lpc11_timer_s *priv = (FAR struct lpc11_timer_s *)dev;
uint32_t pincfg; uint32_t pincfg;
pwmerr("TIM%d pincfg: %08x\n", priv->timid, priv->pincfg); pwminfo("TIM%d pincfg: %08x\n", priv->timid, priv->pincfg);
/* Make sure that the output has been stopped */ /* Make sure that the output has been stopped */
@ -505,7 +505,7 @@ static int timer_stop(FAR struct pwm_lowerhalf_s *dev)
uint32_t regval; uint32_t regval;
irqstate_t flags; irqstate_t flags;
pwmerr("TIM%d\n", priv->timid); pwminfo("TIM%d\n", priv->timid);
/* Disable interrupts momentary to stop any ongoing timer processing and /* Disable interrupts momentary to stop any ongoing timer processing and
* to prevent any concurrent access to the reset register. * to prevent any concurrent access to the reset register.
@ -531,7 +531,7 @@ static int timer_stop(FAR struct pwm_lowerhalf_s *dev)
leave_critical_section(flags); leave_critical_section(flags);
pwmerr("regaddr: %08x resetbit: %08x\n", regaddr, resetbit); pwminfo("regaddr: %08x resetbit: %08x\n", regaddr, resetbit);
timer_dumpregs(priv, "After stop"); timer_dumpregs(priv, "After stop");
return OK; return OK;
} }
@ -555,12 +555,12 @@ static int timer_stop(FAR struct pwm_lowerhalf_s *dev)
static int timer_ioctl(FAR struct pwm_lowerhalf_s *dev, int cmd, static int timer_ioctl(FAR struct pwm_lowerhalf_s *dev, int cmd,
unsigned long arg) unsigned long arg)
{ {
#ifdef CONFIG_DEBUG_TIMER #ifdef CONFIG_DEBUG_PWM_INFO
FAR struct lpc11_timer_s *priv = (FAR struct lpc11_timer_s *)dev; FAR struct lpc11_timer_s *priv = (FAR struct lpc11_timer_s *)dev;
/* There are no platform-specific ioctl commands */ /* There are no platform-specific ioctl commands */
pwmerr("TIM%d\n", priv->timid); pwminfo("TIM%d\n", priv->timid);
#endif #endif
return -ENOTTY; return -ENOTTY;
} }
@ -590,7 +590,7 @@ FAR struct pwm_lowerhalf_s *lpc11_timerinitialize(int timer)
{ {
FAR struct lpc11_timer_s *lower; FAR struct lpc11_timer_s *lower;
pwmerr("TIM%d\n", timer); pwminfo("TIM%d\n", timer);
switch (timer) switch (timer)
{ {
@ -604,7 +604,7 @@ FAR struct pwm_lowerhalf_s *lpc11_timerinitialize(int timer)
#endif #endif
default: default:
pwmerr("No such timer configured\n"); pwmerr("ERROR: No such timer configured\n");
return NULL; return NULL;
} }

View File

@ -450,7 +450,7 @@ static int timer_shutdown(FAR struct pwm_lowerhalf_s *dev)
FAR struct lpc17_timer_s *priv = (FAR struct lpc17_timer_s *)dev; FAR struct lpc17_timer_s *priv = (FAR struct lpc17_timer_s *)dev;
uint32_t pincfg; uint32_t pincfg;
pwmerr("TIM%d pincfg: %08x\n", priv->timid, priv->pincfg); pwminfo("TIM%d pincfg: %08x\n", priv->timid, priv->pincfg);
/* Make sure that the output has been stopped */ /* Make sure that the output has been stopped */
@ -506,7 +506,7 @@ static int timer_stop(FAR struct pwm_lowerhalf_s *dev)
uint32_t regval; uint32_t regval;
irqstate_t flags; irqstate_t flags;
pwmerr("TIM%d\n", priv->timid); pwminfo("TIM%d\n", priv->timid);
/* Disable interrupts momentary to stop any ongoing timer processing and /* Disable interrupts momentary to stop any ongoing timer processing and
* to prevent any concurrent access to the reset register. * to prevent any concurrent access to the reset register.
@ -532,7 +532,7 @@ static int timer_stop(FAR struct pwm_lowerhalf_s *dev)
leave_critical_section(flags); leave_critical_section(flags);
pwmerr("regaddr: %08x resetbit: %08x\n", regaddr, resetbit); pwminfo("regaddr: %08x resetbit: %08x\n", regaddr, resetbit);
timer_dumpregs(priv, "After stop"); timer_dumpregs(priv, "After stop");
return OK; return OK;
} }
@ -555,12 +555,12 @@ static int timer_stop(FAR struct pwm_lowerhalf_s *dev)
static int timer_ioctl(FAR struct pwm_lowerhalf_s *dev, int cmd, unsigned long arg) static int timer_ioctl(FAR struct pwm_lowerhalf_s *dev, int cmd, unsigned long arg)
{ {
#ifdef CONFIG_DEBUG_TIMER #ifdef CONFIG_DEBUG_PWM_INFO
FAR struct lpc17_timer_s *priv = (FAR struct lpc17_timer_s *)dev; FAR struct lpc17_timer_s *priv = (FAR struct lpc17_timer_s *)dev;
/* There are no platform-specific ioctl commands */ /* There are no platform-specific ioctl commands */
pwmerr("TIM%d\n", priv->timid); pwminfo("TIM%d\n", priv->timid);
#endif #endif
return -ENOTTY; return -ENOTTY;
} }
@ -590,7 +590,7 @@ FAR struct pwm_lowerhalf_s *lpc17_timerinitialize(int timer)
{ {
FAR struct lpc17_timer_s *lower; FAR struct lpc17_timer_s *lower;
pwmerr("TIM%d\n", timer); pwminfo("TIM%d\n", timer);
switch (timer) switch (timer)
{ {
@ -604,7 +604,7 @@ FAR struct pwm_lowerhalf_s *lpc17_timerinitialize(int timer)
#endif #endif
default: default:
pwmerr("No such timer configured\n"); pwmerr("ERROR: No such timer configured\n");
return NULL; return NULL;
} }

View File

@ -121,7 +121,7 @@ int sam_freerun_initialize(struct sam_freerun_s *freerun, int chan,
uint32_t cmr; uint32_t cmr;
int ret; int ret;
tcinfo("chan=%d resolution=%d usec\n", chan, resolution); tmrinfo("chan=%d resolution=%d usec\n", chan, resolution);
DEBUGASSERT(freerun && resolution > 0); DEBUGASSERT(freerun && resolution > 0);
/* Get the TC frequency the corresponds to the requested resolution */ /* Get the TC frequency the corresponds to the requested resolution */
@ -133,13 +133,13 @@ int sam_freerun_initialize(struct sam_freerun_s *freerun, int chan,
ret = sam_tc_divisor(frequency, &divisor, &cmr); ret = sam_tc_divisor(frequency, &divisor, &cmr);
if (ret < 0) if (ret < 0)
{ {
tcerr("ERROR: sam_tc_divisor failed: %d\n", ret); tmrerr("ERROR: sam_tc_divisor failed: %d\n", ret);
return ret; return ret;
} }
tcinfo("frequency=%lu, divisor=%u, cmr=%08lx\n", tmrinfo("frequency=%lu, divisor=%u, cmr=%08lx\n",
(unsigned long)frequency, (unsigned long)divisor, (unsigned long)frequency, (unsigned long)divisor,
(unsigned long)cmr); (unsigned long)cmr);
/* Allocate the timer/counter and select its mode of operation /* Allocate the timer/counter and select its mode of operation
* *
@ -172,7 +172,7 @@ int sam_freerun_initialize(struct sam_freerun_s *freerun, int chan,
freerun->tch = sam_tc_allocate(chan, cmr); freerun->tch = sam_tc_allocate(chan, cmr);
if (!freerun->tch) if (!freerun->tch)
{ {
tcerr("ERROR: Failed to allocate timer channel %d\n", chan); tmrerr("ERROR: Failed to allocate timer channel %d\n", chan);
return -EBUSY; return -EBUSY;
} }
@ -257,9 +257,9 @@ int sam_freerun_counter(struct sam_freerun_s *freerun, struct timespec *ts)
leave_critical_section(flags); leave_critical_section(flags);
tcinfo("counter=%lu (%lu) overflow=%lu, sr=%08lx\n", tmrinfo("counter=%lu (%lu) overflow=%lu, sr=%08lx\n",
(unsigned long)counter, (unsigned long)verify, (unsigned long)counter, (unsigned long)verify,
(unsigned long)overflow, (unsigned long)sr); (unsigned long)overflow, (unsigned long)sr);
/* Convert the whole thing to units of microseconds. /* Convert the whole thing to units of microseconds.
* *
@ -277,7 +277,7 @@ int sam_freerun_counter(struct sam_freerun_s *freerun, struct timespec *ts)
ts->tv_sec = sec; ts->tv_sec = sec;
ts->tv_nsec = (usec - (sec * USEC_PER_SEC)) * NSEC_PER_USEC; ts->tv_nsec = (usec - (sec * USEC_PER_SEC)) * NSEC_PER_USEC;
tcinfo("usec=%llu ts=(%lu, %lu)\n", tmrinfo("usec=%llu ts=(%lu, %lu)\n",
usec, (unsigned long)ts->tv_sec, (unsigned long)ts->tv_nsec); usec, (unsigned long)ts->tv_sec, (unsigned long)ts->tv_nsec);
return OK; return OK;

View File

@ -91,7 +91,7 @@ static void sam_oneshot_handler(TC_HANDLE tch, void *arg, uint32_t sr)
oneshot_handler_t oneshot_handler; oneshot_handler_t oneshot_handler;
void *oneshot_arg; void *oneshot_arg;
tcllinfo("Expired...\n"); tmrllinfo("Expired...\n");
DEBUGASSERT(oneshot && oneshot->handler); DEBUGASSERT(oneshot && oneshot->handler);
/* The clock was stopped, but not disabled when the RC match occurred. /* The clock was stopped, but not disabled when the RC match occurred.
@ -148,7 +148,7 @@ int sam_oneshot_initialize(struct sam_oneshot_s *oneshot, int chan,
uint32_t cmr; uint32_t cmr;
int ret; int ret;
tcinfo("chan=%d resolution=%d usec\n", chan, resolution); tmrinfo("chan=%d resolution=%d usec\n", chan, resolution);
DEBUGASSERT(oneshot && resolution > 0); DEBUGASSERT(oneshot && resolution > 0);
/* Get the TC frequency the corresponds to the requested resolution */ /* Get the TC frequency the corresponds to the requested resolution */
@ -160,13 +160,13 @@ int sam_oneshot_initialize(struct sam_oneshot_s *oneshot, int chan,
ret = sam_tc_divisor(frequency, &divisor, &cmr); ret = sam_tc_divisor(frequency, &divisor, &cmr);
if (ret < 0) if (ret < 0)
{ {
tcerr("ERROR: sam_tc_divisor failed: %d\n", ret); tmrerr("ERROR: sam_tc_divisor failed: %d\n", ret);
return ret; return ret;
} }
tcinfo("frequency=%lu, divisor=%lu, cmr=%08lx\n", tmrinfo("frequency=%lu, divisor=%lu, cmr=%08lx\n",
(unsigned long)frequency, (unsigned long)divisor, (unsigned long)frequency, (unsigned long)divisor,
(unsigned long)cmr); (unsigned long)cmr);
/* Allocate the timer/counter and select its mode of operation /* Allocate the timer/counter and select its mode of operation
* *
@ -200,7 +200,7 @@ int sam_oneshot_initialize(struct sam_oneshot_s *oneshot, int chan,
oneshot->tch = sam_tc_allocate(chan, cmr); oneshot->tch = sam_tc_allocate(chan, cmr);
if (!oneshot->tch) if (!oneshot->tch)
{ {
tcerr("ERROR: Failed to allocate timer channel %d\n", chan); tmrerr("ERROR: Failed to allocate timer channel %d\n", chan);
return -EBUSY; return -EBUSY;
} }
@ -258,8 +258,8 @@ int sam_oneshot_start(struct sam_oneshot_s *oneshot, struct sam_freerun_s *freer
uint64_t regval; uint64_t regval;
irqstate_t flags; irqstate_t flags;
tcinfo("handler=%p arg=%p, ts=(%lu, %lu)\n", tmrinfo("handler=%p arg=%p, ts=(%lu, %lu)\n",
handler, arg, (unsigned long)ts->tv_sec, (unsigned long)ts->tv_nsec); handler, arg, (unsigned long)ts->tv_sec, (unsigned long)ts->tv_nsec);
DEBUGASSERT(oneshot && handler && ts); DEBUGASSERT(oneshot && handler && ts);
/* Was the oneshot already running? */ /* Was the oneshot already running? */
@ -269,7 +269,7 @@ int sam_oneshot_start(struct sam_oneshot_s *oneshot, struct sam_freerun_s *freer
{ {
/* Yes.. then cancel it */ /* Yes.. then cancel it */
tcinfo("Already running... cancelling\n"); tmrinfo("Already running... cancelling\n");
(void)sam_oneshot_cancel(oneshot, freerun, NULL); (void)sam_oneshot_cancel(oneshot, freerun, NULL);
} }
@ -291,7 +291,7 @@ int sam_oneshot_start(struct sam_oneshot_s *oneshot, struct sam_freerun_s *freer
regval = (usec * (uint64_t)sam_tc_divfreq(oneshot->tch)) / USEC_PER_SEC; regval = (usec * (uint64_t)sam_tc_divfreq(oneshot->tch)) / USEC_PER_SEC;
tcinfo("usec=%llu regval=%08llx\n", usec, regval); tmrinfo("usec=%llu regval=%08llx\n", usec, regval);
DEBUGASSERT(regval <= UINT16_MAX); DEBUGASSERT(regval <= UINT16_MAX);
/* Set up to receive the callback when the interrupt occurs */ /* Set up to receive the callback when the interrupt occurs */
@ -400,7 +400,7 @@ int sam_oneshot_cancel(struct sam_oneshot_s *oneshot, struct sam_freerun_s *free
* REVISIT: This does not appear to be the case. * REVISIT: This does not appear to be the case.
*/ */
tcinfo("Cancelling...\n"); tmrinfo("Cancelling...\n");
count = sam_tc_getcounter(oneshot->tch); count = sam_tc_getcounter(oneshot->tch);
rc = sam_tc_getregister(oneshot->tch, TC_REGC); rc = sam_tc_getregister(oneshot->tch, TC_REGC);
@ -436,8 +436,8 @@ int sam_oneshot_cancel(struct sam_oneshot_s *oneshot, struct sam_freerun_s *free
* oneshot timer. * oneshot timer.
*/ */
tcinfo("rc=%lu count=%lu usec=%lu\n", tmrinfo("rc=%lu count=%lu usec=%lu\n",
(unsigned long)rc, (unsigned long)count, (unsigned long)usec); (unsigned long)rc, (unsigned long)count, (unsigned long)usec);
/* REVISIT: I am not certain why the timer counter value sometimes /* REVISIT: I am not certain why the timer counter value sometimes
* exceeds RC. Might be a bug, or perhaps the counter does not stop * exceeds RC. Might be a bug, or perhaps the counter does not stop
@ -481,8 +481,8 @@ int sam_oneshot_cancel(struct sam_oneshot_s *oneshot, struct sam_freerun_s *free
ts->tv_nsec = (unsigned long)nsec; ts->tv_nsec = (unsigned long)nsec;
} }
tcinfo("remaining (%lu, %lu)\n", tmrinfo("remaining (%lu, %lu)\n",
(unsigned long)ts->tv_sec, (unsigned long)ts->tv_nsec); (unsigned long)ts->tv_sec, (unsigned long)ts->tv_nsec);
} }
return OK; return OK;

View File

@ -757,7 +757,7 @@ static inline struct sam_chan_s *sam_tc_initialize(int channel)
{ {
/* Timer/counter is not invalid or not enabled */ /* Timer/counter is not invalid or not enabled */
tcerr("ERROR: Bad channel number: %d\n", channel); tmrerr("ERROR: Bad channel number: %d\n", channel);
return NULL; return NULL;
} }
@ -770,7 +770,7 @@ static inline struct sam_chan_s *sam_tc_initialize(int channel)
{ {
/* Initialize the channel. */ /* Initialize the channel. */
tcerr("Initializing TC%d\n", chconfig->chan); tmrerr("ERROR: Initializing TC%d\n", chconfig->chan);
memset(chan, 0, sizeof(struct sam_chan_s)); memset(chan, 0, sizeof(struct sam_chan_s));
sem_init(&chan->exclsem, 0, 1); sem_init(&chan->exclsem, 0, 1);
@ -831,7 +831,7 @@ static inline struct sam_chan_s *sam_tc_initialize(int channel)
{ {
/* No.. return a failure */ /* No.. return a failure */
tcerr("Channel %d is in-used\n", channel); tmrerr("ERROR: Channel %d is in-use\n", channel);
sam_givesem(chan); sam_givesem(chan);
return NULL; return NULL;
} }
@ -876,7 +876,7 @@ TC_HANDLE sam_tc_allocate(int channel, int mode)
* access to the requested channel. * access to the requested channel.
*/ */
tcinfo("channel=%d mode=%08x\n", channel, mode); tmrinfo("channel=%d mode=%08x\n", channel, mode);
chan = sam_tc_initialize(channel); chan = sam_tc_initialize(channel);
if (chan) if (chan)
@ -902,7 +902,7 @@ TC_HANDLE sam_tc_allocate(int channel, int mode)
/* Return an opaque reference to the channel */ /* Return an opaque reference to the channel */
tcinfo("Returning %p\n", chan); tmrinfo("Returning %p\n", chan);
return (TC_HANDLE)chan; return (TC_HANDLE)chan;
} }
@ -924,7 +924,7 @@ void sam_tc_free(TC_HANDLE handle)
{ {
struct sam_chan_s *chan = (struct sam_chan_s *)handle; struct sam_chan_s *chan = (struct sam_chan_s *)handle;
tcinfo("Freeing %p channel=%d inuse=%d\n", chan, chan->chan, chan->inuse); tmrinfo("Freeing %p channel=%d inuse=%d\n", chan, chan->chan, chan->inuse);
DEBUGASSERT(chan && chan->inuse); DEBUGASSERT(chan && chan->inuse);
/* Make sure that interrupts are detached and disabled and that the channel /* Make sure that interrupts are detached and disabled and that the channel
@ -957,7 +957,7 @@ void sam_tc_start(TC_HANDLE handle)
{ {
struct sam_chan_s *chan = (struct sam_chan_s *)handle; struct sam_chan_s *chan = (struct sam_chan_s *)handle;
tcinfo("Starting channel %d inuse=%d\n", chan->chan, chan->inuse); tmrinfo("Starting channel %d inuse=%d\n", chan->chan, chan->inuse);
DEBUGASSERT(chan && chan->inuse); DEBUGASSERT(chan && chan->inuse);
/* Read the SR to clear any pending interrupts on this channel */ /* Read the SR to clear any pending interrupts on this channel */
@ -989,7 +989,7 @@ void sam_tc_stop(TC_HANDLE handle)
{ {
struct sam_chan_s *chan = (struct sam_chan_s *)handle; struct sam_chan_s *chan = (struct sam_chan_s *)handle;
tcinfo("Stopping channel %d inuse=%d\n", chan->chan, chan->inuse); tmrinfo("Stopping channel %d inuse=%d\n", chan->chan, chan->inuse);
DEBUGASSERT(chan && chan->inuse); DEBUGASSERT(chan && chan->inuse);
sam_chan_putreg(chan, SAM_TC_CCR_OFFSET, TC_CCR_CLKDIS); sam_chan_putreg(chan, SAM_TC_CCR_OFFSET, TC_CCR_CLKDIS);
@ -1096,8 +1096,8 @@ void sam_tc_setregister(TC_HANDLE handle, int regid, uint32_t regval)
DEBUGASSERT(chan && regid < TC_NREGISTERS); DEBUGASSERT(chan && regid < TC_NREGISTERS);
tcinfo("Channel %d: Set register RC%d to %08lx\n", tmrinfo("Channel %d: Set register RC%d to %08lx\n",
chan->chan, regid, (unsigned long)regval); chan->chan, regid, (unsigned long)regval);
sam_chan_putreg(chan, g_regoffset[regid], regval); sam_chan_putreg(chan, g_regoffset[regid], regval);
sam_regdump(chan, "Set register"); sam_regdump(chan, "Set register");
@ -1233,7 +1233,7 @@ int sam_tc_divisor(uint32_t frequency, uint32_t *div, uint32_t *tcclks)
uint32_t ftcin = sam_tc_infreq(); uint32_t ftcin = sam_tc_infreq();
int ndx = 0; int ndx = 0;
tcinfo("frequency=%d\n", frequency); tmrinfo("frequency=%d\n", frequency);
/* Satisfy lower bound. That is, the value of the divider such that: /* Satisfy lower bound. That is, the value of the divider such that:
* *
@ -1246,7 +1246,7 @@ int sam_tc_divisor(uint32_t frequency, uint32_t *div, uint32_t *tcclks)
{ {
/* If no divisor can be found, return -ERANGE */ /* If no divisor can be found, return -ERANGE */
tcerr("Lower bound search failed\n"); tmrerr("ERROR: Lower bound search failed\n");
return -ERANGE; return -ERANGE;
} }
} }
@ -1270,7 +1270,7 @@ int sam_tc_divisor(uint32_t frequency, uint32_t *div, uint32_t *tcclks)
if (div) if (div)
{ {
uint32_t value = sam_tc_freqdiv_lookup(ftcin, ndx); uint32_t value = sam_tc_freqdiv_lookup(ftcin, ndx);
tcinfo("return div=%lu\n", (unsigned long)value); tmrinfo("return div=%lu\n", (unsigned long)value);
*div = value; *div = value;
} }
@ -1278,7 +1278,7 @@ int sam_tc_divisor(uint32_t frequency, uint32_t *div, uint32_t *tcclks)
if (tcclks) if (tcclks)
{ {
tcinfo("return tcclks=%08lx\n", (unsigned long)TC_CMR_TCCLKS(ndx)); tmrinfo("return tcclks=%08lx\n", (unsigned long)TC_CMR_TCCLKS(ndx));
*tcclks = TC_CMR_TCCLKS(ndx); *tcclks = TC_CMR_TCCLKS(ndx);
} }

View File

@ -71,8 +71,7 @@
/* Timer debug is enabled if any timer client is enabled */ /* Timer debug is enabled if any timer client is enabled */
#ifndef CONFIG_DEBUG_FEATURES #ifndef CONFIG_DEBUG_TIMER_INFO
# undef CONFIG_DEBUG_ANALOG
# undef CONFIG_SAMA5_TC_REGDEBUG # undef CONFIG_SAMA5_TC_REGDEBUG
#endif #endif
@ -80,20 +79,6 @@
# define CONFIG_SAM34_TC_DEBUG 1 # define CONFIG_SAM34_TC_DEBUG 1
#endif #endif
/* Timer/counter debug output */
#ifdef CONFIG_SAM34_TC_DEBUG
# define tcerr err
# define tcinfo info
# define tcllerr llerr
# define tcllinfo llinfo
#else
# define tcerr(x...)
# define tcinfo(x...)
# define tcllerr(x...)
# define tcllinfo(x...)
#endif
/**************************************************************************** /****************************************************************************
* Public Types * Public Types
****************************************************************************/ ****************************************************************************/

View File

@ -197,7 +197,7 @@ static struct sam_tickless_s g_tickless;
static void sam_oneshot_handler(void *arg) static void sam_oneshot_handler(void *arg)
{ {
tcllinfo("Expired...\n"); tmrllinfo("Expired...\n");
sched_timer_expiration(); sched_timer_expiration();
} }
@ -244,7 +244,7 @@ void up_timer_initialize(void)
CONFIG_USEC_PER_TICK); CONFIG_USEC_PER_TICK);
if (ret < 0) if (ret < 0)
{ {
tcllerr("ERROR: sam_oneshot_initialize failed\n"); tmrllerr("ERROR: sam_oneshot_initialize failed\n");
PANIC(); PANIC();
} }
@ -256,7 +256,7 @@ void up_timer_initialize(void)
ret = sam_oneshot_max_delay(&g_tickless.oneshot, &max_delay); ret = sam_oneshot_max_delay(&g_tickless.oneshot, &max_delay);
if (ret < 0) if (ret < 0)
{ {
tcllerr("ERROR: sam_oneshot_max_delay failed\n"); tmrllerr("ERROR: sam_oneshot_max_delay failed\n");
PANIC(); PANIC();
} }
@ -280,7 +280,7 @@ void up_timer_initialize(void)
CONFIG_USEC_PER_TICK); CONFIG_USEC_PER_TICK);
if (ret < 0) if (ret < 0)
{ {
tcllerr("ERROR: sam_freerun_initialize failed\n"); tmrllerr("ERROR: sam_freerun_initialize failed\n");
PANIC(); PANIC();
} }

View File

@ -70,22 +70,6 @@
#define TC_FCLK (BOARD_SCLK_FREQUENCY) #define TC_FCLK (BOARD_SCLK_FREQUENCY)
#define TC_MAXTIMEOUT ((1000000ULL * (1ULL + TC_RVALUE_MASK)) / TC_FCLK) #define TC_MAXTIMEOUT ((1000000ULL * (1ULL + TC_RVALUE_MASK)) / TC_FCLK)
/* Configuration ************************************************************/
/* Debug ********************************************************************/
/* Non-standard debug that may be enabled just for testing the timer
* driver. NOTE: that only llerr types are used so that the output is
* immediately available.
*/
#ifdef CONFIG_DEBUG_TIMER
# define tcerr llerr
# define tcinfo llinfo
#else
# define tcerr(x...)
# define tcinfo(x...)
#endif
/**************************************************************************** /****************************************************************************
* Private Types * Private Types
****************************************************************************/ ****************************************************************************/
@ -268,7 +252,7 @@ static int sam34_interrupt(int irq, FAR void *context)
{ {
FAR struct sam34_lowerhalf_s *priv = &g_tcdevs[irq-SAM_IRQ_TC0]; FAR struct sam34_lowerhalf_s *priv = &g_tcdevs[irq-SAM_IRQ_TC0];
tcinfo("Entry\n"); tmrinfo("Entry\n");
DEBUGASSERT((irq >= SAM_IRQ_TC0) && (irq <= SAM_IRQ_TC5)); DEBUGASSERT((irq >= SAM_IRQ_TC0) && (irq <= SAM_IRQ_TC5));
/* Check if the interrupt is really pending */ /* Check if the interrupt is really pending */
@ -299,7 +283,7 @@ static int sam34_interrupt(int irq, FAR void *context)
/* No handler or the handler returned false.. stop the timer */ /* No handler or the handler returned false.. stop the timer */
sam34_stop((FAR struct timer_lowerhalf_s *)priv); sam34_stop((FAR struct timer_lowerhalf_s *)priv);
tcinfo("Stopped\n"); tmrinfo("Stopped\n");
} }
/* TC_INT_CPCS is cleared by reading SAM_TCx_SR */ /* TC_INT_CPCS is cleared by reading SAM_TCx_SR */
@ -328,7 +312,7 @@ static int sam34_start(FAR struct timer_lowerhalf_s *lower)
FAR struct sam34_lowerhalf_s *priv = (FAR struct sam34_lowerhalf_s *)lower; FAR struct sam34_lowerhalf_s *priv = (FAR struct sam34_lowerhalf_s *)lower;
uint32_t mr_val; uint32_t mr_val;
tcinfo("Entry\n"); tmrinfo("Entry\n");
DEBUGASSERT(priv); DEBUGASSERT(priv);
if (priv->started) if (priv->started)
@ -382,7 +366,7 @@ static int sam34_start(FAR struct timer_lowerhalf_s *lower)
static int sam34_stop(FAR struct timer_lowerhalf_s *lower) static int sam34_stop(FAR struct timer_lowerhalf_s *lower)
{ {
FAR struct sam34_lowerhalf_s *priv = (FAR struct sam34_lowerhalf_s *)lower; FAR struct sam34_lowerhalf_s *priv = (FAR struct sam34_lowerhalf_s *)lower;
tcinfo("Entry\n"); tmrinfo("Entry\n");
DEBUGASSERT(priv); DEBUGASSERT(priv);
if (!priv->started) if (!priv->started)
@ -421,7 +405,7 @@ static int sam34_getstatus(FAR struct timer_lowerhalf_s *lower,
FAR struct sam34_lowerhalf_s *priv = (FAR struct sam34_lowerhalf_s *)lower; FAR struct sam34_lowerhalf_s *priv = (FAR struct sam34_lowerhalf_s *)lower;
uint32_t elapsed; uint32_t elapsed;
tcinfo("Entry\n"); tmrinfo("Entry\n");
DEBUGASSERT(priv); DEBUGASSERT(priv);
/* Return the status bit */ /* Return the status bit */
@ -446,9 +430,9 @@ static int sam34_getstatus(FAR struct timer_lowerhalf_s *lower,
elapsed = sam34_getreg(priv->base + SAM_TC_CV_OFFSET); elapsed = sam34_getreg(priv->base + SAM_TC_CV_OFFSET);
status->timeleft = ((uint64_t)priv->timeout * elapsed) / (priv->clkticks + 1); /* TODO - check on this +1 */ status->timeleft = ((uint64_t)priv->timeout * elapsed) / (priv->clkticks + 1); /* TODO - check on this +1 */
tcinfo(" flags : %08x\n", status->flags); tmrinfo(" flags : %08x\n", status->flags);
tcinfo(" timeout : %d\n", status->timeout); tmrinfo(" timeout : %d\n", status->timeout);
tcinfo(" timeleft : %d\n", status->timeleft); tmrinfo(" timeleft : %d\n", status->timeleft);
return OK; return OK;
} }
@ -480,14 +464,14 @@ static int sam34_settimeout(FAR struct timer_lowerhalf_s *lower,
return -EPERM; return -EPERM;
} }
tcinfo("Entry: timeout=%d\n", timeout); tmrinfo("Entry: timeout=%d\n", timeout);
/* Can this timeout be represented? */ /* Can this timeout be represented? */
if (timeout < 1 || timeout > TC_MAXTIMEOUT) if (timeout < 1 || timeout > TC_MAXTIMEOUT)
{ {
tcerr("Cannot represent timeout=%lu > %lu\n", tmrerr("ERROR: Cannot represent timeout=%lu > %lu\n",
timeout, TC_MAXTIMEOUT); timeout, TC_MAXTIMEOUT);
return -ERANGE; return -ERANGE;
} }
@ -496,8 +480,8 @@ static int sam34_settimeout(FAR struct timer_lowerhalf_s *lower,
timeout = (1000000ULL * priv->clkticks) / TC_FCLK; /* Truncated timeout */ timeout = (1000000ULL * priv->clkticks) / TC_FCLK; /* Truncated timeout */
priv->adjustment = priv->timeout - timeout; /* Truncated time to be added to next interval (dither) */ priv->adjustment = priv->timeout - timeout; /* Truncated time to be added to next interval (dither) */
tcinfo("fclk=%d clkticks=%d timout=%d, adjustment=%d\n", tmrinfo("fclk=%d clkticks=%d timout=%d, adjustment=%d\n",
TC_FCLK, priv->clkticks, priv->timeout, priv->adjustment); TC_FCLK, priv->clkticks, priv->timeout, priv->adjustment);
return OK; return OK;
} }
@ -531,7 +515,7 @@ static tccb_t sam34_sethandler(FAR struct timer_lowerhalf_s *lower,
flags = enter_critical_section(); flags = enter_critical_section();
DEBUGASSERT(priv); DEBUGASSERT(priv);
tcinfo("Entry: handler=%p\n", handler); tmrinfo("Entry: handler=%p\n", handler);
/* Get the old handler return value */ /* Get the old handler return value */
@ -572,7 +556,7 @@ static int sam34_ioctl(FAR struct timer_lowerhalf_s *lower, int cmd,
int ret = -ENOTTY; int ret = -ENOTTY;
DEBUGASSERT(priv); DEBUGASSERT(priv);
tcinfo("Entry: cmd=%d arg=%ld\n", cmd, arg); tmrinfo("Entry: cmd=%d arg=%ld\n", cmd, arg);
UNUSED(priv); UNUSED(priv);
return ret; return ret;
@ -602,7 +586,7 @@ void sam_tcinitialize(FAR const char *devpath, int irq)
{ {
FAR struct sam34_lowerhalf_s *priv = &g_tcdevs[irq-SAM_IRQ_TC0]; FAR struct sam34_lowerhalf_s *priv = &g_tcdevs[irq-SAM_IRQ_TC0];
tcinfo("Entry: devpath=%s\n", devpath); tmrinfo("Entry: devpath=%s\n", devpath);
DEBUGASSERT((irq >= SAM_IRQ_TC0) && (irq <= SAM_IRQ_TC5)); DEBUGASSERT((irq >= SAM_IRQ_TC0) && (irq <= SAM_IRQ_TC5));
/* Initialize the driver state structure. Here we assume: (1) the state /* Initialize the driver state structure. Here we assume: (1) the state

View File

@ -138,7 +138,7 @@ int sam_freerun_initialize(struct sam_freerun_s *freerun, int chan,
uint32_t cmr; uint32_t cmr;
int ret; int ret;
tcinfo("chan=%d resolution=%d usec\n", chan, resolution); tmrinfo("chan=%d resolution=%d usec\n", chan, resolution);
DEBUGASSERT(freerun && resolution > 0); DEBUGASSERT(freerun && resolution > 0);
/* Get the TC frequency the corresponds to the requested resolution */ /* Get the TC frequency the corresponds to the requested resolution */
@ -150,13 +150,13 @@ int sam_freerun_initialize(struct sam_freerun_s *freerun, int chan,
ret = sam_tc_divisor(frequency, &divisor, &cmr); ret = sam_tc_divisor(frequency, &divisor, &cmr);
if (ret < 0) if (ret < 0)
{ {
tcerr("ERROR: sam_tc_divisor failed: %d\n", ret); tmrerr("ERROR: sam_tc_divisor failed: %d\n", ret);
return ret; return ret;
} }
tcinfo("frequency=%lu, divisor=%u, cmr=%08lx\n", tmrinfo("frequency=%lu, divisor=%u, cmr=%08lx\n",
(unsigned long)frequency, (unsigned long)divisor, (unsigned long)frequency, (unsigned long)divisor,
(unsigned long)cmr); (unsigned long)cmr);
/* Allocate the timer/counter and select its mode of operation /* Allocate the timer/counter and select its mode of operation
* *
@ -189,7 +189,7 @@ int sam_freerun_initialize(struct sam_freerun_s *freerun, int chan,
freerun->tch = sam_tc_allocate(chan, cmr); freerun->tch = sam_tc_allocate(chan, cmr);
if (!freerun->tch) if (!freerun->tch)
{ {
tcerr("ERROR: Failed to allocate timer channel %d\n", chan); tmrerr("ERROR: Failed to allocate timer channel %d\n", chan);
return -EBUSY; return -EBUSY;
} }
@ -274,9 +274,9 @@ int sam_freerun_counter(struct sam_freerun_s *freerun, struct timespec *ts)
leave_critical_section(flags); leave_critical_section(flags);
tcinfo("counter=%lu (%lu) overflow=%lu, sr=%08lx\n", tmrinfo("counter=%lu (%lu) overflow=%lu, sr=%08lx\n",
(unsigned long)counter, (unsigned long)verify, (unsigned long)counter, (unsigned long)verify,
(unsigned long)overflow, (unsigned long)sr); (unsigned long)overflow, (unsigned long)sr);
/* Convert the whole thing to units of microseconds. /* Convert the whole thing to units of microseconds.
* *
@ -294,7 +294,7 @@ int sam_freerun_counter(struct sam_freerun_s *freerun, struct timespec *ts)
ts->tv_sec = sec; ts->tv_sec = sec;
ts->tv_nsec = (usec - (sec * USEC_PER_SEC)) * NSEC_PER_USEC; ts->tv_nsec = (usec - (sec * USEC_PER_SEC)) * NSEC_PER_USEC;
tcinfo("usec=%llu ts=(%lu, %lu)\n", tmrinfo("usec=%llu ts=(%lu, %lu)\n",
usec, (unsigned long)ts->tv_sec, (unsigned long)ts->tv_nsec); usec, (unsigned long)ts->tv_sec, (unsigned long)ts->tv_nsec);
return OK; return OK;

View File

@ -108,7 +108,7 @@ static void sam_oneshot_handler(TC_HANDLE tch, void *arg, uint32_t sr)
oneshot_handler_t oneshot_handler; oneshot_handler_t oneshot_handler;
void *oneshot_arg; void *oneshot_arg;
tcllinfo("Expired...\n"); tmrllinfo("Expired...\n");
DEBUGASSERT(oneshot && oneshot->handler); DEBUGASSERT(oneshot && oneshot->handler);
/* The clock was stopped, but not disabled when the RC match occurred. /* The clock was stopped, but not disabled when the RC match occurred.
@ -165,7 +165,7 @@ int sam_oneshot_initialize(struct sam_oneshot_s *oneshot, int chan,
uint32_t cmr; uint32_t cmr;
int ret; int ret;
tcinfo("chan=%d resolution=%d usec\n", chan, resolution); tmrinfo("chan=%d resolution=%d usec\n", chan, resolution);
DEBUGASSERT(oneshot && resolution > 0); DEBUGASSERT(oneshot && resolution > 0);
/* Get the TC frequency the corresponds to the requested resolution */ /* Get the TC frequency the corresponds to the requested resolution */
@ -177,13 +177,13 @@ int sam_oneshot_initialize(struct sam_oneshot_s *oneshot, int chan,
ret = sam_tc_divisor(frequency, &divisor, &cmr); ret = sam_tc_divisor(frequency, &divisor, &cmr);
if (ret < 0) if (ret < 0)
{ {
tcerr("ERROR: sam_tc_divisor failed: %d\n", ret); tmrerr("ERROR: sam_tc_divisor failed: %d\n", ret);
return ret; return ret;
} }
tcinfo("frequency=%lu, divisor=%lu, cmr=%08lx\n", tmrinfo("frequency=%lu, divisor=%lu, cmr=%08lx\n",
(unsigned long)frequency, (unsigned long)divisor, (unsigned long)frequency, (unsigned long)divisor,
(unsigned long)cmr); (unsigned long)cmr);
/* Allocate the timer/counter and select its mode of operation /* Allocate the timer/counter and select its mode of operation
* *
@ -217,7 +217,7 @@ int sam_oneshot_initialize(struct sam_oneshot_s *oneshot, int chan,
oneshot->tch = sam_tc_allocate(chan, cmr); oneshot->tch = sam_tc_allocate(chan, cmr);
if (!oneshot->tch) if (!oneshot->tch)
{ {
tcerr("ERROR: Failed to allocate timer channel %d\n", chan); tmrerr("ERROR: Failed to allocate timer channel %d\n", chan);
return -EBUSY; return -EBUSY;
} }
@ -260,8 +260,8 @@ int sam_oneshot_start(struct sam_oneshot_s *oneshot, struct sam_freerun_s *freer
uint64_t regval; uint64_t regval;
irqstate_t flags; irqstate_t flags;
tcinfo("handler=%p arg=%p, ts=(%lu, %lu)\n", tmrinfo("handler=%p arg=%p, ts=(%lu, %lu)\n",
handler, arg, (unsigned long)ts->tv_sec, (unsigned long)ts->tv_nsec); handler, arg, (unsigned long)ts->tv_sec, (unsigned long)ts->tv_nsec);
DEBUGASSERT(oneshot && handler && ts); DEBUGASSERT(oneshot && handler && ts);
/* Was the oneshot already running? */ /* Was the oneshot already running? */
@ -271,7 +271,7 @@ int sam_oneshot_start(struct sam_oneshot_s *oneshot, struct sam_freerun_s *freer
{ {
/* Yes.. then cancel it */ /* Yes.. then cancel it */
tcinfo("Already running... cancelling\n"); tmrinfo("Already running... cancelling\n");
(void)sam_oneshot_cancel(oneshot, freerun, NULL); (void)sam_oneshot_cancel(oneshot, freerun, NULL);
} }
@ -293,7 +293,7 @@ int sam_oneshot_start(struct sam_oneshot_s *oneshot, struct sam_freerun_s *freer
regval = (usec * (uint64_t)sam_tc_divfreq(oneshot->tch)) / USEC_PER_SEC; regval = (usec * (uint64_t)sam_tc_divfreq(oneshot->tch)) / USEC_PER_SEC;
tcinfo("usec=%llu regval=%08llx\n", usec, regval); tmrinfo("usec=%llu regval=%08llx\n", usec, regval);
DEBUGASSERT(regval <= UINT32_MAX); DEBUGASSERT(regval <= UINT32_MAX);
/* Set up to receive the callback when the interrupt occurs */ /* Set up to receive the callback when the interrupt occurs */
@ -402,7 +402,7 @@ int sam_oneshot_cancel(struct sam_oneshot_s *oneshot, struct sam_freerun_s *free
* REVISIT: This does not appear to be the case. * REVISIT: This does not appear to be the case.
*/ */
tcinfo("Cancelling...\n"); tmrinfo("Cancelling...\n");
count = sam_tc_getcounter(oneshot->tch); count = sam_tc_getcounter(oneshot->tch);
rc = sam_tc_getregister(oneshot->tch, TC_REGC); rc = sam_tc_getregister(oneshot->tch, TC_REGC);
@ -438,8 +438,8 @@ int sam_oneshot_cancel(struct sam_oneshot_s *oneshot, struct sam_freerun_s *free
* oneshot timer. * oneshot timer.
*/ */
tcinfo("rc=%lu count=%lu usec=%lu\n", tmrinfo("rc=%lu count=%lu usec=%lu\n",
(unsigned long)rc, (unsigned long)count, (unsigned long)usec); (unsigned long)rc, (unsigned long)count, (unsigned long)usec);
/* REVISIT: I am not certain why the timer counter value sometimes /* REVISIT: I am not certain why the timer counter value sometimes
* exceeds RC. Might be a bug, or perhaps the counter does not stop * exceeds RC. Might be a bug, or perhaps the counter does not stop
@ -483,8 +483,8 @@ int sam_oneshot_cancel(struct sam_oneshot_s *oneshot, struct sam_freerun_s *free
ts->tv_nsec = (unsigned long)nsec; ts->tv_nsec = (unsigned long)nsec;
} }
tcinfo("remaining (%lu, %lu)\n", tmrinfo("remaining (%lu, %lu)\n",
(unsigned long)ts->tv_sec, (unsigned long)ts->tv_nsec); (unsigned long)ts->tv_sec, (unsigned long)ts->tv_nsec);
} }
return OK; return OK;

View File

@ -953,7 +953,7 @@ static inline struct sam_chan_s *sam_tc_initialize(int channel)
{ {
/* Timer/counter is not invalid or not enabled */ /* Timer/counter is not invalid or not enabled */
tcerr("ERROR: Bad channel number: %d\n", channel); tmrerr("ERROR: Bad channel number: %d\n", channel);
return NULL; return NULL;
} }
@ -976,7 +976,7 @@ static inline struct sam_chan_s *sam_tc_initialize(int channel)
for (i = 0, ch = tcconfig->chfirst; i < SAM_TC_NCHANNELS; i++) for (i = 0, ch = tcconfig->chfirst; i < SAM_TC_NCHANNELS; i++)
{ {
tcerr("Initializing TC%d channel %d\n", tcconfig->tc, ch); tmrerr("ERROR: Initializing TC%d channel %d\n", tcconfig->tc, ch);
/* Initialize the channel data structure */ /* Initialize the channel data structure */
@ -1057,7 +1057,7 @@ static inline struct sam_chan_s *sam_tc_initialize(int channel)
{ {
/* No.. return a failure */ /* No.. return a failure */
tcerr("Channel %d is in-used\n", channel); tmrerr("ERROR: Channel %d is in-use\n", channel);
sam_givesem(tc); sam_givesem(tc);
return NULL; return NULL;
} }
@ -1102,7 +1102,7 @@ TC_HANDLE sam_tc_allocate(int channel, int mode)
* access to the requested channel. * access to the requested channel.
*/ */
tcinfo("channel=%d mode=%08x\n", channel, mode); tmrinfo("channel=%d mode=%08x\n", channel, mode);
chan = sam_tc_initialize(channel); chan = sam_tc_initialize(channel);
if (chan) if (chan)
@ -1128,7 +1128,7 @@ TC_HANDLE sam_tc_allocate(int channel, int mode)
/* Return an opaque reference to the channel */ /* Return an opaque reference to the channel */
tcinfo("Returning %p\n", chan); tmrinfo("Returning %p\n", chan);
return (TC_HANDLE)chan; return (TC_HANDLE)chan;
} }
@ -1150,7 +1150,7 @@ void sam_tc_free(TC_HANDLE handle)
{ {
struct sam_chan_s *chan = (struct sam_chan_s *)handle; struct sam_chan_s *chan = (struct sam_chan_s *)handle;
tcinfo("Freeing %p channel=%d inuse=%d\n", chan, chan->chan, chan->inuse); tmrinfo("Freeing %p channel=%d inuse=%d\n", chan, chan->chan, chan->inuse);
DEBUGASSERT(chan && chan->inuse); DEBUGASSERT(chan && chan->inuse);
/* Make sure that interrupts are detached and disabled and that the channel /* Make sure that interrupts are detached and disabled and that the channel
@ -1183,7 +1183,7 @@ void sam_tc_start(TC_HANDLE handle)
{ {
struct sam_chan_s *chan = (struct sam_chan_s *)handle; struct sam_chan_s *chan = (struct sam_chan_s *)handle;
tcinfo("Starting channel %d inuse=%d\n", chan->chan, chan->inuse); tmrinfo("Starting channel %d inuse=%d\n", chan->chan, chan->inuse);
DEBUGASSERT(chan && chan->inuse); DEBUGASSERT(chan && chan->inuse);
/* Read the SR to clear any pending interrupts on this channel */ /* Read the SR to clear any pending interrupts on this channel */
@ -1215,7 +1215,7 @@ void sam_tc_stop(TC_HANDLE handle)
{ {
struct sam_chan_s *chan = (struct sam_chan_s *)handle; struct sam_chan_s *chan = (struct sam_chan_s *)handle;
tcinfo("Stopping channel %d inuse=%d\n", chan->chan, chan->inuse); tmrinfo("Stopping channel %d inuse=%d\n", chan->chan, chan->inuse);
DEBUGASSERT(chan && chan->inuse); DEBUGASSERT(chan && chan->inuse);
sam_chan_putreg(chan, SAM_TC_CCR_OFFSET, TC_CCR_CLKDIS); sam_chan_putreg(chan, SAM_TC_CCR_OFFSET, TC_CCR_CLKDIS);
@ -1322,8 +1322,8 @@ void sam_tc_setregister(TC_HANDLE handle, int regid, uint32_t regval)
DEBUGASSERT(chan && regid < TC_NREGISTERS); DEBUGASSERT(chan && regid < TC_NREGISTERS);
tcinfo("Channel %d: Set register RC%d to %08lx\n", tmrinfo("Channel %d: Set register RC%d to %08lx\n",
chan->chan, regid, (unsigned long)regval); chan->chan, regid, (unsigned long)regval);
sam_chan_putreg(chan, g_regoffset[regid], regval); sam_chan_putreg(chan, g_regoffset[regid], regval);
sam_regdump(chan, "Set register"); sam_regdump(chan, "Set register");
@ -1465,7 +1465,7 @@ int sam_tc_divisor(uint32_t frequency, uint32_t *div, uint32_t *tcclks)
uint32_t ftcin = sam_tc_infreq(); uint32_t ftcin = sam_tc_infreq();
int ndx = 0; int ndx = 0;
tcinfo("frequency=%d\n", frequency); tmrinfo("frequency=%d\n", frequency);
/* Satisfy lower bound. That is, the value of the divider such that: /* Satisfy lower bound. That is, the value of the divider such that:
* *
@ -1478,7 +1478,7 @@ int sam_tc_divisor(uint32_t frequency, uint32_t *div, uint32_t *tcclks)
{ {
/* If no divisor can be found, return -ERANGE */ /* If no divisor can be found, return -ERANGE */
tcerr("Lower bound search failed\n"); tmrerr("ERROR: Lower bound search failed\n");
return -ERANGE; return -ERANGE;
} }
} }
@ -1502,7 +1502,7 @@ int sam_tc_divisor(uint32_t frequency, uint32_t *div, uint32_t *tcclks)
if (div) if (div)
{ {
uint32_t value = sam_tc_freqdiv_lookup(ftcin, ndx); uint32_t value = sam_tc_freqdiv_lookup(ftcin, ndx);
tcinfo("return div=%lu\n", (unsigned long)value); tmrinfo("return div=%lu\n", (unsigned long)value);
*div = value; *div = value;
} }
@ -1510,7 +1510,7 @@ int sam_tc_divisor(uint32_t frequency, uint32_t *div, uint32_t *tcclks)
if (tcclks) if (tcclks)
{ {
tcinfo("return tcclks=%08lx\n", (unsigned long)TC_CMR_TCCLKS(ndx)); tmrinfo("return tcclks=%08lx\n", (unsigned long)TC_CMR_TCCLKS(ndx));
*tcclks = TC_CMR_TCCLKS(ndx); *tcclks = TC_CMR_TCCLKS(ndx);
} }

View File

@ -74,8 +74,7 @@
/* Timer debug is enabled if any timer client is enabled */ /* Timer debug is enabled if any timer client is enabled */
#ifndef CONFIG_DEBUG_FEATURES #ifndef CONFIG_DEBUG_TIMER_INFO
# undef CONFIG_DEBUG_ANALOG
# undef CONFIG_SAMA5_TC_REGDEBUG # undef CONFIG_SAMA5_TC_REGDEBUG
#endif #endif
@ -83,20 +82,6 @@
# define CONFIG_SAMA5_TC_DEBUG 1 # define CONFIG_SAMA5_TC_DEBUG 1
#endif #endif
/* Timer/counter debug output */
#ifdef CONFIG_SAMA5_TC_DEBUG
# define tcerr err
# define tcinfo info
# define tcllerr llerr
# define tcllinfo llinfo
#else
# define tcerr(x...)
# define tcinfo(x...)
# define tcllerr(x...)
# define tcllinfo(x...)
#endif
/**************************************************************************** /****************************************************************************
* Public Types * Public Types
****************************************************************************/ ****************************************************************************/

View File

@ -209,7 +209,7 @@ static struct sam_tickless_s g_tickless;
static void sam_oneshot_handler(void *arg) static void sam_oneshot_handler(void *arg)
{ {
tcllinfo("Expired...\n"); tmrllinfo("Expired...\n");
sched_timer_expiration(); sched_timer_expiration();
} }
@ -256,7 +256,7 @@ void up_timer_initialize(void)
CONFIG_USEC_PER_TICK); CONFIG_USEC_PER_TICK);
if (ret < 0) if (ret < 0)
{ {
tcllerr("ERROR: sam_oneshot_initialize failed\n"); tmrllerr("ERROR: sam_oneshot_initialize failed\n");
PANIC(); PANIC();
} }
@ -268,7 +268,7 @@ void up_timer_initialize(void)
ret = sam_oneshot_max_delay(&g_tickless.oneshot, &max_delay); ret = sam_oneshot_max_delay(&g_tickless.oneshot, &max_delay);
if (ret < 0) if (ret < 0)
{ {
tcllerr("ERROR: sam_oneshot_max_delay failed\n"); tmrllerr("ERROR: sam_oneshot_max_delay failed\n");
PANIC(); PANIC();
} }
@ -292,7 +292,7 @@ void up_timer_initialize(void)
CONFIG_USEC_PER_TICK); CONFIG_USEC_PER_TICK);
if (ret < 0) if (ret < 0)
{ {
tcllerr("ERROR: sam_freerun_initialize failed\n"); tmrllerr("ERROR: sam_freerun_initialize failed\n");
PANIC(); PANIC();
} }

View File

@ -124,7 +124,7 @@ int sam_freerun_initialize(struct sam_freerun_s *freerun, int chan,
uint32_t cmr; uint32_t cmr;
int ret; int ret;
tcinfo("chan=%d resolution=%d usec\n", chan, resolution); tmrinfo("chan=%d resolution=%d usec\n", chan, resolution);
DEBUGASSERT(freerun && resolution > 0); DEBUGASSERT(freerun && resolution > 0);
/* Get the TC frequency the corresponds to the requested resolution */ /* Get the TC frequency the corresponds to the requested resolution */
@ -136,13 +136,13 @@ int sam_freerun_initialize(struct sam_freerun_s *freerun, int chan,
ret = sam_tc_clockselect(frequency, &cmr, &actual); ret = sam_tc_clockselect(frequency, &cmr, &actual);
if (ret < 0) if (ret < 0)
{ {
tcerr("ERROR: sam_tc_clockselect failed: %d\n", ret); tmrerr("ERROR: sam_tc_clockselect failed: %d\n", ret);
return ret; return ret;
} }
tcinfo("frequency=%lu, actual=%lu, cmr=%08lx\n", tmrinfo("frequency=%lu, actual=%lu, cmr=%08lx\n",
(unsigned long)frequency, (unsigned long)actual, (unsigned long)frequency, (unsigned long)actual,
(unsigned long)cmr); (unsigned long)cmr);
/* Allocate the timer/counter and select its mode of operation /* Allocate the timer/counter and select its mode of operation
* *
@ -175,7 +175,7 @@ int sam_freerun_initialize(struct sam_freerun_s *freerun, int chan,
freerun->tch = sam_tc_allocate(chan, cmr); freerun->tch = sam_tc_allocate(chan, cmr);
if (!freerun->tch) if (!freerun->tch)
{ {
tcerr("ERROR: Failed to allocate timer channel %d\n", chan); tmrerr("ERROR: Failed to allocate timer channel %d\n", chan);
return -EBUSY; return -EBUSY;
} }
@ -260,9 +260,9 @@ int sam_freerun_counter(struct sam_freerun_s *freerun, struct timespec *ts)
leave_critical_section(flags); leave_critical_section(flags);
tcinfo("counter=%lu (%lu) overflow=%lu, sr=%08lx\n", tmrinfo("counter=%lu (%lu) overflow=%lu, sr=%08lx\n",
(unsigned long)counter, (unsigned long)verify, (unsigned long)counter, (unsigned long)verify,
(unsigned long)overflow, (unsigned long)sr); (unsigned long)overflow, (unsigned long)sr);
/* Convert the whole thing to units of microseconds. /* Convert the whole thing to units of microseconds.
* *
@ -280,7 +280,7 @@ int sam_freerun_counter(struct sam_freerun_s *freerun, struct timespec *ts)
ts->tv_sec = sec; ts->tv_sec = sec;
ts->tv_nsec = (usec - (sec * USEC_PER_SEC)) * NSEC_PER_USEC; ts->tv_nsec = (usec - (sec * USEC_PER_SEC)) * NSEC_PER_USEC;
tcinfo("usec=%llu ts=(%lu, %lu)\n", tmrinfo("usec=%llu ts=(%lu, %lu)\n",
usec, (unsigned long)ts->tv_sec, (unsigned long)ts->tv_nsec); usec, (unsigned long)ts->tv_sec, (unsigned long)ts->tv_nsec);
return OK; return OK;

View File

@ -109,7 +109,7 @@ static void sam_oneshot_handler(TC_HANDLE tch, void *arg, uint32_t sr)
oneshot_handler_t oneshot_handler; oneshot_handler_t oneshot_handler;
void *oneshot_arg; void *oneshot_arg;
tcllinfo("Expired...\n"); tmrllinfo("Expired...\n");
DEBUGASSERT(oneshot && oneshot->handler); DEBUGASSERT(oneshot && oneshot->handler);
/* The clock was stopped, but not disabled when the RC match occurred. /* The clock was stopped, but not disabled when the RC match occurred.
@ -166,7 +166,7 @@ int sam_oneshot_initialize(struct sam_oneshot_s *oneshot, int chan,
uint32_t cmr; uint32_t cmr;
int ret; int ret;
tcinfo("chan=%d resolution=%d usec\n", chan, resolution); tmrinfo("chan=%d resolution=%d usec\n", chan, resolution);
DEBUGASSERT(oneshot && resolution > 0); DEBUGASSERT(oneshot && resolution > 0);
/* Get the TC frequency the corresponds to the requested resolution */ /* Get the TC frequency the corresponds to the requested resolution */
@ -178,13 +178,13 @@ int sam_oneshot_initialize(struct sam_oneshot_s *oneshot, int chan,
ret = sam_tc_clockselect(frequency, &cmr, &actual); ret = sam_tc_clockselect(frequency, &cmr, &actual);
if (ret < 0) if (ret < 0)
{ {
tcerr("ERROR: sam_tc_clockselect failed: %d\n", ret); tmrerr("ERROR: sam_tc_clockselect failed: %d\n", ret);
return ret; return ret;
} }
tcinfo("frequency=%lu, actual=%lu, cmr=%08lx\n", tmrinfo("frequency=%lu, actual=%lu, cmr=%08lx\n",
(unsigned long)frequency, (unsigned long)actual, (unsigned long)frequency, (unsigned long)actual,
(unsigned long)cmr); (unsigned long)cmr);
/* Allocate the timer/counter and select its mode of operation /* Allocate the timer/counter and select its mode of operation
* *
@ -218,7 +218,7 @@ int sam_oneshot_initialize(struct sam_oneshot_s *oneshot, int chan,
oneshot->tch = sam_tc_allocate(chan, cmr); oneshot->tch = sam_tc_allocate(chan, cmr);
if (!oneshot->tch) if (!oneshot->tch)
{ {
tcerr("ERROR: Failed to allocate timer channel %d\n", chan); tmrerr("ERROR: Failed to allocate timer channel %d\n", chan);
return -EBUSY; return -EBUSY;
} }
@ -261,8 +261,8 @@ int sam_oneshot_start(struct sam_oneshot_s *oneshot, struct sam_freerun_s *freer
uint64_t regval; uint64_t regval;
irqstate_t flags; irqstate_t flags;
tcinfo("handler=%p arg=%p, ts=(%lu, %lu)\n", tmrinfo("handler=%p arg=%p, ts=(%lu, %lu)\n",
handler, arg, (unsigned long)ts->tv_sec, (unsigned long)ts->tv_nsec); handler, arg, (unsigned long)ts->tv_sec, (unsigned long)ts->tv_nsec);
DEBUGASSERT(oneshot && handler && ts); DEBUGASSERT(oneshot && handler && ts);
/* Was the oneshot already running? */ /* Was the oneshot already running? */
@ -272,7 +272,7 @@ int sam_oneshot_start(struct sam_oneshot_s *oneshot, struct sam_freerun_s *freer
{ {
/* Yes.. then cancel it */ /* Yes.. then cancel it */
tcinfo("Already running... cancelling\n"); tmrinfo("Already running... cancelling\n");
(void)sam_oneshot_cancel(oneshot, freerun, NULL); (void)sam_oneshot_cancel(oneshot, freerun, NULL);
} }
@ -294,7 +294,7 @@ int sam_oneshot_start(struct sam_oneshot_s *oneshot, struct sam_freerun_s *freer
regval = (usec * (uint64_t)sam_tc_divfreq(oneshot->tch)) / USEC_PER_SEC; regval = (usec * (uint64_t)sam_tc_divfreq(oneshot->tch)) / USEC_PER_SEC;
tcinfo("usec=%llu regval=%08llx\n", usec, regval); tmrinfo("usec=%llu regval=%08llx\n", usec, regval);
DEBUGASSERT(regval <= UINT16_MAX); DEBUGASSERT(regval <= UINT16_MAX);
/* Set up to receive the callback when the interrupt occurs */ /* Set up to receive the callback when the interrupt occurs */
@ -403,7 +403,7 @@ int sam_oneshot_cancel(struct sam_oneshot_s *oneshot, struct sam_freerun_s *free
* REVISIT: This does not appear to be the case. * REVISIT: This does not appear to be the case.
*/ */
tcinfo("Cancelling...\n"); tmrinfo("Cancelling...\n");
count = sam_tc_getcounter(oneshot->tch); count = sam_tc_getcounter(oneshot->tch);
rc = sam_tc_getregister(oneshot->tch, TC_REGC); rc = sam_tc_getregister(oneshot->tch, TC_REGC);
@ -439,8 +439,8 @@ int sam_oneshot_cancel(struct sam_oneshot_s *oneshot, struct sam_freerun_s *free
* oneshot timer. * oneshot timer.
*/ */
tcinfo("rc=%lu count=%lu usec=%lu\n", tmrinfo("rc=%lu count=%lu usec=%lu\n",
(unsigned long)rc, (unsigned long)count, (unsigned long)usec); (unsigned long)rc, (unsigned long)count, (unsigned long)usec);
/* REVISIT: I am not certain why the timer counter value sometimes /* REVISIT: I am not certain why the timer counter value sometimes
* exceeds RC. Might be a bug, or perhaps the counter does not stop * exceeds RC. Might be a bug, or perhaps the counter does not stop
@ -484,8 +484,8 @@ int sam_oneshot_cancel(struct sam_oneshot_s *oneshot, struct sam_freerun_s *free
ts->tv_nsec = (unsigned long)nsec; ts->tv_nsec = (unsigned long)nsec;
} }
tcinfo("remaining (%lu, %lu)\n", tmrinfo("remaining (%lu, %lu)\n",
(unsigned long)ts->tv_sec, (unsigned long)ts->tv_nsec); (unsigned long)ts->tv_sec, (unsigned long)ts->tv_nsec);
} }
return OK; return OK;

View File

@ -1046,7 +1046,7 @@ static int sam_tc_mcksrc(uint32_t frequency, uint32_t *tcclks,
uint32_t fnext; uint32_t fnext;
int ndx = 0; int ndx = 0;
tcinfo("frequency=%d\n", frequency); tmrinfo("frequency=%d\n", frequency);
/* Satisfy lower bound. That is, the value of the divider such that: /* Satisfy lower bound. That is, the value of the divider such that:
* *
@ -1066,7 +1066,7 @@ static int sam_tc_mcksrc(uint32_t frequency, uint32_t *tcclks,
{ {
/* If no divisor can be found, return -ERANGE */ /* If no divisor can be found, return -ERANGE */
tcerr("Lower bound search failed\n"); tmrerr("Lower bound search failed\n");
return -ERANGE; return -ERANGE;
} }
@ -1169,7 +1169,7 @@ static inline struct sam_chan_s *sam_tc_initialize(int channel)
{ {
/* Timer/counter is not invalid or not enabled */ /* Timer/counter is not invalid or not enabled */
tcerr("ERROR: Bad channel number: %d\n", channel); tmrerr("ERROR: Bad channel number: %d\n", channel);
return NULL; return NULL;
} }
@ -1225,7 +1225,7 @@ static inline struct sam_chan_s *sam_tc_initialize(int channel)
{ {
/* Yes.. return a failure */ /* Yes.. return a failure */
tcerr("Channel %d is in-use\n", channel); tmrerr("Channel %d is in-use\n", channel);
sam_givesem(tc); sam_givesem(tc);
return NULL; return NULL;
} }
@ -1318,7 +1318,7 @@ TC_HANDLE sam_tc_allocate(int channel, int mode)
* access to the requested channel. * access to the requested channel.
*/ */
tcinfo("channel=%d mode=%08x\n", channel, mode); tmrinfo("channel=%d mode=%08x\n", channel, mode);
chan = sam_tc_initialize(channel); chan = sam_tc_initialize(channel);
if (chan) if (chan)
@ -1344,7 +1344,7 @@ TC_HANDLE sam_tc_allocate(int channel, int mode)
/* Return an opaque reference to the channel */ /* Return an opaque reference to the channel */
tcinfo("Returning %p\n", chan); tmrinfo("Returning %p\n", chan);
return (TC_HANDLE)chan; return (TC_HANDLE)chan;
} }
@ -1366,7 +1366,7 @@ void sam_tc_free(TC_HANDLE handle)
{ {
struct sam_chan_s *chan = (struct sam_chan_s *)handle; struct sam_chan_s *chan = (struct sam_chan_s *)handle;
tcinfo("Freeing %p channel=%d inuse=%d\n", chan, chan->chan, chan->inuse); tmrinfo("Freeing %p channel=%d inuse=%d\n", chan, chan->chan, chan->inuse);
DEBUGASSERT(chan && chan->inuse); DEBUGASSERT(chan && chan->inuse);
/* Make sure that interrupts are detached and disabled and that the channel /* Make sure that interrupts are detached and disabled and that the channel
@ -1399,7 +1399,7 @@ void sam_tc_start(TC_HANDLE handle)
{ {
struct sam_chan_s *chan = (struct sam_chan_s *)handle; struct sam_chan_s *chan = (struct sam_chan_s *)handle;
tcinfo("Starting channel %d inuse=%d\n", chan->chan, chan->inuse); tmrinfo("Starting channel %d inuse=%d\n", chan->chan, chan->inuse);
DEBUGASSERT(chan && chan->inuse); DEBUGASSERT(chan && chan->inuse);
/* Read the SR to clear any pending interrupts on this channel */ /* Read the SR to clear any pending interrupts on this channel */
@ -1431,7 +1431,7 @@ void sam_tc_stop(TC_HANDLE handle)
{ {
struct sam_chan_s *chan = (struct sam_chan_s *)handle; struct sam_chan_s *chan = (struct sam_chan_s *)handle;
tcinfo("Stopping channel %d inuse=%d\n", chan->chan, chan->inuse); tmrinfo("Stopping channel %d inuse=%d\n", chan->chan, chan->inuse);
DEBUGASSERT(chan && chan->inuse); DEBUGASSERT(chan && chan->inuse);
sam_chan_putreg(chan, SAM_TC_CCR_OFFSET, TC_CCR_CLKDIS); sam_chan_putreg(chan, SAM_TC_CCR_OFFSET, TC_CCR_CLKDIS);
@ -1538,8 +1538,8 @@ void sam_tc_setregister(TC_HANDLE handle, int regid, uint32_t regval)
DEBUGASSERT(chan && regid < TC_NREGISTERS); DEBUGASSERT(chan && regid < TC_NREGISTERS);
tcinfo("Channel %d: Set register RC%d to %08lx\n", tmrinfo("Channel %d: Set register RC%d to %08lx\n",
chan->chan, regid, (unsigned long)regval); chan->chan, regid, (unsigned long)regval);
sam_chan_putreg(chan, g_regoffset[regid], regval); sam_chan_putreg(chan, g_regoffset[regid], regval);
sam_regdump(chan, "Set register"); sam_regdump(chan, "Set register");
@ -1717,7 +1717,7 @@ int sam_tc_clockselect(uint32_t frequency, uint32_t *tcclks,
if (actual) if (actual)
{ {
tcinfo("return actual=%lu\n", (unsigned long)fselect); tmrinfo("return actual=%lu\n", (unsigned long)fselect);
*actual = pck6_actual; *actual = pck6_actual;
} }
@ -1725,7 +1725,7 @@ int sam_tc_clockselect(uint32_t frequency, uint32_t *tcclks,
if (tcclks) if (tcclks)
{ {
tcinfo("return tcclks=%08lx\n", (unsigned long)TC_CMR_TCCLKS_PCK6); tmrinfo("return tcclks=%08lx\n", (unsigned long)TC_CMR_TCCLKS_PCK6);
*tcclks = TC_CMR_TCCLKS_PCK6; *tcclks = TC_CMR_TCCLKS_PCK6;
} }
@ -1739,7 +1739,7 @@ int sam_tc_clockselect(uint32_t frequency, uint32_t *tcclks,
if (actual) if (actual)
{ {
tcinfo("return actual=%lu\n", (unsigned long)mck_actual); tmrinfo("return actual=%lu\n", (unsigned long)mck_actual);
*actual = mck_actual; *actual = mck_actual;
} }
@ -1747,7 +1747,7 @@ int sam_tc_clockselect(uint32_t frequency, uint32_t *tcclks,
if (tcclks) if (tcclks)
{ {
tcinfo("return tcclks=%08lx\n", (unsigned long)mck_tcclks); tmrinfo("return tcclks=%08lx\n", (unsigned long)mck_tcclks);
*tcclks = mck_tcclks; *tcclks = mck_tcclks;
} }

View File

@ -75,8 +75,7 @@
/* Timer debug is enabled if any timer client is enabled */ /* Timer debug is enabled if any timer client is enabled */
#ifndef CONFIG_DEBUG_FEATURES #ifndef CONFIG_DEBUG_TIMER_INFO
# undef CONFIG_DEBUG_ANALOG
# undef CONFIG_SAMV7_TC_REGDEBUG # undef CONFIG_SAMV7_TC_REGDEBUG
#endif #endif
@ -84,20 +83,6 @@
# define CONFIG_SAMV7_TC_DEBUG 1 # define CONFIG_SAMV7_TC_DEBUG 1
#endif #endif
/* Timer/counter debug output */
#ifdef CONFIG_SAMV7_TC_DEBUG
# define tcerr err
# define tcinfo info
# define tcllerr llerr
# define tcllinfo llinfo
#else
# define tcerr(x...)
# define tcinfo(x...)
# define tcllerr(x...)
# define tcllinfo(x...)
#endif
/**************************************************************************** /****************************************************************************
* Public Types * Public Types
****************************************************************************/ ****************************************************************************/

View File

@ -221,7 +221,7 @@ static struct sam_tickless_s g_tickless;
static void sam_oneshot_handler(void *arg) static void sam_oneshot_handler(void *arg)
{ {
tcllinfo("Expired...\n"); tmrllinfo("Expired...\n");
sched_timer_expiration(); sched_timer_expiration();
} }
@ -265,7 +265,7 @@ void up_timer_initialize(void)
CONFIG_USEC_PER_TICK); CONFIG_USEC_PER_TICK);
if (ret < 0) if (ret < 0)
{ {
tcllerr("ERROR: sam_oneshot_initialize failed\n"); tmrllerr("ERROR: sam_oneshot_initialize failed\n");
PANIC(); PANIC();
} }
@ -278,7 +278,7 @@ void up_timer_initialize(void)
CONFIG_USEC_PER_TICK); CONFIG_USEC_PER_TICK);
if (ret < 0) if (ret < 0)
{ {
tcllerr("ERROR: sam_freerun_initialize failed\n"); tmrllerr("ERROR: sam_freerun_initialize failed\n");
PANIC(); PANIC();
} }

View File

@ -840,7 +840,7 @@ endif # TIVA_TIMER_16BIT
config TIVA_TIMER_REGDEBUG config TIVA_TIMER_REGDEBUG
bool "Register level debug" bool "Register level debug"
default n default n
depends on DEBUG_INFO depends on DEBUG_TIMER_INFO
---help--- ---help---
Enables extremely detailed register access debug output. Enables extremely detailed register access debug output.
@ -853,7 +853,7 @@ menu "ADC Configuration"
config TIVA_ADC_REGDEBUG config TIVA_ADC_REGDEBUG
bool "Register level debug" bool "Register level debug"
default n default n
depends on DEBUG_INFO depends on DEBUG_ANALOG_INFO
---help--- ---help---
Enables extremely detailed register access debug output. Enables extremely detailed register access debug output.
@ -1103,7 +1103,7 @@ config TIVA_EMAC_HWCHECKSUM
config TIVA_ETHERNET_REGDEBUG config TIVA_ETHERNET_REGDEBUG
bool "Register-Level Debug" bool "Register-Level Debug"
default n default n
depends on DEBUG_INFO depends on DEBUG_NET_INFO
---help--- ---help---
Enable very low-level register access debug. Depends on CONFIG_DEBUG_FEATURES. Enable very low-level register access debug. Depends on CONFIG_DEBUG_FEATURES.

View File

@ -127,20 +127,6 @@
#define TIMER_ISDMARTCM(c) ((((c)->flags) & TIMER_FLAG_DMARTCM) != 0) #define TIMER_ISDMARTCM(c) ((((c)->flags) & TIMER_FLAG_DMARTCM) != 0)
#define TIMER_ISDMAMATCH(c) ((((c)->flags) & TIMER_FLAG_DMAMATCH) != 0) #define TIMER_ISDMAMATCH(c) ((((c)->flags) & TIMER_FLAG_DMAMATCH) != 0)
/* Debug ********************************************************************/
/* Non-standard debug that may be enabled just for testing the timer
* driver. NOTE: that only llerr types are used so that the output is
* immediately available.
*/
#ifdef CONFIG_DEBUG_TIMER
# define timerr llerr
# define timinfo llinfo
#else
# define timerr(x...)
# define timinfo(x...)
#endif
/**************************************************************************** /****************************************************************************
* Public Types * Public Types
****************************************************************************/ ****************************************************************************/

View File

@ -63,7 +63,7 @@
* Pre-processor Definitions * Pre-processor Definitions
****************************************************************************/ ****************************************************************************/
#ifndef CONFIG_DEBUG_INFO #ifndef CONFIG_DEBUG_TIMER_INFO
# undef CONFIG_TIVA_TIMER_REGDEBUG # undef CONFIG_TIVA_TIMER_REGDEBUG
#endif #endif
@ -397,7 +397,7 @@ static bool tiva_timer_checkreg(struct tiva_gptmstate_s *priv, bool wr,
{ {
/* Yes... show how many times we did it */ /* Yes... show how many times we did it */
llinfo("...[Repeats %d times]...\n", priv->ntimes); tmrinfo("...[Repeats %d times]...\n", priv->ntimes);
} }
/* Save information about the new access */ /* Save information about the new access */
@ -430,7 +430,7 @@ static uint32_t tiva_getreg(struct tiva_gptmstate_s *priv, unsigned int offset)
#ifdef CONFIG_TIVA_TIMER_REGDEBUG #ifdef CONFIG_TIVA_TIMER_REGDEBUG
if (tiva_timer_checkreg(priv, false, regval, regaddr)) if (tiva_timer_checkreg(priv, false, regval, regaddr))
{ {
llinfo("%08x->%08x\n", regaddr, regval); tmrinfo("%08x->%08x\n", regaddr, regval);
} }
#endif #endif
@ -453,7 +453,7 @@ static void tiva_putreg(struct tiva_gptmstate_s *priv, unsigned int offset,
#ifdef CONFIG_TIVA_TIMER_REGDEBUG #ifdef CONFIG_TIVA_TIMER_REGDEBUG
if (tiva_timer_checkreg(priv, true, regval, regaddr)) if (tiva_timer_checkreg(priv, true, regval, regaddr))
{ {
llinfo("%08x<-%08x\n", regaddr, regval); tmrinfo("%08x<-%08x\n", regaddr, regval);
} }
#endif #endif
@ -1780,7 +1780,7 @@ TIMER_HANDLE tiva_gptm_configure(const struct tiva_gptmconfig_s *config)
priv->clkin = ALTCLK_FREQUENCY; priv->clkin = ALTCLK_FREQUENCY;
#else #else
timinfo("tiva_gptm_configure: Error: alternate clock only available on TM4C129 devices\n"); tmrinfo("tiva_gptm_configure: Error: alternate clock only available on TM4C129 devices\n");
return (TIMER_HANDLE)NULL; return (TIMER_HANDLE)NULL;
#endif /* CONFIG_ARCH_CHIP_TM4C129 */ #endif /* CONFIG_ARCH_CHIP_TM4C129 */
} }
@ -2382,14 +2382,14 @@ void tiva_timer32_setinterval(TIMER_HANDLE handle, uint32_t interval)
#ifdef CONFIG_TIVA_TIMER_REGDEBUG #ifdef CONFIG_TIVA_TIMER_REGDEBUG
/* Generate low-level debug output outside of the critical section */ /* Generate low-level debug output outside of the critical section */
llinfo("%08x<-%08x\n", loadr, interval); tmrinfo("%08x<-%08x\n", loadr, interval);
if (toints) if (toints)
{ {
# ifdef CONFIG_ARCH_CHIP_TM4C129 # ifdef CONFIG_ARCH_CHIP_TM4C129
llinfo("%08x->%08x\n", moder, modev1); tmrinfo("%08x->%08x\n", moder, modev1);
llinfo("%08x<-%08x\n", moder, modev2); tmrinfo("%08x<-%08x\n", moder, modev2);
# endif /* CONFIG_ARCH_CHIP_TM4C129 */ # endif /* CONFIG_ARCH_CHIP_TM4C129 */
llinfo("%08x<-%08x\n", imrr, priv->imr); tmrinfo("%08x<-%08x\n", imrr, priv->imr);
} }
#endif #endif
} }
@ -2529,14 +2529,14 @@ void tiva_timer16_setinterval(TIMER_HANDLE handle, uint16_t interval, int tmndx)
#ifdef CONFIG_TIVA_TIMER_REGDEBUG #ifdef CONFIG_TIVA_TIMER_REGDEBUG
/* Generate low-level debug output outside of the critical section */ /* Generate low-level debug output outside of the critical section */
llinfo("%08x<-%08x\n", loadr, interval); tmrinfo("%08x<-%08x\n", loadr, interval);
if (toints) if (toints)
{ {
#ifdef CONFIG_ARCH_CHIP_TM4C129 #ifdef CONFIG_ARCH_CHIP_TM4C129
llinfo("%08x->%08x\n", moder, modev1); tmrinfo("%08x->%08x\n", moder, modev1);
llinfo("%08x<-%08x\n", moder, modev2); tmrinfo("%08x<-%08x\n", moder, modev2);
#endif #endif
llinfo("%08x<-%08x\n", imrr, priv->imr); tmrinfo("%08x<-%08x\n", imrr, priv->imr);
} }
#endif #endif
} }
@ -2568,7 +2568,7 @@ uint32_t tiva_timer32_remaining(TIMER_HANDLE handle)
uint32_t interval; uint32_t interval;
uint32_t remaining; uint32_t remaining;
timinfo("Entry\n"); tmrinfo("Entry\n");
DEBUGASSERT(priv && priv->attr && priv->config && DEBUGASSERT(priv && priv->attr && priv->config &&
priv->config->mode != TIMER16_MODE); priv->config->mode != TIMER16_MODE);
@ -2734,13 +2734,13 @@ void tiva_rtc_setalarm(TIMER_HANDLE handle, uint32_t delay)
#ifdef CONFIG_TIVA_TIMER_REGDEBUG #ifdef CONFIG_TIVA_TIMER_REGDEBUG
/* Generate low-level debug output outside of the critical section */ /* Generate low-level debug output outside of the critical section */
llinfo("%08x->%08x\n", base + TIVA_TIMER_TAR_OFFSET, counter); tmrinfo("%08x->%08x\n", base + TIVA_TIMER_TAR_OFFSET, counter);
llinfo("%08x<-%08x\n", base + TIVA_TIMER_TAMATCHR_OFFSET, match); tmrinfo("%08x<-%08x\n", base + TIVA_TIMER_TAMATCHR_OFFSET, match);
#ifdef CONFIG_ARCH_CHIP_TM4C129 #ifdef CONFIG_ARCH_CHIP_TM4C129
llinfo("%08x->%08x\n", base + TIVA_TIMER_ADCEV_OFFSET, adcev); tmrinfo("%08x->%08x\n", base + TIVA_TIMER_ADCEV_OFFSET, adcev);
llinfo("%08x<-%08x\n", base + TIVA_TIMER_ADCEV_OFFSET, adcev | adcbits); tmrinfo("%08x<-%08x\n", base + TIVA_TIMER_ADCEV_OFFSET, adcev | adcbits);
#endif /* CONFIG_ARCH_CHIP_TM4C129 */ #endif /* CONFIG_ARCH_CHIP_TM4C129 */
llinfo("%08x<-%08x\n", base + TIVA_TIMER_IMR_OFFSET, priv->imr); tmrinfo("%08x<-%08x\n", base + TIVA_TIMER_IMR_OFFSET, priv->imr);
#endif #endif
} }
#endif #endif
@ -2838,13 +2838,13 @@ void tiva_timer32_relmatch(TIMER_HANDLE handle, uint32_t relmatch)
#ifdef CONFIG_TIVA_TIMER_REGDEBUG #ifdef CONFIG_TIVA_TIMER_REGDEBUG
/* Generate low-level debug output outside of the critical section */ /* Generate low-level debug output outside of the critical section */
llinfo("%08x->%08x\n", base + TIVA_TIMER_TAR_OFFSET, counter); tmrinfo("%08x->%08x\n", base + TIVA_TIMER_TAR_OFFSET, counter);
llinfo("%08x<-%08x\n", base + TIVA_TIMER_TAMATCHR_OFFSET, match); tmrinfo("%08x<-%08x\n", base + TIVA_TIMER_TAMATCHR_OFFSET, match);
#ifdef CONFIG_ARCH_CHIP_TM4C129 #ifdef CONFIG_ARCH_CHIP_TM4C129
llinfo("%08x->%08x\n", base + TIVA_TIMER_ADCEV_OFFSET, adcev); tmrinfo("%08x->%08x\n", base + TIVA_TIMER_ADCEV_OFFSET, adcev);
llinfo("%08x<-%08x\n", base + TIVA_TIMER_ADCEV_OFFSET, adcev | adcbits); tmrinfo("%08x<-%08x\n", base + TIVA_TIMER_ADCEV_OFFSET, adcev | adcbits);
#endif /* CONFIG_ARCH_CHIP_TM4C129 */ #endif /* CONFIG_ARCH_CHIP_TM4C129 */
llinfo("%08x<-%08x\n", base + TIVA_TIMER_IMR_OFFSET, priv->imr); tmrinfo("%08x<-%08x\n", base + TIVA_TIMER_IMR_OFFSET, priv->imr);
#endif /* CONFIG_TIVA_TIMER_REGDEBUG */ #endif /* CONFIG_TIVA_TIMER_REGDEBUG */
} }
@ -3040,15 +3040,15 @@ void tiva_timer16_relmatch(TIMER_HANDLE handle, uint32_t relmatch, int tmndx)
#ifdef CONFIG_TIVA_TIMER_REGDEBUG #ifdef CONFIG_TIVA_TIMER_REGDEBUG
/* Generate low-level debug output outside of the critical section */ /* Generate low-level debug output outside of the critical section */
llinfo("%08x->%08x\n", timerr, timerv); tmrinfo("%08x->%08x\n", timerr, timerv);
llinfo("%08x->%08x\n", prescr, prescv); tmrinfo("%08x->%08x\n", prescr, prescv);
llinfo("%08x<-%08x\n", matchr, matchv); tmrinfo("%08x<-%08x\n", matchr, matchv);
llinfo("%08x<-%08x\n", prematchr, prematchv); tmrinfo("%08x<-%08x\n", prematchr, prematchv);
#ifdef CONFIG_ARCH_CHIP_TM4C129 #ifdef CONFIG_ARCH_CHIP_TM4C129
llinfo("%08x->%08x\n", adcevr, adcevv); tmrinfo("%08x->%08x\n", adcevr, adcevv);
llinfo("%08x<-%08x\n", adcevr, adcevv | adcbits); tmrinfo("%08x<-%08x\n", adcevr, adcevv | adcbits);
#endif #endif
llinfo("%08x<-%08x\n", imr, priv->imr); tmrinfo("%08x<-%08x\n", imr, priv->imr);
#endif #endif
} }
#endif #endif

View File

@ -57,10 +57,6 @@
#if defined(CONFIG_TIMER) && defined(CONFIG_TIVA_TIMER) #if defined(CONFIG_TIMER) && defined(CONFIG_TIVA_TIMER)
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/**************************************************************************** /****************************************************************************
* Private Types * Private Types
****************************************************************************/ ****************************************************************************/
@ -200,7 +196,7 @@ static uint32_t tiva_ticks2usec(struct tiva_lowerhalf_s *priv, uint32_t ticks)
static void tiva_timeout(struct tiva_lowerhalf_s *priv, uint32_t timeout) static void tiva_timeout(struct tiva_lowerhalf_s *priv, uint32_t timeout)
{ {
timinfo("Entry: timeout=%d\n", timeout); tmrinfo("Entry: timeout=%d\n", timeout);
/* Save the desired timeout value */ /* Save the desired timeout value */
@ -215,7 +211,7 @@ static void tiva_timeout(struct tiva_lowerhalf_s *priv, uint32_t timeout)
timeout = tiva_ticks2usec(priv, priv->clkticks); timeout = tiva_ticks2usec(priv, priv->clkticks);
priv->adjustment = priv->timeout - timeout; priv->adjustment = priv->timeout - timeout;
timinfo("clkin=%d clkticks=%d timeout=%d, adjustment=%d\n", tmrinfo("clkin=%d clkticks=%d timeout=%d, adjustment=%d\n",
priv->clkin, priv->clkticks, priv->timeout, priv->adjustment); priv->clkin, priv->clkticks, priv->timeout, priv->adjustment);
} }
@ -237,7 +233,7 @@ static void tiva_timer_handler(TIMER_HANDLE handle, void *arg, uint32_t status)
{ {
struct tiva_lowerhalf_s *priv = (struct tiva_lowerhalf_s *)arg; struct tiva_lowerhalf_s *priv = (struct tiva_lowerhalf_s *)arg;
timinfo("Entry: status=%08x\n", status); tmrinfo("Entry: status=%08x\n", status);
DEBUGASSERT(arg && status); DEBUGASSERT(arg && status);
/* Check if the timeout interrupt is pending */ /* Check if the timeout interrupt is pending */
@ -276,7 +272,7 @@ static void tiva_timer_handler(TIMER_HANDLE handle, void *arg, uint32_t status)
/* No handler or the handler returned false.. stop the timer */ /* No handler or the handler returned false.. stop the timer */
tiva_timer32_stop(priv->handle); tiva_timer32_stop(priv->handle);
timinfo("Stopped\n"); tmrinfo("Stopped\n");
} }
} }
} }
@ -300,7 +296,7 @@ static int tiva_start(struct timer_lowerhalf_s *lower)
{ {
struct tiva_lowerhalf_s *priv = (struct tiva_lowerhalf_s *)lower; struct tiva_lowerhalf_s *priv = (struct tiva_lowerhalf_s *)lower;
timinfo("Entry: started %d\n", priv->started); tmrinfo("Entry: started %d\n", priv->started);
/* Has the timer already been started? */ /* Has the timer already been started? */
@ -337,7 +333,7 @@ static int tiva_stop(struct timer_lowerhalf_s *lower)
{ {
struct tiva_lowerhalf_s *priv = (struct tiva_lowerhalf_s *)lower; struct tiva_lowerhalf_s *priv = (struct tiva_lowerhalf_s *)lower;
timinfo("Entry: started %d\n", priv->started); tmrinfo("Entry: started %d\n", priv->started);
/* Has the timer already been started? */ /* Has the timer already been started? */
@ -377,7 +373,7 @@ static int tiva_getstatus(struct timer_lowerhalf_s *lower,
struct tiva_lowerhalf_s *priv = (struct tiva_lowerhalf_s *)lower; struct tiva_lowerhalf_s *priv = (struct tiva_lowerhalf_s *)lower;
uint32_t remaining; uint32_t remaining;
timinfo("Entry\n"); tmrinfo("Entry\n");
DEBUGASSERT(priv); DEBUGASSERT(priv);
/* Return the status bit */ /* Return the status bit */
@ -402,9 +398,9 @@ static int tiva_getstatus(struct timer_lowerhalf_s *lower,
remaining = tiva_timer32_remaining(priv->handle); remaining = tiva_timer32_remaining(priv->handle);
status->timeleft = tiva_ticks2usec(priv, remaining); status->timeleft = tiva_ticks2usec(priv, remaining);
timinfo(" flags : %08x\n", status->flags); tmrinfo(" flags : %08x\n", status->flags);
timinfo(" timeout : %d\n", status->timeout); tmrinfo(" timeout : %d\n", status->timeout);
timinfo(" timeleft : %d\n", status->timeleft); tmrinfo(" timeleft : %d\n", status->timeleft);
return OK; return OK;
} }
@ -435,7 +431,7 @@ static int tiva_settimeout(struct timer_lowerhalf_s *lower, uint32_t timeout)
return -EPERM; return -EPERM;
} }
timinfo("Entry: timeout=%d\n", timeout); tmrinfo("Entry: timeout=%d\n", timeout);
/* Calculate the the new time settings */ /* Calculate the the new time settings */
@ -476,7 +472,7 @@ static tccb_t tiva_sethandler(struct timer_lowerhalf_s *lower,
flags = enter_critical_section(); flags = enter_critical_section();
DEBUGASSERT(priv); DEBUGASSERT(priv);
timinfo("Entry: handler=%p\n", handler); tmrinfo("Entry: handler=%p\n", handler);
/* Get the old handler return value */ /* Get the old handler return value */
@ -516,7 +512,7 @@ static int tiva_ioctl(struct timer_lowerhalf_s *lower, int cmd,
int ret = -ENOTTY; int ret = -ENOTTY;
DEBUGASSERT(priv); DEBUGASSERT(priv);
timinfo("Entry: cmd=%d arg=%ld\n", cmd, arg); tmrinfo("Entry: cmd=%d arg=%ld\n", cmd, arg);
return ret; return ret;
} }
@ -557,7 +553,7 @@ int tiva_timer_initialize(FAR const char *devpath,
void *drvr; void *drvr;
int ret; int ret;
timinfo("\n"); tmrinfo("\n");
DEBUGASSERT(devpath); DEBUGASSERT(devpath);
/* Allocate an instance of the lower half state structure */ /* Allocate an instance of the lower half state structure */
@ -565,7 +561,7 @@ int tiva_timer_initialize(FAR const char *devpath,
priv = (struct tiva_lowerhalf_s *)kmm_zalloc(sizeof(struct tiva_lowerhalf_s)); priv = (struct tiva_lowerhalf_s *)kmm_zalloc(sizeof(struct tiva_lowerhalf_s));
if (!priv) if (!priv)
{ {
timerr("ERROR: Failed to allocate driver structure\n"); tmrerr("ERROR: Failed to allocate driver structure\n");
return -ENOMEM; return -ENOMEM;
} }
@ -577,7 +573,7 @@ int tiva_timer_initialize(FAR const char *devpath,
#else #else
if (config->cmn.alternate) if (config->cmn.alternate)
{ {
timerr("ERROR: Alternate clock unsupported on TM4C123 architecture\n"); tmrerr("ERROR: Alternate clock unsupported on TM4C123 architecture\n");
return -ENOMEM; return -ENOMEM;
} }
else else
@ -599,7 +595,7 @@ int tiva_timer_initialize(FAR const char *devpath,
priv->handle = tiva_gptm_configure((const struct tiva_gptmconfig_s *)&priv->config); priv->handle = tiva_gptm_configure((const struct tiva_gptmconfig_s *)&priv->config);
if (!priv->handle) if (!priv->handle)
{ {
timerr("ERROR: Failed to create timer handle\n"); tmrerr("ERROR: Failed to create timer handle\n");
ret = -EINVAL; ret = -EINVAL;
goto errout_with_alloc; goto errout_with_alloc;
} }

View File

@ -102,12 +102,12 @@ int tiva_timer_configure(void)
{ {
int ret; int ret;
timinfo("Registering TIMER%d at %s\n", GPTM, CONFIG_DK_TM4C129X_TIMER_DEVNAME); tmrinfo("Registering TIMER%d at %s\n", GPTM, CONFIG_DK_TM4C129X_TIMER_DEVNAME);
ret = tiva_timer_register(CONFIG_DK_TM4C129X_TIMER_DEVNAME, GPTM, ALTCLK); ret = tiva_timer_register(CONFIG_DK_TM4C129X_TIMER_DEVNAME, GPTM, ALTCLK);
if (ret < 0) if (ret < 0)
{ {
timerr("ERROR: Failed to register timer driver: %d\n", ret); tmrerr("ERROR: Failed to register timer driver: %d\n", ret);
} }
return ret; return ret;

View File

@ -95,34 +95,6 @@
# define CONFIG_RTT_DEVPATH "/dev/rtt0" # define CONFIG_RTT_DEVPATH "/dev/rtt0"
#endif #endif
/* Timer Definitions ********************************************************/
/* Debug ********************************************************************/
/* Non-standard debug that may be enabled just for testing the watchdog
* timer
*/
#ifndef CONFIG_DEBUG_FEATURES
# undef CONFIG_DEBUG_TIMER
#endif
#ifdef CONFIG_DEBUG_TIMER
# define tcerr err
# define tcllerr llerr
# ifdef CONFIG_DEBUG_INFO
# define tcinfo info
# define tcllinfo llinfo
# else
# define tcinfo(x...)
# define tcllinfo(x...)
# endif
#else
# define tcerr(x...)
# define tcllerr(x...)
# define tcinfo(x...)
# define tcllinfo(x...)
#endif
/**************************************************************************** /****************************************************************************
* Private Functions * Private Functions
****************************************************************************/ ****************************************************************************/
@ -168,37 +140,37 @@ int sam_timerinitialize(void)
/* Initialize and register the timer devices */ /* Initialize and register the timer devices */
#if defined(CONFIG_SAM34_TC0) #if defined(CONFIG_SAM34_TC0)
tcinfo("Initializing %s...\n", CONFIG_TIMER0_DEVPATH); tmrinfo("Initializing %s...\n", CONFIG_TIMER0_DEVPATH);
sam_tcinitialize(CONFIG_TIMER0_DEVPATH, SAM_IRQ_TC0); sam_tcinitialize(CONFIG_TIMER0_DEVPATH, SAM_IRQ_TC0);
#endif #endif
#if defined(CONFIG_SAM34_TC1) #if defined(CONFIG_SAM34_TC1)
tcinfo("Initializing %s...\n", CONFIG_TIMER1_DEVPATH); tmrinfo("Initializing %s...\n", CONFIG_TIMER1_DEVPATH);
sam_tcinitialize(CONFIG_TIMER1_DEVPATH, SAM_IRQ_TC1); sam_tcinitialize(CONFIG_TIMER1_DEVPATH, SAM_IRQ_TC1);
#endif #endif
#if defined(CONFIG_SAM34_TC2) #if defined(CONFIG_SAM34_TC2)
tcinfo("Initializing %s...\n", CONFIG_TIMER2_DEVPATH); tmrinfo("Initializing %s...\n", CONFIG_TIMER2_DEVPATH);
sam_tcinitialize(CONFIG_TIMER2_DEVPATH, SAM_IRQ_TC2); sam_tcinitialize(CONFIG_TIMER2_DEVPATH, SAM_IRQ_TC2);
#endif #endif
#if defined(CONFIG_SAM34_TC3) #if defined(CONFIG_SAM34_TC3)
tcinfo("Initializing %s...\n", CONFIG_TIMER3_DEVPATH); tmrinfo("Initializing %s...\n", CONFIG_TIMER3_DEVPATH);
sam_tcinitialize(CONFIG_TIMER3_DEVPATH, SAM_IRQ_TC3); sam_tcinitialize(CONFIG_TIMER3_DEVPATH, SAM_IRQ_TC3);
#endif #endif
#if defined(CONFIG_SAM34_TC4) #if defined(CONFIG_SAM34_TC4)
tcinfo("Initializing %s...\n", CONFIG_TIMER4_DEVPATH); tmrinfo("Initializing %s...\n", CONFIG_TIMER4_DEVPATH);
sam_tcinitialize(CONFIG_TIMER4_DEVPATH, SAM_IRQ_TC4); sam_tcinitialize(CONFIG_TIMER4_DEVPATH, SAM_IRQ_TC4);
#endif #endif
#if defined(CONFIG_SAM34_TC5) #if defined(CONFIG_SAM34_TC5)
tcinfo("Initializing %s...\n", CONFIG_TIMER5_DEVPATH); tmrinfo("Initializing %s...\n", CONFIG_TIMER5_DEVPATH);
sam_tcinitialize(CONFIG_TIMER5_DEVPATH, SAM_IRQ_TC5); sam_tcinitialize(CONFIG_TIMER5_DEVPATH, SAM_IRQ_TC5);
#endif #endif
#if defined(CONFIG_SAM34_RTT) #if defined(CONFIG_SAM34_RTT)
tcinfo("Initializing %s...\n", CONFIG_RTT_DEVPATH); tmrinfo("Initializing %s...\n", CONFIG_RTT_DEVPATH);
sam_rttinitialize(CONFIG_RTT_DEVPATH); sam_rttinitialize(CONFIG_RTT_DEVPATH);
#endif #endif
@ -206,23 +178,23 @@ int sam_timerinitialize(void)
!defined(CONFIG_SUPPRESS_TIMER_INTS) !defined(CONFIG_SUPPRESS_TIMER_INTS)
/* System Timer Initialization */ /* System Timer Initialization */
tcinfo("Opening %s\n", CONFIG_SAM4S_XPLAINED_PRO_SCHED_TIMER_DEVPATH); tmrinfo("Opening %s\n", CONFIG_SAM4S_XPLAINED_PRO_SCHED_TIMER_DEVPATH);
fd = open(CONFIG_SAM4S_XPLAINED_PRO_SCHED_TIMER_DEVPATH, O_RDONLY); fd = open(CONFIG_SAM4S_XPLAINED_PRO_SCHED_TIMER_DEVPATH, O_RDONLY);
if (fd < 0) if (fd < 0)
{ {
tcerr("ERROR: open %s failed: %d\n", tmrerr("ERROR: open %s failed: %d\n",
CONFIG_SAM4S_XPLAINED_PRO_SCHED_TIMER_DEVPATH, errno); CONFIG_SAM4S_XPLAINED_PRO_SCHED_TIMER_DEVPATH, errno);
goto errout; goto errout;
} }
/* Set the timeout */ /* Set the timeout */
tcinfo("Interval = %d us.\n", (unsigned long)USEC_PER_TICK); tmrinfo("Interval = %d us.\n", (unsigned long)USEC_PER_TICK);
ret = ioctl(fd, TCIOC_SETTIMEOUT, (unsigned long)USEC_PER_TICK); ret = ioctl(fd, TCIOC_SETTIMEOUT, (unsigned long)USEC_PER_TICK);
if (ret < 0) if (ret < 0)
{ {
tcerr("ERROR: ioctl(TCIOC_SETTIMEOUT) failed: %d\n", errno); tmrerr("ERROR: ioctl(TCIOC_SETTIMEOUT) failed: %d\n", errno);
goto errout_with_dev; goto errout_with_dev;
} }
@ -235,18 +207,18 @@ int sam_timerinitialize(void)
ret = ioctl(fd, TCIOC_SETHANDLER, (unsigned long)&tccb); ret = ioctl(fd, TCIOC_SETHANDLER, (unsigned long)&tccb);
if (ret < 0) if (ret < 0)
{ {
tcerr("ERROR: ioctl(TCIOC_SETHANDLER) failed: %d\n", errno); tmrerr("ERROR: ioctl(TCIOC_SETHANDLER) failed: %d\n", errno);
goto errout_with_dev; goto errout_with_dev;
} }
} }
/* Start the timer */ /* Start the timer */
tcinfo("Starting.\n"); tmrinfo("Starting.\n");
ret = ioctl(fd, TCIOC_START, 0); ret = ioctl(fd, TCIOC_START, 0);
if (ret < 0) if (ret < 0)
{ {
tcerr("ERROR: ioctl(TCIOC_START) failed: %d\n", errno); tmrerr("ERROR: ioctl(TCIOC_START) failed: %d\n", errno);
goto errout_with_dev; goto errout_with_dev;
} }
#endif #endif
@ -254,25 +226,25 @@ int sam_timerinitialize(void)
#if defined(CONFIG_SCHED_CPULOAD) && defined(CONFIG_SCHED_CPULOAD_EXTCLK) #if defined(CONFIG_SCHED_CPULOAD) && defined(CONFIG_SCHED_CPULOAD_EXTCLK)
/* CPU Load initialization */ /* CPU Load initialization */
tcinfo("Opening %s\n", CONFIG_SAM4S_XPLAINED_PRO_CPULOAD_TIMER_DEVPATH); tmrinfo("Opening %s\n", CONFIG_SAM4S_XPLAINED_PRO_CPULOAD_TIMER_DEVPATH);
fd = open(CONFIG_SAM4S_XPLAINED_PRO_CPULOAD_TIMER_DEVPATH, O_RDONLY); fd = open(CONFIG_SAM4S_XPLAINED_PRO_CPULOAD_TIMER_DEVPATH, O_RDONLY);
if (fd < 0) if (fd < 0)
{ {
tcerr("ERROR: open %s failed: %d\n", tmrerr("ERROR: open %s failed: %d\n",
CONFIG_SAM4S_XPLAINED_PRO_CPULOAD_TIMER_DEVPATH, errno); CONFIG_SAM4S_XPLAINED_PRO_CPULOAD_TIMER_DEVPATH, errno);
goto errout; goto errout;
} }
/* Set the timeout */ /* Set the timeout */
tcinfo("Interval = %d us.\n", (unsigned long)1000000 / CONFIG_SCHED_CPULOAD_TICKSPERSEC); tmrinfo("Interval = %d us.\n", (unsigned long)1000000 / CONFIG_SCHED_CPULOAD_TICKSPERSEC);
ret = ioctl(fd, TCIOC_SETTIMEOUT, ret = ioctl(fd, TCIOC_SETTIMEOUT,
(unsigned long)1000000 / CONFIG_SCHED_CPULOAD_TICKSPERSEC); (unsigned long)1000000 / CONFIG_SCHED_CPULOAD_TICKSPERSEC);
if (ret < 0) if (ret < 0)
{ {
tcerr("ERROR: ioctl(TCIOC_SETTIMEOUT) failed: %d\n", errno); tmrerr("ERROR: ioctl(TCIOC_SETTIMEOUT) failed: %d\n", errno);
goto errout_with_dev; goto errout_with_dev;
} }
@ -286,18 +258,18 @@ int sam_timerinitialize(void)
ret = ioctl(fd, TCIOC_SETHANDLER, (unsigned long)&tccb); ret = ioctl(fd, TCIOC_SETHANDLER, (unsigned long)&tccb);
if (ret < 0) if (ret < 0)
{ {
tcerr("ERROR: ioctl(TCIOC_SETHANDLER) failed: %d\n", errno); tmrerr("ERROR: ioctl(TCIOC_SETHANDLER) failed: %d\n", errno);
goto errout_with_dev; goto errout_with_dev;
} }
} }
/* Start the timer */ /* Start the timer */
tcinfo("Starting.\n"); tmrinfo("Starting.\n");
ret = ioctl(fd, TCIOC_START, 0); ret = ioctl(fd, TCIOC_START, 0);
if (ret < 0) if (ret < 0)
{ {
tcerr("ERROR: ioctl(TCIOC_START) failed: %d\n", errno); tmrerr("ERROR: ioctl(TCIOC_START) failed: %d\n", errno);
goto errout_with_dev; goto errout_with_dev;
} }
#endif #endif

View File

@ -101,14 +101,14 @@ int tiva_timer_configure(void)
{ {
int ret; int ret;
timinfo("Registering TIMER%d at %s\n", tmrinfo("Registering TIMER%d at %s\n",
GPTM, CONFIG_TM4C1294_LAUNCHPAD_TIMER_DEVNAME); GPTM, CONFIG_TM4C1294_LAUNCHPAD_TIMER_DEVNAME);
ret = tiva_timer_register(CONFIG_TM4C1294_LAUNCHPAD_TIMER_DEVNAME, ret = tiva_timer_register(CONFIG_TM4C1294_LAUNCHPAD_TIMER_DEVNAME,
GPTM, ALTCLK); GPTM, ALTCLK);
if (ret < 0) if (ret < 0)
{ {
timerr("ERROR: Failed to register timer driver: %d\n", ret); tmrerr("ERROR: Failed to register timer driver: %d\n", ret);
} }
return ret; return ret;

View File

@ -57,24 +57,6 @@
#ifdef CONFIG_TIMER #ifdef CONFIG_TIMER
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/* Debug ********************************************************************/
/* Non-standard debug that may be enabled just for testing the timer driver */
#ifdef CONFIG_DEBUG_TIMER
# define tmrerr err
# define tmrinfo info
# define tmrllerr llerr
# define tmrllinfo llinfo
#else
# define tmrerr(x...)
# define tmrinfo(x...)
# define tmrllerr(x...)
# define tmrllinfo(x...)
#endif
/**************************************************************************** /****************************************************************************
* Private Type Definitions * Private Type Definitions
****************************************************************************/ ****************************************************************************/

View File

@ -741,6 +741,30 @@
# define spillinfo(x...) # define spillinfo(x...)
#endif #endif
#ifdef CONFIG_DEBUG_TIMER_ERROR
# define tmrerr(format, ...) err(format, ##__VA_ARGS__)
# define tmrllerr(format, ...) llerr(format, ##__VA_ARGS__)
#else
# define tmrerr(x...)
# define tmrllerr(x...)
#endif
#ifdef CONFIG_DEBUG_TIMER_WARN
# define tmrwarn(format, ...) warn(format, ##__VA_ARGS__)
# define tmrllwarn(format, ...) llwarn(format, ##__VA_ARGS__)
#else
# define tmrwarn(x...)
# define tmrllwarn(x...)
#endif
#ifdef CONFIG_DEBUG_TIMER_INFO
# define tmrinfo(format, ...) info(format, ##__VA_ARGS__)
# define tmrllinfo(format, ...) llinfo(format, ##__VA_ARGS__)
#else
# define tmrinfo(x...)
# define tmrllinfo(x...)
#endif
#ifdef CONFIG_DEBUG_USB_ERROR #ifdef CONFIG_DEBUG_USB_ERROR
# define uerr(format, ...) err(format, ##__VA_ARGS__) # define uerr(format, ...) err(format, ##__VA_ARGS__)
# define ullerr(format, ...) llerr(format, ##__VA_ARGS__) # define ullerr(format, ...) llerr(format, ##__VA_ARGS__)
@ -1378,6 +1402,30 @@
# define spillinfo (void) # define spillinfo (void)
#endif #endif
#ifdef CONFIG_DEBUG_TIMER_ERROR
# define tmrerr err
# define tmrllerr llerr
#else
# define tmrerr (void)
# define tmrllerr (void)
#endif
#ifdef CONFIG_DEBUG_TIMER_WARN
# define tmrwarn warn
# define tmrllwarn llwarn
#else
# define tmrwarn (void)
# define tmrllwarn (void)
#endif
#ifdef CONFIG_DEBUG_TIMER_INFO
# define tmrinfo info
# define tmrllinfo llinfo
#else
# define tmrinfo (void)
# define tmrllinfo (void)
#endif
#ifdef CONFIG_DEBUG_USB_ERROR #ifdef CONFIG_DEBUG_USB_ERROR
# define uerr err # define uerr err
# define ullerr llerr # define ullerr llerr
@ -1612,6 +1660,22 @@
# define sninfodumpbuffer(m,b,n) # define sninfodumpbuffer(m,b,n)
#endif #endif
#ifdef CONFIG_DEBUG_SPI
# define spierrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
# define spiinfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
#else
# define spierrdumpbuffer(m,b,n)
# define spiinfodumpbuffer(m,b,n)
#endif
#ifdef CONFIG_DEBUG_TIMER
# define tmrerrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
# define tmrinfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
#else
# define tmrerrdumpbuffer(m,b,n)
# define tmrinfodumpbuffer(m,b,n)
#endif
#ifdef CONFIG_DEBUG_USB #ifdef CONFIG_DEBUG_USB
# define uerrdumpbuffer(m,b,n) errdumpbuffer(m,b,n) # define uerrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
# define uinfodumpbuffer(m,b,n) infodumpbuffer(m,b,n) # define uinfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)