aboutsummaryrefslogtreecommitdiff
path: root/include/libopencm3/efm32/tinygecko/cmu.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'include/libopencm3/efm32/tinygecko/cmu.yaml')
-rw-r--r--include/libopencm3/efm32/tinygecko/cmu.yaml437
1 files changed, 437 insertions, 0 deletions
diff --git a/include/libopencm3/efm32/tinygecko/cmu.yaml b/include/libopencm3/efm32/tinygecko/cmu.yaml
new file mode 100644
index 0000000..52906f7
--- /dev/null
+++ b/include/libopencm3/efm32/tinygecko/cmu.yaml
@@ -0,0 +1,437 @@
+copyright: "2012 chrysn <chrysn@fsfe.org>"
+license: lgpl-3+
+shortdocname: EFM32TG_CMU
+longdocname: EFM32 Tiny Gecko CMU
+shortname: CMU
+longname: Clock Management Unit
+baseref: d0034_efm32tg_reference_manual.pdf section 11
+registers_baserefext: ".4"
+registers:
+ - name: CTRL
+ offset: 0x000
+ definition_baserefext: ".5.1"
+ fields:
+ - name: DBGCLK
+ shift: 28
+ values:
+ - {name: AUXHFRCO, value: 0}
+ - {name: HFCLK, value: 1}
+ - name: CLKOUTSEL1
+ shift: 23
+ length: 3
+ values: &CLKOUTSEL1_values
+ - {name: LFRCO, value: 0}
+ - {name: LFXO, value: 1}
+ - {name: HFCLK, value: 2}
+ - {name: LFXOQ, value: 3}
+ - {name: HFXOQ, value: 4}
+ - {name: LFRCOQ, value: 5}
+ - {name: HFRCOQ, value: 6}
+ - {name: AUXHFRCOQ, value: 7}
+ - name: CLKOUTSEL0
+ shift: 20
+ length: 3
+ values: *CLKOUTSEL1_values
+ - name: LFXOTIMEOUT
+ shift: 18
+ length: 2
+ values:
+ - {name: 8CYCLES, value: 0}
+ - {name: 1KCYCLES, value: 1}
+ - {name: 16KCYCLES, value: 2}
+ - {name: 32KCYCLES, value: 3}
+ - name: LFXOBUFCUR
+ shift: 17
+ - name: LXFOBOOST
+ shift: 13
+ values:
+ - {name: 70PCENT, value: 0}
+ - {name: 100PCENT, value: 1}
+ - name: LFXOMODE
+ shift: 11
+ length: 2
+ values:
+ - {name: XTAL, value: 0}
+ - {name: BUFEXTCLK, value: 1}
+ - {name: DIGEXTCLK, value: 2}
+ - name: HFXOTIMEOUT
+ shift: 9
+ length: 2
+ values:
+ - {name: 8CYCLES, value: 0}
+ - {name: 256CYCLES, value: 1}
+ - {name: 1KCYCLES, value: 2}
+ - {name: 16KCYCLES, value: 3}
+ - name: HFXOGLITCHDETEN
+ shift: 7
+ - name: HFXOBUFCUR
+ shift: 5
+ length: 2
+ type: undocumented
+ - name: HFXOBOOST
+ shift: 2
+ length: 2
+ values:
+ - {name: 50PCENT, value: 0}
+ - {name: 70PCENT, value: 1}
+ - {name: 80PCENT, value: 2}
+ - {name: 100PCENT, value: 3}
+ - name: HFXOMODE
+ shift: 0
+ length: 2
+ values:
+ - {name: XTAL, value: 0}
+ - {name: BUFEXTCLK, value: 1}
+ - {name: DIGEXTCLK, value: 2}
+ - name: HFCORECLKDIV
+ offset: 0x004
+ definition_baserefext: ".5.2"
+ values: &HFCORECLKDIV_values
+ - {value: 0, name: HFCLK}
+ - {value: 1, name: HFCLK2}
+ - {value: 2, name: HFCLK4}
+ - {value: 3, name: HFCLK8}
+ - {value: 4, name: HFCLK16}
+ - {value: 5, name: HFCLK32}
+ - {value: 6, name: HFCLK64}
+ - {value: 7, name: HFCLK128}
+ - {value: 8, name: HFCLK256}
+ - {value: 9, name: HFCLK512}
+ - name: HFPERCLKDIV
+ offset: 0x008
+ definition_baserefext: ".5.3"
+ fields:
+ - name: HFPERCLKEN
+ shift: 8
+ - name: HFPERCLKDIV
+ shift: 0
+ length: 3
+ # not using generically named values here due to different register structure
+ values: *HFCORECLKDIV_values
+ - name: HFRCOCTRL
+ offset: 0x00c
+ definition_baserefext: ".5.4"
+ fields:
+ - name: SUDELAY
+ shift: 12
+ length: 5
+ type: undocumented
+ - name: BAND
+ shift: 8
+ length: 3
+ values:
+ - {value: 0, name: 1MHZ}
+ - {value: 1, name: 7MHZ}
+ - {value: 2, name: 11MHZ}
+ - {value: 3, name: 14MHZ}
+ - {value: 4, name: 21MHZ}
+ - {value: 5, name: 28MHZ}
+ - name: TUNING
+ shift: 0
+ length: 8
+ type: uint
+ - name: LFRCOCTRL
+ offset: 0x010
+ definition_baserefext: ".5.5"
+ length: 7
+ - name: AUXHFRCOCTRL
+ offset: 0x014
+ definition_baserefext: ".5.6"
+ fields:
+ - name: BAND
+ shift: 8
+ length: 3
+ values:
+ - {value: 0, name: 14MHZ}
+ - {value: 1, name: 11MHZ}
+ - {value: 2, name: 7MHZ}
+ - {value: 3, name: 1MHZ}
+ - {value: 6, name: 28MHZ}
+ - {value: 7, name: 21MHZ}
+ - name: TUNING
+ shift: 0
+ length: 8
+ type: uint
+ - name: CALCTRL
+ offset: 0x018
+ definition_baserefext: ".6.7"
+ fields:
+ - name: CONT
+ shift: 6
+ - name: DOWNSEL
+ shift: 3
+ length: 3
+ values:
+ - {value: 0, name: HFCLK}
+ - {value: 1, name: HFXO}
+ - {value: 2, name: LFXO}
+ - {value: 3, name: HFRCO}
+ - {value: 4, name: LFRCO}
+ - {value: 5, name: AUXHFRCO}
+ - name: UPSEL
+ shift: 0
+ length: 3
+ values:
+ - {value: 0, name: HFXO}
+ - {value: 1, name: LFXO}
+ - {value: 2, name: HFRCO}
+ - {value: 3, name: LFRCO}
+ - {value: 4, name: AUXHFRCO}
+ - name: CALCNT
+ offset: 0x01c
+ definition_baserefext: ".5.8"
+ length: 19
+ - name: OSCENCMD
+ offset: 0x020
+ definition_baserefext: ".5.9"
+ fields:
+ - {name: LFXODIS, shift: 9}
+ - {name: LFXOEN, shift: 8}
+ - {name: LFRCODIS, shift: 7}
+ - {name: LFRCOEN, shift: 6}
+ - {name: AUXHFRCODIS, shift: 5}
+ - {name: AUXHFRCOEN, shift: 4}
+ - {name: HFXODIS, shift: 3}
+ - {name: HFXOEN, shift: 2}
+ - {name: HFRCODIS, shift: 1}
+ - {name: HFRCOEN, shift: 0}
+ - name: CMD
+ offset: 0x024
+ definition_baserefext: ".5.10"
+ fields:
+ - name: CALSTOP
+ shift: 4
+ - name: CALSTART
+ shift: 3
+ - name: HFCLKSEL
+ shift: 0
+ length: 3
+ values:
+ - {value: 1, name: HFRCO}
+ - {value: 2, name: HFXO}
+ - {value: 3, name: LFRCO}
+ - {value: 4, name: LFXO}
+ - name: LFCLKSEL
+ offset: 0x028
+ definition_baserefext: ".5.11"
+ fields:
+ - name: LFBE
+ shift: 20
+ values: &LFCLKSEL_LFBE
+ - {value: 0, name: DISABLED}
+ - {value: 1, name: ULFRCO}
+ - name: LFAE
+ shift: 16
+ values: *LFCLKSEL_LFBE
+ - name: LFB
+ shift: 2
+ length: 2
+ values: &LFCLKSEL_LFB
+ - {value: 0, name: DISABLED}
+ - {value: 1, name: LFRCO}
+ - {value: 2, name: LFXO}
+ - {value: 3, name: HFCORECLKLEDIV2}
+ - name: LFA
+ shift: 0
+ length: 2
+ values: *LFCLKSEL_LFB
+ - name: STATUS
+ offset: 0x02c
+ definition_baserefext: ".5.12"
+ fields:
+ - {name: CALBSY, shift: 14}
+ - {name: LFXOSEL, shift: 13}
+ - {name: LFRCOSEL, shift: 12}
+ - {name: HFXOSEL, shift: 11}
+ - {name: HFRCOSEL, shift: 10}
+ - {name: LFXORDY, shift: 9}
+ - {name: LFXOENS, shift: 8}
+ - {name: LFRCORDY, shift: 7}
+ - {name: LFRCOENS, shift: 6}
+ - {name: AUXHFRCORDY, shift: 5}
+ - {name: AUXHFRCOENS, shift: 4}
+ - {name: HFXORDY, shift: 3}
+ - {name: HFXOENS, shift: 2}
+ - {name: HFRCORDY, shift: 1}
+ - {name: HFRCOENS, shift: 0}
+ - name: IF
+ offset: 0x030
+ definition_baserefext: ".5.13"
+ #fields: I
+ - name: IFS
+ offset: 0x034
+ definition_baserefext: ".5.14"
+ #fields: I
+ - name: IFC
+ offset: 0x038
+ definition_baserefext: ".5.15"
+ #fields: I
+ - name: IEN
+ offset: 0x03c
+ definition_baserefext: ".5.16"
+ #fields: I
+ - name: HFCORECLKEN0
+ offset: 0x040
+ definition_baserefext: ".5.17"
+ fields:
+ - {name: LE, shift: 2}
+ - {name: DMA, shift: 1}
+ - {name: AES, shift: 0}
+ - name: HFPERCLKEN0
+ offset: 0x044
+ definition_baserefext: ".5.18"
+ fields:
+ - {name: I2C0, shift: 11}
+ - {name: DAC0, shift: 10}
+ - {name: ADC0, shift: 9}
+ - {name: PRS, shift: 8}
+ - {name: VCMP, shift: 7}
+ - {name: GPIO, shift: 6}
+ - {name: TIMER1, shift: 5}
+ - {name: TIMER0, shift: 4}
+ - {name: USART1, shift: 3}
+ - {name: USART0, shift: 2}
+ - {name: ACMP1, shift: 1}
+ - {name: ACMP0, shift: 0}
+ - name: SYNCBUSY
+ offset: 0x050
+ definition_baserefext: ".5.19"
+ fields:
+ - {name: LFBPRESC0, shift: 6}
+ - {name: LFBCLKEN0, shift: 4}
+ - {name: LFAPRESC0, shift: 2}
+ - {name: LFACLKEN0, shift: 0}
+ - name: FREEZE
+ offset: 0x054
+ definition_baserefext: ".5.20"
+ fields:
+ - name: REGFREEZE
+ shift: 0
+ values:
+ - {value: 0, name: UPDATE}
+ - {value: 1, name: FREEZE}
+ - name: LFACLKEN0
+ offset: 0x058
+ definition_baserefext: ".5.21"
+ fields:
+ - {name: LCD, shift: 3}
+ - {name: LETIMER0, shift: 2}
+ - {name: RTC, shift: 1}
+ - {name: LESENSE, shift: 0}
+ - name: LFBCLKEN0
+ offset: 0x060
+ definition_baserefext: ".5.22"
+ fields:
+ - {name: LEUART0, shift: 0}
+ - name: LFAPRESC0
+ offset: 0x068
+ definition_baserefext: ".5.23"
+ fields:
+ - name: LCD
+ shift: 12
+ length: 2
+ values:
+ - {value: 0, name: DIV16}
+ - {value: 1, name: DIV32}
+ - {value: 2, name: DIV64}
+ - {value: 3, name: DIV128}
+ - name: LETIMER0
+ shift: 8
+ length: 4
+ values: &LFAPRESC0_LETIMER0_values
+ - {value: 0, name: DIV1}
+ - {value: 1, name: DIV2}
+ - {value: 2, name: DIV4}
+ - {value: 3, name: DIV8}
+ - {value: 4, name: DIV16}
+ - {value: 5, name: DIV32}
+ - {value: 6, name: DIV64}
+ - {value: 7, name: DIV128}
+ - {value: 8, name: DIV256}
+ - {value: 9, name: DIV512}
+ - {value: 10, name: DIV1024}
+ - {value: 11, name: DIV2048}
+ - {value: 12, name: DIV4096}
+ - {value: 13, name: DIV8192}
+ - {value: 14, name: DIV16384}
+ - {value: 15, name: DIV32768}
+ - name: RTC
+ shift: 4
+ length: 4
+ values: *LFAPRESC0_LETIMER0_values
+ - name: LESENSE
+ shift: 0
+ length: 2
+ values:
+ - {value: 0, name: DIV1}
+ - {value: 1, name: DIV2}
+ - {value: 2, name: DIV4}
+ - {value: 3, name: DIV8}
+ - name: LFBPRESC0
+ offset: 0x070
+ definition_baserefext: ".5.24"
+ fields:
+ - name: LEUART0
+ shift: 0
+ length: 2
+ values:
+ - {value: 0, name: DIV1}
+ - {value: 1, name: DIV2}
+ - {value: 2, name: DIV4}
+ - {value: 3, name: DIV8}
+ - name: PCNTCTRL
+ offset: 0x078
+ definition_baserefext: ".5.25"
+ fields:
+ - name: PCNT0CLKSEL
+ shift: 1
+ values:
+ - {value: 0, name: LFACLK}
+ - {value: 1, name: PCNT0S0}
+ - name: PCNT0CLKEN
+ shift: 0
+ - name: LCDCTRL
+ offset: 0x07c
+ definition_baserefext: ".5.26"
+ fields:
+ - name: VBFDIV
+ shift: 4
+ length: 3
+ values:
+ - {value: 0, name: DIV1}
+ - {value: 1, name: DIV2}
+ - {value: 2, name: DIV4}
+ - {value: 3, name: DIV8}
+ - {value: 4, name: DIV16}
+ - {value: 5, name: DIV32}
+ - {value: 6, name: DIV64}
+ - {value: 7, name: DIV128}
+ - name: VBOOSTEN
+ shift: 3
+ - name: FDIV
+ shift: 0
+ length: 3
+ type: uint
+ - name: ROUTE
+ offset: 0x080
+ definition_baserefext: ".5.27"
+ fields:
+ - name: LOCATION
+ shift: 4
+ length: 3
+ values:
+ - {value: 0, name: LOC0}
+ - {value: 1, name: LOC1}
+ - name: CLKOUT1PEN
+ shift: 1
+ - name: CLKOUT0PEN
+ shift: 0
+ - name: LOCK
+ offset: 0x084
+ definition_baserefext: ".5.28"
+ length: 16
+ values:
+ - {name: IS_UNLOCKED, value: 0}
+ - {name: IS_LOCKED, value: 1}
+ - {name: SET_LOCKED, value: 0}
+ - {name: SET_UNLOCKED, value: "0x580E"}