# Beetle MCU clock control driver config

# Copyright (c) 2016 Linaro Limited.
# SPDX-License-Identifier: Apache-2.0

if SOC_FAMILY_ARM

menuconfig CLOCK_CONTROL_BEETLE
	bool "BEETLE Clock Control"
	default y
	depends on DT_HAS_ARM_BEETLE_SYSCON_ENABLED
	help
	  Enable driver for Reset & Clock Control subsystem found
	  in STM32F4 family of MCUs

if CLOCK_CONTROL_BEETLE

config CLOCK_CONTROL_BEETLE_ENABLE_PLL
	bool "PLL on Beetle"
	depends on SOC_SERIES_BEETLE
	help
	  Enable PLL on Beetle.

	  Select n if not sure.

endif # CLOCK_CONTROL_BEETLE

endif # SOC_FAMILY_ARM
