summaryrefslogtreecommitdiff
path: root/ccdbg-command.c
diff options
context:
space:
mode:
Diffstat (limited to 'ccdbg-command.c')
-rw-r--r--ccdbg-command.c27
1 files changed, 21 insertions, 6 deletions
diff --git a/ccdbg-command.c b/ccdbg-command.c
index 3e42d48e..a0a12d9d 100644
--- a/ccdbg-command.c
+++ b/ccdbg-command.c
@@ -19,14 +19,22 @@
#include "ccdbg.h"
void
-ccdbg_reset(struct ccdbg *dbg)
+ccdbg_debug_mode(struct ccdbg *dbg)
{
/* force two rising clocks while holding RESET_N low */
- ccdbg_clock_1_0(dbg);
- cccp_write(dbg, CC_RESET_N, 0);
- ccdbg_clock_0_1(dbg);
- ccdbg_clock_1_0(dbg);
- ccdbg_clock_0_1(dbg);
+ ccdbg_half_clock(dbg);
+ cccp_write(dbg, CC_RESET_N|CC_CLOCK, 0); ccdbg_half_clock(dbg);
+ cccp_write(dbg, CC_CLOCK, CC_CLOCK); ccdbg_half_clock(dbg);
+ cccp_write(dbg, CC_CLOCK, 0); ccdbg_half_clock(dbg);
+ cccp_write(dbg, CC_CLOCK, CC_CLOCK); ccdbg_half_clock(dbg);
+ cccp_write(dbg, CC_RESET_N, CC_RESET_N); ccdbg_half_clock(dbg);
+}
+
+void
+ccdbg_reset(struct ccdbg *dbg)
+{
+ ccdbg_half_clock(dbg);
+ cccp_write(dbg, CC_RESET_N, 0); ccdbg_half_clock(dbg);
cccp_write(dbg, CC_RESET_N, CC_RESET_N);
}
@@ -41,3 +49,10 @@ ccdbg_rd_config(struct ccdbg *dbg)
{
return ccdbg_cmd_write_read8(dbg, CC_RD_CONFIG, NULL, 0);
}
+
+uint16_t
+ccdbg_get_chip_id(struct ccdbg *dbg)
+{
+ return ccdbg_cmd_write_read16(dbg, CC_GET_CHIP_ID, NULL, 0);
+}
+