438 lines
13 KiB
YAML
438 lines
13 KiB
YAML
copyright: "2012 chrysn <chrysn@fsfe.org>"
|
|
license: lgpl-3+
|
|
ingroup: EFM32TG
|
|
shortdocname: EFM32TG_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"}
|