# Copyright 2023 Google LLC
# SPDX-License-Identifier: Apache-2.0

# Disable the internal SMPS regulator
CONFIG_POWER_SUPPLY_DIRECT_SMPS=n

# Enable GPIO
CONFIG_GPIO=y

# Enable clocks
CONFIG_CLOCK_CONTROL=y

# Enable MPU
CONFIG_ARM_MPU=y

# Enable HW stack protection
CONFIG_HW_STACK_PROTECTION=y

# Enable uart driver
CONFIG_SERIAL=y

# Console
CONFIG_CONSOLE=y
CONFIG_UART_CONSOLE=y

# Enable pin controller
CONFIG_PINCTRL=y

# Use zephyr,code-partition as flash offset
CONFIG_USE_DT_CODE_PARTITION=y
