# SMBus configuration options

# Copyright (c) 2022 Intel Corporation
# SPDX-License-Identifier: Apache-2.0

menuconfig SMBUS
	bool "System Management Bus (SMBus) drivers"
	help
	  Enable SMBus Driver Configuration

if SMBUS

config SMBUS_SHELL
	bool "SMBus Shell"
	depends on SHELL
	help
	  Enable SMBus Shell.

config SMBUS_STATS
	bool "SMBus device Stats"
	depends on STATS
	help
	  Enable SMBus Stats.

config SMBUS_INIT_PRIORITY
	int "Init priority"
	default KERNEL_INIT_PRIORITY_DEVICE
	help
	  SMBus device driver initialization priority.

config SMBUS_SOFT_PEC
	bool "SMBus software PEC support"
	select CRC
	help
	  Enable software Packet Error Checking (PEC) support.

	  These generic functions can be used by SMBus drivers for transceivers that do not support
	  PEC in hardware.

module = SMBUS
module-str = smbus
source "subsys/logging/Kconfig.template.log_config"

config SMBUS_INTEL_PCH
	bool "SMBus Intel PCH driver"
	default y
	depends on DT_HAS_INTEL_PCH_SMBUS_ENABLED
	select PCIE
	select DYNAMIC_INTERRUPTS
	help
	  Enable Intel Platform Controller Hub (PCH) SMBus driver.

if SMBUS_INTEL_PCH

choice SMBUS_INTEL_PCH_ACCESS
	bool "SMBus register access mode"
	default SMBUS_INTEL_PCH_ACCESS_IO
	help
	  Default PCH register access mode. Set default access IO so
	  that both Qemu Q35 and Intel hardware are supported.

config SMBUS_INTEL_PCH_ACCESS_IO
	bool "I/O PCH SMBus Register Access Mode"
	help
	  Access PCH SMBus registers through I/O space.

config SMBUS_INTEL_PCH_ACCESS_MMIO
	bool "MMIO PCH SMBus Register Access Mode"
	help
	  Access PCH SMBus registers though MMIO space.

endchoice

config SMBUS_INTEL_PCH_HOST_NOTIFY
	bool "SMBus Intel PCH Host Notify support"
	default y
	help
	  Support Host Notify from peripheral devices.

config SMBUS_INTEL_PCH_SMBALERT
	bool "SMBus Intel PCH SMBALERT signal support"
	default y
	help
	  Support SMBALERT signal from peripheral devices.

endif # SMBUS_INTEL_PCH

menuconfig SMBUS_STM32
	bool "STM32 SMBus driver"
	default y
	depends on DT_HAS_ST_STM32_SMBUS_ENABLED
	depends on I2C_STM32
	select PINCTRL
	select SMBUS_SOFT_PEC
	help
	  Enable STM32 SMBus driver.

if SMBUS_STM32

config SMBUS_STM32_SMBALERT
	bool "SMBus STM32 SMBALERT signal support"
	default y
	help
	  Support SMBALERT signal from peripheral devices.

endif # SMBUS_STM32

endif # SMBUS
