mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-08 14:13:53 +00:00
d0f8e97866
Theobroma Systems Mule is an MCU that emulates a set of I2C devices, among which an amc6821 and devices that are reachable through an I2C-mux. The devices on the mux can be selected by writing the appropriate device number to an I2C config register (amc6821 reg 0xff). This driver is expected to be probed as a platform device with amc6821 as its parent i2c device. Add support for the mule-i2c-mux platform driver. The amc6821 driver support for the mux will be added in a later commit. Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Signed-off-by: Farouk Bouabid <farouk.bouabid@cherry.de> Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
139 lines
4.5 KiB
Plaintext
139 lines
4.5 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
#
|
|
# Multiplexer I2C chip drivers configuration
|
|
#
|
|
|
|
menu "Multiplexer I2C Chip support"
|
|
depends on I2C_MUX
|
|
|
|
config I2C_ARB_GPIO_CHALLENGE
|
|
tristate "GPIO-based I2C arbitration"
|
|
depends on GPIOLIB || COMPILE_TEST
|
|
depends on OF
|
|
help
|
|
If you say yes to this option, support will be included for an
|
|
I2C multimaster arbitration scheme using GPIOs and a challenge &
|
|
response mechanism where masters have to claim the bus by asserting
|
|
a GPIO.
|
|
|
|
This driver can also be built as a module. If so, the module
|
|
will be called i2c-arb-gpio-challenge.
|
|
|
|
config I2C_MUX_GPIO
|
|
tristate "GPIO-based I2C multiplexer"
|
|
depends on GPIOLIB
|
|
help
|
|
If you say yes to this option, support will be included for a
|
|
GPIO based I2C multiplexer. This driver provides access to
|
|
I2C busses connected through a MUX, which is controlled
|
|
through GPIO pins.
|
|
|
|
This driver can also be built as a module. If so, the module
|
|
will be called i2c-mux-gpio.
|
|
|
|
config I2C_MUX_GPMUX
|
|
tristate "General Purpose I2C multiplexer"
|
|
select MULTIPLEXER
|
|
depends on OF
|
|
help
|
|
If you say yes to this option, support will be included for a
|
|
general purpose I2C multiplexer. This driver provides access to
|
|
I2C busses connected through a MUX, which in turn is controlled
|
|
by a MUX-controller from the MUX subsystem.
|
|
|
|
This driver can also be built as a module. If so, the module
|
|
will be called i2c-mux-gpmux.
|
|
|
|
config I2C_MUX_LTC4306
|
|
tristate "LTC LTC4306/5 I2C multiplexer"
|
|
select GPIOLIB
|
|
select REGMAP_I2C
|
|
help
|
|
If you say yes here you get support for the Analog Devices
|
|
LTC4306 or LTC4305 I2C mux/switch devices.
|
|
|
|
This driver can also be built as a module. If so, the module
|
|
will be called i2c-mux-ltc4306.
|
|
|
|
config I2C_MUX_PCA9541
|
|
tristate "NXP PCA9541 I2C Master Selector"
|
|
help
|
|
If you say yes here you get support for the NXP PCA9541
|
|
I2C Master Selector.
|
|
|
|
This driver can also be built as a module. If so, the module
|
|
will be called i2c-mux-pca9541.
|
|
|
|
config I2C_MUX_PCA954x
|
|
tristate "NXP PCA954x/PCA984x and Maxim MAX735x/MAX736x I2C Mux/switches"
|
|
depends on GPIOLIB || COMPILE_TEST
|
|
help
|
|
If you say yes here you get support for NXP PCA954x/PCA984x
|
|
and Maxim MAX735x/MAX736x I2C mux/switch devices.
|
|
|
|
This driver can also be built as a module. If so, the module
|
|
will be called i2c-mux-pca954x.
|
|
|
|
config I2C_MUX_PINCTRL
|
|
tristate "pinctrl-based I2C multiplexer"
|
|
depends on PINCTRL
|
|
depends on OF
|
|
help
|
|
If you say yes to this option, support will be included for an I2C
|
|
multiplexer that uses the pinctrl subsystem, i.e. pin multiplexing.
|
|
This is useful for SoCs whose I2C module's signals can be routed to
|
|
different sets of pins at run-time.
|
|
|
|
This driver can also be built as a module. If so, the module will be
|
|
called i2c-mux-pinctrl.
|
|
|
|
config I2C_MUX_REG
|
|
tristate "Register-based I2C multiplexer"
|
|
depends on HAS_IOMEM
|
|
help
|
|
If you say yes to this option, support will be included for a
|
|
register based I2C multiplexer. This driver provides access to
|
|
I2C busses connected through a MUX, which is controlled
|
|
by a single register.
|
|
|
|
This driver can also be built as a module. If so, the module
|
|
will be called i2c-mux-reg.
|
|
|
|
config I2C_DEMUX_PINCTRL
|
|
tristate "pinctrl-based I2C demultiplexer"
|
|
depends on PINCTRL && OF
|
|
select OF_DYNAMIC
|
|
help
|
|
If you say yes to this option, support will be included for an I2C
|
|
demultiplexer that uses the pinctrl subsystem. This is useful if you
|
|
want to change the I2C master at run-time depending on features.
|
|
|
|
config I2C_MUX_MLXCPLD
|
|
tristate "Mellanox CPLD based I2C multiplexer"
|
|
help
|
|
If you say yes to this option, support will be included for a
|
|
CPLD based I2C multiplexer. This driver provides access to
|
|
I2C busses connected through a MUX, which is controlled
|
|
by a CPLD register.
|
|
|
|
This driver can also be built as a module. If so, the module
|
|
will be called i2c-mux-mlxcpld.
|
|
|
|
config I2C_MUX_MULE
|
|
tristate "Theobroma Systems Mule I2C device multiplexer"
|
|
depends on OF && SENSORS_AMC6821
|
|
help
|
|
Mule is an MCU that emulates a set of I2C devices, among which
|
|
devices that are reachable through an I2C-mux. The devices on the mux
|
|
can be selected by writing the appropriate device number to an I2C
|
|
configuration register.
|
|
|
|
If you say yes to this option, support will be included for a
|
|
Theobroma Systems Mule I2C multiplexer. This driver provides access to
|
|
I2C devices connected on this mux.
|
|
|
|
This driver can also be built as a module. If so, the module
|
|
will be called i2c-mux-mule.
|
|
|
|
endmenu
|