Boot Linux faster!

Check our new training course

Boot Linux faster!

Check our new training course
and Creative Commons CC-BY-SA
lecture and lab materials

Bootlin logo

Elixir Cross Referencer

# 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.

menuconfig CLOCK_CONTROL_NRF
	bool "NRF Clock controller support"
	depends on SOC_COMPATIBLE_NRF
	depends on !CLOCK_CONTROL_NRF_FORCE_ALT
	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 "Enable LF clock calibration"
	depends on !SOC_SERIES_NRF91X
	default n if BOARD_NRF5340PDK_NRF5340_CPUAPP || BOARD_NRF5340PDK_NRF5340_CPUAPPNS
	default y if CLOCK_CONTROL_NRF_K32SRC_RC
	help
	  If calibration is disabled when RC is used for low frequency clock then
	  accuracy of the low frequency clock will degrade. Disable on your own
	  risk.

if CLOCK_CONTROL_NRF_K32SRC_RC_CALIBRATION

config CLOCK_CONTROL_NRF_CALIBRATION_PERIOD
	int "Calibration opportunity period in milliseconds"
	default 4000
	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 instrumentation"
	help
	  Enables retrieving debug information like number of performed or
	  skipped calibrations.

config CLOCK_CONTROL_NRF_USES_TEMP_SENSOR
	bool
	depends on HAS_HW_NRF_TEMP
	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