# 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"
	depends on SOC_SERIES_BEETLE
	default y if SOC_SERIES_BEETLE
	help
	  Enable driver for Reset & Clock Control subsystem found
	  in STM32F4 family of MCUs

config ARM_CLOCK_CONTROL_DEV_NAME
	string "Clock Config Device name"
	default "CLOCK_CONTROL_0"
	depends on CLOCK_CONTROL_BEETLE
	help
	  Configure Clock Config Device name

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