# Renesas FSP HAL config

# Copyright (c) 2024-2025 Renesas Electronics Corporation
# SPDX-License-Identifier: Apache-2.0

config HAS_RENESAS_RA_FSP
	bool
	help
	  Enable Renesas RA FSP support

config HAS_RENESAS_RZ_FSP
	bool
	help
	  Enable Renesas RZ FSP support

if HAS_RENESAS_RA_FSP

config USE_RA_FSP_SCI_B_UART
	bool
	help
	  Enable RA FSP SCI-B UART driver

config USE_RA_FSP_SPI
	bool
	help
	  Enable RA FSP SPI driver

config USE_RA_FSP_I3C
	bool
	help
	  Enable RA FSP I3C driver

config USE_RA_FSP_DMA
	bool
	help
	  Enable RA FSP DMA driver

config USE_RA_FSP_DTC
	bool
	help
	  Enable RA FSP DTC driver

config USE_RA_FSP_I2C_IIC
	bool
	help
	  Enable Renesas RA I2C IIC Master driver

config USE_RA_FSP_SCI_B_I2C
	bool
	help
	  Enable RA FSP SCI-B I2C driver

config USE_RA_FSP_SCI_UART
	bool
	help
	  Enable RA FSP SCI UART driver

config USE_RA_FSP_ADC
	bool
	help
	  Enable RA FSP ADC driver

config USE_RA_FSP_SCE
	bool
	help
	  Enable RA FSP SCE driver

if USE_RA_FSP_SCE

config HAS_RENESAS_RA_RSIP_E51A
	bool
	default y
	depends on DT_HAS_RENESAS_RA_RSIP_E51A_TRNG_ENABLED
	help
	  Includes RSIP-E51A implementation for SCE driver

config HAS_RENESAS_RA_SCE9
	bool
	default y
	depends on DT_HAS_RENESAS_RA_SCE9_RNG_ENABLED
	help
	  Includes SCE9 implementation for SCE driver

config HAS_RENESAS_RA_SCE7
	bool
	default y
	depends on DT_HAS_RENESAS_RA_SCE7_RNG_ENABLED
	help
	  Includes SCE7 implementation for SCE driver

config HAS_RENESAS_RA_SCE5
	bool
	default y
	depends on DT_HAS_RENESAS_RA_SCE5_RNG_ENABLED
	help
	  Includes SCE5 implementation for SCE driver

config HAS_RENESAS_RA_TRNG
	bool
	default y
	depends on DT_HAS_RENESAS_RA_TRNG_ENABLED
	help
	  Includes TRNG implementation for SCE driver

endif

config USE_RA_FSP_SPI_B
	bool
	help
	  Enable RA FSP SPI-B driver

config USE_RA_FSP_FLASH_HP
	bool
	help
	  Enable RA FSP FLASH HP driver

config USE_RA_FSP_GPT
	bool
	help
	  Enable RA FSP GPT driver

config USE_RA_FSP_AGT
	bool
	help
	  Enable RA FSP AGT driver

config USE_RA_FSP_CANFD
	bool
	help
	  Enable RA FSP CANFD driver

config USE_RA_FSP_ETHER_PHY
	bool
	help
	  Enable RA FSP Ethernet phy driver

config USE_RA_FSP_ETHER
	bool
	help
	  Enable RA FSP Ethernet driver

config USE_RA_FSP_USB_DEVICE
	bool
	help
	  Enable RA FSP USB Device Controller driver

config USE_RA_FSP_SDRAM
	bool
	help
	  Enable RA FSP SDRAM support

config USE_RA_FSP_DISPLAY
	bool
	help
	  Enable RA FSP Display driver

config USE_RA_FSP_MIPI_DSI
	bool
	help
	  Enable RA FSP MIPI DSI driver

config USE_RA_FSP_SDHI
	bool
	help
	  Enable RA FSP SDHI driver

config USE_RA_FSP_CRC
	bool
	help
	  Enable RA FSP CRC driver

config USE_RA_FSP_DAC
	bool
	help
	  Enable RA FSP DAC driver

config USE_RA_FSP_ACMPHS
	bool
	help
	  Enable RA FSP ACMPHS driver

config USE_RA_FSP_WDT
	bool
	help
	  Enable RA FSP WDT driver

