136 lines
3.6 KiB
Plaintext
136 lines
3.6 KiB
Plaintext
# Kconfig - Clock controller driver configuration options
|
|
#
|
|
# Copyright (c) 2016 Nordic Semiconductor ASA
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
config CLOCK_CONTROL_NRF_FORCE_ALT
|
|
bool
|
|
depends on SOC_COMPATIBLE_NRF
|
|
help
|
|
This option can be enabled to force an alternative implementation
|
|
of the clock control driver.
|
|
|
|
if !CLOCK_CONTROL_NRF_FORCE_ALT
|
|
|
|
menuconfig CLOCK_CONTROL_NRF
|
|
bool "NRF Clock controller support"
|
|
depends on SOC_COMPATIBLE_NRF
|
|
default y
|
|
help
|
|
Enable support for the Nordic Semiconductor nRFxx series SoC clock
|
|
driver.
|
|
|
|
if CLOCK_CONTROL_NRF
|
|
|
|
choice CLOCK_CONTROL_NRF_SOURCE
|
|
prompt "32KHz clock source"
|
|
default CLOCK_CONTROL_NRF_K32SRC_XTAL
|
|
|
|
config CLOCK_CONTROL_NRF_K32SRC_RC
|
|
bool "RC Oscillator"
|
|
|
|
config CLOCK_CONTROL_NRF_K32SRC_XTAL
|
|
bool "Crystal Oscillator"
|
|
|
|
config CLOCK_CONTROL_NRF_K32SRC_SYNTH
|
|
depends on !SOC_SERIES_NRF91X
|
|
bool "Synthesized from HFCLK"
|
|
|
|
config CLOCK_CONTROL_NRF_K32SRC_EXT_LOW_SWING
|
|
depends on SOC_SERIES_NRF52X
|
|
bool "External low swing"
|
|
|
|
config CLOCK_CONTROL_NRF_K32SRC_EXT_FULL_SWING
|
|
depends on SOC_SERIES_NRF52X
|
|
bool "External full swing"
|
|
|
|
endchoice
|
|
|
|
config CLOCK_CONTROL_NRF_K32SRC_RC_CALIBRATION
|
|
bool
|
|
depends on !SOC_SERIES_NRF91X
|
|
default y if CLOCK_CONTROL_NRF_K32SRC_RC
|
|
|
|
if CLOCK_CONTROL_NRF_K32SRC_RC_CALIBRATION
|
|
|
|
config CLOCK_CONTROL_NRF_CALIBRATION_PERIOD
|
|
int "Calibration opportunity period (in 250ms units)"
|
|
default 16
|
|
range 1 127
|
|
help
|
|
Periodically, calibration action is performed. Action includes
|
|
temperature measurement followed by clock calibration. Calibration may
|
|
be skipped if temperature change (compared to measurement of previous
|
|
calibration) did not exceeded CLOCK_CONTROL_NRF_CALIBRATION_TEMP_DIFF
|
|
and number of consecutive skips did not exceeded
|
|
CLOCK_CONTROL_NRF_CALIBRATION_MAX_SKIP.
|
|
|
|
config CLOCK_CONTROL_NRF_CALIBRATION_MAX_SKIP
|
|
int "Maximum number of calibration skips"
|
|
default 1
|
|
range 0 255
|
|
help
|
|
Calibration is skipped when temperature change since last calibration
|
|
was less than configured threshold. If number of consecutive skips
|
|
reaches configured value then calibration is performed
|
|
unconditionally. Set to 0 to perform calibration periodically
|
|
regardless of temperature change.
|
|
|
|
config CLOCK_CONTROL_NRF_CALIBRATION_TEMP_DIFF
|
|
int "Temperature change triggering calibration (in 0.25 degree units)"
|
|
default 2
|
|
help
|
|
Calibration is triggered if the temperature has changed by at least
|
|
this amount since the last calibration.
|
|
|
|
config CLOCK_CONTROL_NRF_CALIBRATION_DEBUG
|
|
bool "Calibration intrumentation"
|
|
help
|
|
Enables retrieving debug information like number of performed or
|
|
skipped calibrations.
|
|
|
|
config CLOCK_CONTROL_NRF_USES_TEMP_SENSOR
|
|
bool
|
|
default y if CLOCK_CONTROL_NRF_CALIBRATION_MAX_SKIP > 0 && \
|
|
CLOCK_CONTROL_NRF_CALIBRATION_TEMP_DIFF > 0
|
|
select TEMP_NRF5
|
|
select SENSOR
|
|
|
|
endif # CLOCK_CONTROL_NRF_K32SRC_RC_CALIBRATION
|
|
|
|
choice CLOCK_CONTROL_NRF_ACCURACY
|
|
prompt "32KHz clock accuracy"
|
|
default CLOCK_CONTROL_NRF_K32SRC_500PPM if CLOCK_CONTROL_NRF_K32SRC_RC
|
|
default CLOCK_CONTROL_NRF_K32SRC_20PPM
|
|
|
|
config CLOCK_CONTROL_NRF_K32SRC_500PPM
|
|
bool "251 ppm to 500 ppm"
|
|
|
|
config CLOCK_CONTROL_NRF_K32SRC_250PPM
|
|
bool "151 ppm to 250 ppm"
|
|
|
|
config CLOCK_CONTROL_NRF_K32SRC_150PPM
|
|
bool "101 ppm to 150 ppm"
|
|
|
|
config CLOCK_CONTROL_NRF_K32SRC_100PPM
|
|
bool "76 ppm to 100 ppm"
|
|
|
|
config CLOCK_CONTROL_NRF_K32SRC_75PPM
|
|
bool "51 ppm to 75 ppm"
|
|
|
|
config CLOCK_CONTROL_NRF_K32SRC_50PPM
|
|
bool "31 ppm to 50 ppm"
|
|
|
|
config CLOCK_CONTROL_NRF_K32SRC_30PPM
|
|
bool "21 ppm to 30 ppm"
|
|
|
|
config CLOCK_CONTROL_NRF_K32SRC_20PPM
|
|
bool "0 ppm to 20 ppm"
|
|
|
|
endchoice
|
|
|
|
endif # CLOCK_CONTROL_NRF
|
|
|
|
endif #!CLOCK_CONTROL_NRF_FORCE_ALT
|