# Copyright (c) 2022 Benjamin Björnsson <benjamin.bjornsson@gmail.com>.
# SPDX-License-Identifier: Apache-2.0

CONFIG_SOC_SERIES_STM32H7X=y
CONFIG_SOC_STM32H747XX=y

# Board config should be specified since there are 2 possible targets
CONFIG_BOARD_ARDUINO_PORTENTA_H7_M7=y

# Enable the internal SMPS regulator
CONFIG_POWER_SUPPLY_DIRECT_SMPS=y

# 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 pin controller
CONFIG_PINCTRL=y

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

# Disable following to assign serial ports to m4 core

# Enable uart driver
CONFIG_SERIAL=y

# Enable console
CONFIG_CONSOLE=y
CONFIG_UART_CONSOLE=y

# Enable regulator
CONFIG_REGULATOR=y
CONFIG_REGULATOR_FIXED=y
