aboutsummaryrefslogtreecommitdiff
path: root/src/adiv5.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/adiv5.c')
-rw-r--r--src/adiv5.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/adiv5.c b/src/adiv5.c
index a37afa1..22b9965 100644
--- a/src/adiv5.c
+++ b/src/adiv5.c
@@ -260,6 +260,17 @@ void adiv5_ap_mem_write(ADIv5_AP_t *ap, uint32_t addr, uint32_t value)
adiv5_ap_write(ap, ADIV5_AP_DRW, value);
}
+void adiv5_ap_mem_write_halfword(ADIv5_AP_t *ap, uint32_t addr, uint16_t value)
+{
+ uint32_t v = value;
+ if (addr & 2)
+ v <<= 16;
+
+ adiv5_ap_write(ap, ADIV5_AP_CSW, 0xA2000051);
+ adiv5_ap_write(ap, ADIV5_AP_TAR, addr);
+ adiv5_ap_write(ap, ADIV5_AP_DRW, v);
+}
+
void adiv5_ap_write(ADIv5_AP_t *ap, uint8_t addr, uint32_t value)
{
adiv5_dp_write(ap->dp, ADIV5_DP_SELECT,