Blackfin: update gptimers API
First we fix the prototypes for functions that return boolean values by using "int" rather than "uint16_t". Then we introduce a get_gptimer_run() function for checking the current run status of a timer, and then we add a disable_gptimers_sync() function which parallels disable_gptimers() with corresponding normal "_sync" behavior. Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
This commit is contained in:
committed by
Mike Frysinger
parent
9ba3c24f10
commit
c8d5ea8ccb
@@ -30,6 +30,7 @@
|
|||||||
# else
|
# else
|
||||||
# define MAX_BLACKFIN_GPTIMERS 11
|
# define MAX_BLACKFIN_GPTIMERS 11
|
||||||
# define TIMER8_GROUP_REG TIMER_ENABLE1
|
# define TIMER8_GROUP_REG TIMER_ENABLE1
|
||||||
|
# define TIMER_GROUP2 1
|
||||||
# endif
|
# endif
|
||||||
# define TIMER0_GROUP_REG TIMER_ENABLE0
|
# define TIMER0_GROUP_REG TIMER_ENABLE0
|
||||||
#endif
|
#endif
|
||||||
@@ -40,10 +41,12 @@
|
|||||||
# define MAX_BLACKFIN_GPTIMERS 12
|
# define MAX_BLACKFIN_GPTIMERS 12
|
||||||
# define TIMER0_GROUP_REG TMRS8_ENABLE
|
# define TIMER0_GROUP_REG TMRS8_ENABLE
|
||||||
# define TIMER8_GROUP_REG TMRS4_ENABLE
|
# define TIMER8_GROUP_REG TMRS4_ENABLE
|
||||||
|
# define TIMER_GROUP2 1
|
||||||
#endif
|
#endif
|
||||||
/*
|
/*
|
||||||
* All others: 3 timers:
|
* All others: 3 timers:
|
||||||
*/
|
*/
|
||||||
|
#define TIMER_GROUP1 0
|
||||||
#if !defined(MAX_BLACKFIN_GPTIMERS)
|
#if !defined(MAX_BLACKFIN_GPTIMERS)
|
||||||
# define MAX_BLACKFIN_GPTIMERS 3
|
# define MAX_BLACKFIN_GPTIMERS 3
|
||||||
# define TIMER0_GROUP_REG TIMER_ENABLE
|
# define TIMER0_GROUP_REG TIMER_ENABLE
|
||||||
@@ -169,23 +172,25 @@
|
|||||||
|
|
||||||
/* The actual gptimer API */
|
/* The actual gptimer API */
|
||||||
|
|
||||||
void set_gptimer_pwidth (int timer_id, uint32_t width);
|
void set_gptimer_pwidth(int timer_id, uint32_t width);
|
||||||
uint32_t get_gptimer_pwidth (int timer_id);
|
uint32_t get_gptimer_pwidth(int timer_id);
|
||||||
void set_gptimer_period (int timer_id, uint32_t period);
|
void set_gptimer_period(int timer_id, uint32_t period);
|
||||||
uint32_t get_gptimer_period (int timer_id);
|
uint32_t get_gptimer_period(int timer_id);
|
||||||
uint32_t get_gptimer_count (int timer_id);
|
uint32_t get_gptimer_count(int timer_id);
|
||||||
uint16_t get_gptimer_intr (int timer_id);
|
int get_gptimer_intr(int timer_id);
|
||||||
void clear_gptimer_intr (int timer_id);
|
void clear_gptimer_intr(int timer_id);
|
||||||
uint16_t get_gptimer_over (int timer_id);
|
int get_gptimer_over(int timer_id);
|
||||||
void clear_gptimer_over (int timer_id);
|
void clear_gptimer_over(int timer_id);
|
||||||
void set_gptimer_config (int timer_id, uint16_t config);
|
void set_gptimer_config(int timer_id, uint16_t config);
|
||||||
uint16_t get_gptimer_config (int timer_id);
|
uint16_t get_gptimer_config(int timer_id);
|
||||||
void set_gptimer_pulse_hi (int timer_id);
|
int get_gptimer_run(int timer_id);
|
||||||
|
void set_gptimer_pulse_hi(int timer_id);
|
||||||
void clear_gptimer_pulse_hi(int timer_id);
|
void clear_gptimer_pulse_hi(int timer_id);
|
||||||
void enable_gptimers (uint16_t mask);
|
void enable_gptimers(uint16_t mask);
|
||||||
void disable_gptimers (uint16_t mask);
|
void disable_gptimers(uint16_t mask);
|
||||||
uint16_t get_enabled_gptimers (void);
|
void disable_gptimers_sync(uint16_t mask);
|
||||||
uint32_t get_gptimer_status (int group);
|
uint16_t get_enabled_gptimers(void);
|
||||||
void set_gptimer_status (int group, uint32_t value);
|
uint32_t get_gptimer_status(int group);
|
||||||
|
void set_gptimer_status(int group, uint32_t value);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -189,10 +189,10 @@ void set_gptimer_status(int group, uint32_t value)
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(set_gptimer_status);
|
EXPORT_SYMBOL(set_gptimer_status);
|
||||||
|
|
||||||
uint16_t get_gptimer_intr(int timer_id)
|
int get_gptimer_intr(int timer_id)
|
||||||
{
|
{
|
||||||
tassert(timer_id < MAX_BLACKFIN_GPTIMERS);
|
tassert(timer_id < MAX_BLACKFIN_GPTIMERS);
|
||||||
return (group_regs[BFIN_TIMER_OCTET(timer_id)]->status & timil_mask[timer_id]) ? 1 : 0;
|
return !!(group_regs[BFIN_TIMER_OCTET(timer_id)]->status & timil_mask[timer_id]);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(get_gptimer_intr);
|
EXPORT_SYMBOL(get_gptimer_intr);
|
||||||
|
|
||||||
@@ -203,10 +203,10 @@ void clear_gptimer_intr(int timer_id)
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(clear_gptimer_intr);
|
EXPORT_SYMBOL(clear_gptimer_intr);
|
||||||
|
|
||||||
uint16_t get_gptimer_over(int timer_id)
|
int get_gptimer_over(int timer_id)
|
||||||
{
|
{
|
||||||
tassert(timer_id < MAX_BLACKFIN_GPTIMERS);
|
tassert(timer_id < MAX_BLACKFIN_GPTIMERS);
|
||||||
return (group_regs[BFIN_TIMER_OCTET(timer_id)]->status & tovf_mask[timer_id]) ? 1 : 0;
|
return !!(group_regs[BFIN_TIMER_OCTET(timer_id)]->status & tovf_mask[timer_id]);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(get_gptimer_over);
|
EXPORT_SYMBOL(get_gptimer_over);
|
||||||
|
|
||||||
@@ -217,6 +217,13 @@ void clear_gptimer_over(int timer_id)
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(clear_gptimer_over);
|
EXPORT_SYMBOL(clear_gptimer_over);
|
||||||
|
|
||||||
|
int get_gptimer_run(int timer_id)
|
||||||
|
{
|
||||||
|
tassert(timer_id < MAX_BLACKFIN_GPTIMERS);
|
||||||
|
return !!(group_regs[BFIN_TIMER_OCTET(timer_id)]->status & trun_mask[timer_id]);
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(get_gptimer_run);
|
||||||
|
|
||||||
void set_gptimer_config(int timer_id, uint16_t config)
|
void set_gptimer_config(int timer_id, uint16_t config)
|
||||||
{
|
{
|
||||||
tassert(timer_id < MAX_BLACKFIN_GPTIMERS);
|
tassert(timer_id < MAX_BLACKFIN_GPTIMERS);
|
||||||
@@ -244,7 +251,7 @@ void enable_gptimers(uint16_t mask)
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(enable_gptimers);
|
EXPORT_SYMBOL(enable_gptimers);
|
||||||
|
|
||||||
void disable_gptimers(uint16_t mask)
|
static void _disable_gptimers(uint16_t mask)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
uint16_t m = mask;
|
uint16_t m = mask;
|
||||||
@@ -253,6 +260,12 @@ void disable_gptimers(uint16_t mask)
|
|||||||
group_regs[i]->disable = m & 0xFF;
|
group_regs[i]->disable = m & 0xFF;
|
||||||
m >>= 8;
|
m >>= 8;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void disable_gptimers(uint16_t mask)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
_disable_gptimers(mask);
|
||||||
for (i = 0; i < MAX_BLACKFIN_GPTIMERS; ++i)
|
for (i = 0; i < MAX_BLACKFIN_GPTIMERS; ++i)
|
||||||
if (mask & (1 << i))
|
if (mask & (1 << i))
|
||||||
group_regs[BFIN_TIMER_OCTET(i)]->status |= trun_mask[i];
|
group_regs[BFIN_TIMER_OCTET(i)]->status |= trun_mask[i];
|
||||||
@@ -260,6 +273,13 @@ void disable_gptimers(uint16_t mask)
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(disable_gptimers);
|
EXPORT_SYMBOL(disable_gptimers);
|
||||||
|
|
||||||
|
void disable_gptimers_sync(uint16_t mask)
|
||||||
|
{
|
||||||
|
_disable_gptimers(mask);
|
||||||
|
SSYNC();
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(disable_gptimers_sync);
|
||||||
|
|
||||||
void set_gptimer_pulse_hi(int timer_id)
|
void set_gptimer_pulse_hi(int timer_id)
|
||||||
{
|
{
|
||||||
tassert(timer_id < MAX_BLACKFIN_GPTIMERS);
|
tassert(timer_id < MAX_BLACKFIN_GPTIMERS);
|
||||||
|
Reference in New Issue
Block a user