# Kconfig.pcal9535a - PCAL9535A GPIO configuration options
#
#
# Copyright (c) 2016 Intel Corporation
#
# SPDX-License-Identifier: Apache-2.0
#

menuconfig GPIO_PCAL9535A
	bool "PCAL9535A I2C-based GPIO chip"
	depends on GPIO && I2C
	default n
	help
	  Enable driver for PCAL9535A I2C-based GPIO chip.

if GPIO_PCAL9535A

config SYS_LOG_GPIO_PCAL9535A_LEVEL
	int
	prompt "PCAL9535A driver log level"
	depends on GPIO_PCAL9535A && SYS_LOG
	default 0
	help
	Sets log level for clock PCAL9535A driver

	Levels are:

	- 0 OFF, do not write

	- 1 ERROR, only write SYS_LOG_ERR

	- 2 WARNING, write SYS_LOG_WRN in addition to previous level

	- 3 INFO, write SYS_LOG_INF in addition to previous levels

	- 4 DEBUG, write SYS_LOG_DBG in addition to previous levels

config GPIO_PCAL9535A_INIT_PRIORITY
	int
	default 70
	prompt "Init priority"
	help
	  Device driver initialization priority.

config GPIO_PCAL9535A_0
	bool "PCAL9535A GPIO chip #0"
	depends on GPIO_PCAL9535A
	default n
	help
	  Enable config options for the PCAL9535A I2C-based GPIO chip #0.

config GPIO_PCAL9535A_0_DEV_NAME
	string "PCAL9535A GPIO chip #0 Device Name"
	depends on GPIO_PCAL9535A_0
	default "GPIO_P0"
	help
	  Specify the device name for the PCAL9535A I2C-based GPIO chip #0.

config GPIO_PCAL9535A_0_I2C_ADDR
	hex "PCAL9535A GPIO chip #0 I2C slave address"
	depends on GPIO_PCAL9535A_0
	help
	  Specify the I2C slave address for the PCAL9535A I2C-based GPIO chip #0.

config GPIO_PCAL9535A_0_I2C_MASTER_DEV_NAME
	string "I2C Master where PCAL9535A GPIO chip #0 is connected"
	depends on GPIO_PCAL9535A_0
	default ""
	help
	  Specify the device name of the I2C master device to which this
	  PCAL9535A chip #0 is binded.

config GPIO_PCAL9535A_1
	bool "PCAL9535A GPIO chip #1"
	depends on GPIO_PCAL9535A
	default n
	help
	  Enable config options for the PCAL9535A I2C-based GPIO chip #1.

config GPIO_PCAL9535A_1_DEV_NAME
	string "PCAL9535A GPIO chip #1 Device Name"
	depends on GPIO_PCAL9535A_1
	default "GPIO_P1"
	help
	  Specify the device name for the PCAL9535A I2C-based GPIO chip #1.

config GPIO_PCAL9535A_1_I2C_ADDR
	hex "PCAL9535A GPIO chip #1 I2C slave address"
	depends on GPIO_PCAL9535A_1
	help
	  Specify the I2C slave address for the PCAL9535A I2C-based GPIO chip #1.

config GPIO_PCAL9535A_1_I2C_MASTER_DEV_NAME
	string "I2C Master where PCAL9535A GPIO chip #1 is connected"
	depends on GPIO_PCAL9535A_1
	default ""
	help
	  Specify the device name of the I2C master device to which this
	  PCAL9535A chip #1 is binded.

config GPIO_PCAL9535A_2
	bool "PCAL9535A GPIO chip #2"
	depends on GPIO_PCAL9535A
	default n
	help
	  Enable config options for the PCAL9535A I2C-based GPIO chip #2.

config GPIO_PCAL9535A_2_DEV_NAME
	string "PCAL9535A GPIO chip #2 Device Name"
	depends on GPIO_PCAL9535A_2
	default "GPIO_P2"
	help
	  Specify the device name for the PCAL9535A I2C-based GPIO chip #2.

config GPIO_PCAL9535A_2_I2C_ADDR
	hex "PCAL9535A GPIO chip #2 I2C slave address"
	depends on GPIO_PCAL9535A_2
	help
	  Specify the I2C slave address for the PCAL9535A I2C-based GPIO chip #2.

config GPIO_PCAL9535A_2_I2C_MASTER_DEV_NAME
	string "I2C Master where PCAL9535A GPIO chip #2 is connected"
	depends on GPIO_PCAL9535A_2
	default ""
	help
	  Specify the device name of the I2C master device to which this
	  PCAL9535A chip #2 is binded.

config GPIO_PCAL9535A_3
	bool "PCAL9535A GPIO chip #3"
	depends on GPIO_PCAL9535A
	default n
	help
	  Enable config options for the PCAL9535A I2C-based GPIO chip #3.

config GPIO_PCAL9535A_3_DEV_NAME
	string "PCAL9535A GPIO chip #3 Device Name"
	depends on GPIO_PCAL9535A_3
	default "GPIO_P3"
	help
	  Specify the device name for the PCAL9535A I2C-based GPIO chip #3.

config GPIO_PCAL9535A_3_I2C_ADDR
	hex "PCAL9535A GPIO chip #3 I2C slave address"
	depends on GPIO_PCAL9535A_3
	help
	  Specify the I2C slave address for the PCAL9535A I2C-based GPIO chip #3.

config GPIO_PCAL9535A_3_I2C_MASTER_DEV_NAME
	string "I2C Master where PCAL9535A GPIO chip #3 is connected"
	depends on GPIO_PCAL9535A_3
	default ""
	help
	  Specify the device name of the I2C master device to which this
	  PCAL9535A chip #3 is binded.

endif #GPIO_PCAL9535A
