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"}