diff options
author | Jacques Comeaux <jacquesrcomeaux@protonmail.com> | 2023-12-23 14:12:08 -0600 |
---|---|---|
committer | Jacques Comeaux <jacquesrcomeaux@protonmail.com> | 2023-12-23 14:12:08 -0600 |
commit | 8f6eed4e102500204879d848572547b35a267cea (patch) | |
tree | ad5f5138f9068af37d11e20ac6c87e28c3f92d45 /gpio.s | |
parent | 987e12b6c90ed3a3606a4948e9d7cad6d6f34026 (diff) |
Use crystal oscilator for system clock
Diffstat (limited to 'gpio.s')
-rw-r--r-- | gpio.s | 25 |
1 files changed, 25 insertions, 0 deletions
@@ -0,0 +1,25 @@ +.syntax unified +.cpu cortex-m0plus +.thumb + +.equ RESETS_BASE, 0x4000c000 +.equ RESET_OFST, 0x0 +.equ RESET_DONE_OFST, 0x8 + +.equ ATOMIC_CLEAR, 0x3000 + +.type setup_gpio, %function +.global setup_gpio + +setup_gpio: + // clear reset + ldr r1, =(RESETS_BASE + ATOMIC_CLEAR) + movs r0, 0x20 // IO_BANK0 is bit 5 + str r0, [r1, RESET_OFST] + ldr r1, =RESETS_BASE +1: + ldr r2, [r1, RESET_DONE_OFST] + tst r0, r2 // IO_BANK0 is still bit 5 + // wait for reset done + beq 1b + mov pc, lr |