summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2012-11-30 15:10:59 -0800
committerKeith Packard <keithp@keithp.com>2012-11-30 15:10:59 -0800
commit0fa9ce23dd63846337872d6d666a469512614d07 (patch)
tree751106e238d943ccd7921b7a973b490bd808d146 /src
parentcb01d968f21a171682e6358641edaf5eef815a66 (diff)
altos: Share cc1111 reset/debug-start code
These sequences are very similar, differing only in whether the dbg clock line is toggled while holding reset low for a while. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src')
-rw-r--r--src/cc1111/ao_dbg.c28
1 files changed, 8 insertions, 20 deletions
diff --git a/src/cc1111/ao_dbg.c b/src/cc1111/ao_dbg.c
index fd1fdabf..4e534697 100644
--- a/src/cc1111/ao_dbg.c
+++ b/src/cc1111/ao_dbg.c
@@ -201,43 +201,31 @@ ao_dbg_send_bits_delay(uint8_t msk, uint8_t val)
}
void
-ao_dbg_debug_mode(void)
+ao_dbg_do_reset(uint8_t clock_up)
{
ao_dbg_set_pins();
ao_dbg_send_bits_delay(DBG_CLOCK|DBG_DATA|DBG_RESET_N, DBG_CLOCK|DBG_DATA|DBG_RESET_N);
- ao_dbg_send_bits_delay(DBG_CLOCK|DBG_DATA|DBG_RESET_N, 0 |DBG_DATA| 0 );
+ ao_dbg_send_bits_delay(DBG_CLOCK|DBG_DATA|DBG_RESET_N, clock_up |DBG_DATA| 0 );
ao_delay(AO_RESET_LOW_DELAY);
ao_dbg_send_bits (DBG_CLOCK|DBG_DATA|DBG_RESET_N, DBG_CLOCK|DBG_DATA| 0 );
- ao_dbg_send_bits_delay(DBG_CLOCK|DBG_DATA|DBG_RESET_N, 0 |DBG_DATA| 0 );
+ ao_dbg_send_bits_delay(DBG_CLOCK|DBG_DATA|DBG_RESET_N, clock_up |DBG_DATA| 0 );
ao_dbg_send_bits_delay(DBG_CLOCK|DBG_DATA|DBG_RESET_N, DBG_CLOCK|DBG_DATA| 0 );
- ao_dbg_send_bits_delay(DBG_CLOCK|DBG_DATA|DBG_RESET_N, 0 |DBG_DATA|DBG_RESET_N);
- ao_delay(AO_RESET_HIGH_DELAY);
-}
-
-void
-ao_dbg_reset(void)
-{
- ao_dbg_set_pins();
- ao_dbg_send_bits_delay(DBG_CLOCK|DBG_DATA|DBG_RESET_N, DBG_CLOCK|DBG_DATA|DBG_RESET_N);
- ao_dbg_send_bits_delay(DBG_CLOCK|DBG_DATA|DBG_RESET_N, DBG_CLOCK|DBG_DATA| 0 );
- ao_delay(AO_RESET_LOW_DELAY);
- ao_dbg_send_bits (DBG_CLOCK|DBG_DATA|DBG_RESET_N, DBG_CLOCK|DBG_DATA| 0 );
- ao_dbg_send_bits_delay(DBG_CLOCK|DBG_DATA|DBG_RESET_N, DBG_CLOCK|DBG_DATA| 0 );
- ao_dbg_send_bits_delay(DBG_CLOCK|DBG_DATA|DBG_RESET_N, DBG_CLOCK|DBG_DATA| 0 );
- ao_dbg_send_bits_delay(DBG_CLOCK|DBG_DATA|DBG_RESET_N, DBG_CLOCK|DBG_DATA|DBG_RESET_N);
+ ao_dbg_send_bits_delay(DBG_CLOCK|DBG_DATA|DBG_RESET_N, clock_up |DBG_DATA|DBG_RESET_N);
ao_delay(AO_RESET_HIGH_DELAY);
}
static void
debug_enable(void)
{
- ao_dbg_debug_mode();
+ /* toggle clock line while holding reset low */
+ ao_dbg_do_reset(0);
}
static void
debug_reset(void)
{
- ao_dbg_reset();
+ /* hold clock high while holding reset low */
+ ao_dbg_do_reset(DBG_CLOCK);
}
static void