# 1-Wire configuration options

# Copyright (c) 2022 Thomas Stranger
# SPDX-License-Identifier: Apache-2.0

menuconfig W1
	bool
	prompt "1-Wire bus drivers"
	select CRC
	help
	  Enable 1-Wire Drivers

if W1

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

config W1_INIT_PRIORITY
	int
	default 65
	prompt "Init priority"
	help
	  1-Wire device driver initialization priority.

config W1_SHELL
	bool "1-Wire Shell"
	depends on SHELL
	help
	  Enable 1-Wire Shell for testing.

config W1_SHELL_BUFFER_SIZE
	int
	default 16
	depends on W1_SHELL
	prompt "1-Wire Shell buffer size"
	help
	  Size of the send and receive buffer in bytes.
	  To be able to write more than 8 bytes make
	  sure to also increase SHELL_ARGC_MAX accordingly.

rsource "Kconfig.ds2482-800"
rsource "Kconfig.ds2484"
rsource "Kconfig.ds2477_85"
rsource "Kconfig.ds2485"
rsource "Kconfig.test"
rsource "Kconfig.zephyr_gpio"
rsource "Kconfig.zephyr_serial"

config W1_NET
	bool "1-Wire network layer"
	default y
	help
	  Enable 1-wire network layer

config W1_NET_FORCE_MULTIDROP_ADDRESSING
	bool "Force 1-Wire multidrop addressing"
	depends on W1_NET
	help
	  This option will ignore the number of 1-Wire
	  slave devices defined in the DTS. Specifically,
	  this option avoids the SKIP ROM command,
	  which is otherwise used in case of a single
	  1-Wire slave on the bus. In most cases, enabling
	  this option is not needed, yet it is essential
	  if multiple 1-Wire devices unspecified in the
	  DTS are interfaced.

endif # W1
