# OTP driver configuration options

# Copyright (c) 2025 STMicroelectronics
# SPDX-License-Identifier: Apache-2.0

menuconfig OTP
	bool "One Time Programmable (OTP) drivers [EXPERIMENTAL]"
	select EXPERIMENTAL
	help
	  Enable support for hardware OTP. The OTP technology can be anything
	  from fuses to flash memory option bytes as long as it stays one time
	  programmable.

if OTP

module = OTP
module-str = otp

source "subsys/logging/Kconfig.template.log_config"

# zephyr-keep-sorted-start
source "drivers/otp/Kconfig.emu"
source "drivers/otp/Kconfig.mcux_ocotp"
source "drivers/otp/Kconfig.sifli"
source "drivers/otp/Kconfig.stm32"
# zephyr-keep-sorted-stop

config OTP_INIT_PRIORITY
	int "OTP init priority"
	default KERNEL_INIT_PRIORITY_DEVICE
	help
	  OTP device drivers initialization priority. This initialization
	  priority is used unless the driver implementation has its own
	  initialization priority.

config OTP_PROGRAM
	bool "Support OTP programming through Zephyr API"
	help
	  Allowing the programming of OTPs may cause irreversible damage
	  to a platform. Use it very carefully and at your own risk.

config OTP_SHELL
	bool "OTP shell"
	depends on SHELL
	help
	  Enable the OTP shell with One Time Programmable related commands.

if OTP_SHELL

config OTP_SHELL_BUFFER_SIZE
	int "OTP shell program buffer size"
	default 256
	help
	  Size of the buffer used for OTP program commands in the OTP shell.

endif # OTP_SHELL

endif # OTP
