tcl: add SPDX tag
[fw/openocd] / tcl / chip / atmel / at91 / rtt.tcl
1 # SPDX-License-Identifier: GPL-2.0-or-later
2
3 set RTTC_RTMR [expr {$AT91C_BASE_RTTC + 0x00}]
4 set RTTC_RTAR [expr {$AT91C_BASE_RTTC + 0x04}]
5 set RTTC_RTVR [expr {$AT91C_BASE_RTTC + 0x08}]
6 set RTTC_RTSR [expr {$AT91C_BASE_RTTC + 0x0c}]
7 global RTTC_RTMR
8 global RTTC_RTAR
9 global RTTC_RTVR
10 global RTTC_RTSR
11
12 proc show_RTTC_RTMR_helper { NAME ADDR VAL } {
13     set rtpres [expr {$VAL & 0x0ffff}]
14     global BIT16 BIT17
15     if { $rtpres == 0 } {
16         set rtpres 65536;
17     }
18     global AT91C_SLOWOSC_FREQ
19     # Nasty hack, make this a float by tacking a .0 on the end
20     # otherwise, jim makes the value an integer
21     set f [expr "$AT91C_SLOWOSC_FREQ.0 / $rtpres.0"]
22     echo [format "\tPrescale value: 0x%04x (%5d) => %f Hz" $rtpres $rtpres $f]
23     if { $VAL & $BIT16 } {
24         echo "\tBit16 -> Alarm IRQ Enabled"
25     } else {
26         echo "\tBit16 -> Alarm IRQ Disabled"
27     }
28     if { $VAL & $BIT17 } {
29         echo "\tBit17 -> RTC Inc IRQ Enabled"
30     } else {
31         echo "\tBit17 -> RTC Inc IRQ Disabled"
32     }
33     # Bit 18 is write only.
34 }
35
36 proc show_RTTC_RTSR_helper { NAME ADDR VAL } {
37     global BIT0 BIT1
38     if { $VAL & $BIT0 } {
39         echo "\tBit0 -> ALARM PENDING"
40     } else {
41         echo "\tBit0 -> alarm not pending"
42     }
43     if { $VAL & $BIT1 } {
44         echo "\tBit0 -> RTINC PENDING"
45     } else {
46         echo "\tBit0 -> rtinc not pending"
47     }
48 }
49
50 proc show_RTTC { } {
51
52     show_mmr32_reg RTTC_RTMR
53     show_mmr32_reg RTTC_RTAR
54     show_mmr32_reg RTTC_RTVR
55     show_mmr32_reg RTTC_RTSR
56 }