config USE_RA_FSP_ULPT
	bool
	help
	  Enable RA FSP ULPT driver

config USE_RA_FSP_LPM
	bool
	default y
	depends on PM
	help
	  Enable RA FSP LPM driver

config USE_RA_FSP_OSPI_B_NOR_FLASH
	bool
	help
	  Enable RA FSP Octal-SPI driver

config USE_RA_FSP_ELC
	bool
	help
	  Enable RA FSP ELC driver

config USE_RA_FSP_SSI
	bool
	help
	  Enable RA FSP I2S SSI driver

config USE_RA_FSP_IOPORT
	bool
	help
	  Enable RA FSP IOPORT driver

config USE_RA_FSP_CTSU
	bool
	select USE_RA_FSP_IOPORT
	help
	  Enable RA FSP CTSU driver

config USE_RA_FSP_TOUCH
	bool
	depends on USE_RA_FSP_CTSU
	help
	  Enable RA FSP TOUCH library

config USE_RA_FSP_QSPI_NOR_FLASH
	bool
	help
	  Enable RA FSP Quad-SPI driver

config USE_RA_FSP_CEU
	bool
	help
	  Enable RA FSP CEU driver

config USE_RA_FSP_IPC
	bool
	help
	  Enable RA FSP IPC driver

endif # HAS_RENESAS_RA_FSP

if HAS_RENESAS_RZ_FSP

config USE_RZ_FSP_ADC
	bool
	help
	  Enable RZ FSP ADC driver

config USE_RZ_FSP_IOPORT
	bool
	help
	  Enable RZ FSP IOPORT driver

config USE_RZ_FSP_SCIF_UART
	bool
	help
	  Enable RZ FSP SCIF UART driver

config USE_RZ_FSP_IIC_MASTER
	bool
	help
	  Enable RZ FSP IIC MASTER driver

config USE_RZ_FSP_RIIC_MASTER
	bool
	help
	  Enable RZ FSP RIIC MASTER driver

config USE_RZ_FSP_GTM
	bool
	help
	  Enable RZ FSP GTM driver

config USE_RZ_FSP_GPT
	bool
	help
	  Enable RZ FSP GPT driver

config USE_RZ_FSP_EXT_IRQ
	bool
	help
	  Enable RZ FSP External IRQ driver

config USE_RZ_FSP_DMA
	bool
	help
	  Enable RZ FSP DMA driver

config USE_RZ_FSP_MHU
	bool
	help
	  Enable RZ FSP MHU driver

config USE_RZ_FSP_CANFD
	bool
	help
	  Enable RZ FSP CANFD driver

config USE_RZ_FSP_CPG
	bool
	help
	  Enable RZ FSP CLOCK CONTROL driver

config USE_RZ_FSP_CGC
	bool
	help
	  Enable RZ FSP CGC driver

config USE_RZ_FSP_RSPI_SPI
	bool
	help
	  Enable RZ FSP RSPI driver

config USE_RZ_FSP_SCI_UART
	bool
	help
	  Enable RZ FSP SCI UART driver

config USE_RZ_FSP_MTU
	bool
	help
	  Enable RZ FSP MTU driver

config USE_RZ_FSP_CMTW
	bool
	help
	  Enable RZ FSP CMTW driver

endif

config HAS_RENESAS_RX_RDP
	bool
	help
	  Enable Renesas RX RDP support

if HAS_RENESAS_RX_RDP

config USE_RX_RDP_MPC
	bool
	help
	  Enable RX RDP MPC driver

config USE_RX_RDP_GPIO
	bool
	help
	  Enable RX RDP MPC driver

config USE_RX_RDP_SCI_UART
	bool
	help
	  Enable RX RDP SCI UART driver

config USE_RX_RDP_RSPI
	bool
	help
	  Enable RX RDP RSPI driver

config USE_RX_RDP_I2C
	bool
	help
	  Enable RX RDP I2C driver

config USE_RX_RDP_FLASH
	bool
	help
	  Enable RX RDP Flash driver

config USE_RX_RDP_ADC
	bool
	help
	  Enable RX RDP ADC driver

config USE_RX_RDP_IWDT
	bool
	help
	  Enable RX RDP IWDT driver

endif # HAS_RENESAS_RX_RDP
