# Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd.
# SPDX-License-Identifier: Apache-2.0

config SOC_SERIES_ESP32C3
	select RISCV
	select RISCV_GP
	select DYNAMIC_INTERRUPTS
	select CLOCK_CONTROL
	select PINCTRL
	select RISCV_ISA_RV32I
	select RISCV_ISA_EXT_M
	select RISCV_ISA_EXT_C
	select RISCV_ISA_EXT_ZICSR
	select HAS_ESPRESSIF_HAL
	select HAS_PM
	select HAS_POWEROFF

if SOC_SERIES_ESP32C3


config MAC_BB_PD
	bool "Power down MAC and baseband of Wi-Fi and Bluetooth when PHY is disabled"
	depends on SOC_SERIES_ESP32C3 && TICKLESS_KERNEL
	default n
	help
	  If enabled, the MAC and baseband of Wi-Fi and Bluetooth will be powered
	  down when PHY is disabled. Enabling this setting reduces power consumption
	  by a small amount but increases RAM use by approximately 4 KB(Wi-Fi only),
	  2 KB(Bluetooth only) or 5.3 KB(Wi-Fi + Bluetooth).

endif # SOC_SERIES_ESP32C3
