Merge tag 'u-boot-imx-20200825' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx
[platform/kernel/u-boot.git] / drivers / i2c / Kconfig
index 17d21bb..8ae54e1 100644 (file)
@@ -12,18 +12,7 @@ config DM_I2C
          write and speed, is implemented with the bus drivers operations,
          which provide methods for bus setting and data transfer. Each chip
          device (bus child) info is kept as parent platdata. The interface
-         is defined in include/i2c.h. When i2c bus driver supports the i2c
-         uclass, but the device drivers not, then DM_I2C_COMPAT config can
-         be used as compatibility layer.
-
-config DM_I2C_COMPAT
-       bool "Enable I2C compatibility layer"
-       depends on DM
-       help
-         Enable old-style I2C functions for compatibility with existing code.
-         This option can be enabled as a temporary measure to avoid needing
-         to convert all code for a board in a single commit. It should not
-         be enabled for any board in an official release.
+         is defined in include/i2c.h.
 
 config I2C_CROS_EC_TUNNEL
        tristate "Chrome OS EC tunnel I2C bus"
@@ -82,6 +71,14 @@ config SYS_I2C_AT91
          i2c-gpio driver unless your system can cope with this limitation.
          Binding info: doc/device-tree-bindings/i2c/i2c-at91.txt
 
+config SYS_I2C_IPROC
+       bool "Broadcom I2C driver"
+       depends on DM_I2C
+       help
+         Broadcom I2C driver.
+         Add support for Broadcom I2C driver.
+         Say yes here to to enable the Broadco I2C driver.
+
 config SYS_I2C_FSL
        bool "Freescale I2C bus driver"
        depends on DM_I2C
@@ -91,11 +88,25 @@ config SYS_I2C_FSL
 
 config SYS_I2C_CADENCE
        tristate "Cadence I2C Controller"
-       depends on DM_I2C && (ARCH_ZYNQ || ARM64)
+       depends on DM_I2C
        help
          Say yes here to select Cadence I2C Host Controller. This controller is
          e.g. used by Xilinx Zynq.
 
+config SYS_I2C_CA
+       tristate "Cortina-Access I2C Controller"
+       depends on DM_I2C && CORTINA_PLATFORM
+       default n
+       help
+         Add support for the Cortina Access I2C host controller.
+         Say yes here to select Cortina-Access I2C Host Controller.
+
+config SYS_I2C_DAVINCI
+       bool "Davinci I2C Controller"
+       depends on (ARCH_KEYSTONE || ARCH_DAVINCI)
+       help
+         Say yes here to add support for Davinci and Keystone I2C controller
+
 config SYS_I2C_DW
        bool "Designware I2C Controller"
        default n
@@ -149,16 +160,191 @@ config SYS_I2C_MESON
          both 7-bit and 10-bit addresses.
 
 config SYS_I2C_MXC
-       bool "NXP i.MX I2C driver"
-       depends on MX6
+       bool "NXP MXC I2C driver"
        help
-         Add support for the NXP i.MX I2C driver. This supports upto for bus
-         channels and operating on standard mode upto 100 kbits/s and fast
-         mode upto 400 kbits/s.
+         Add support for the NXP I2C driver. This supports up to four bus
+         channels and operating on standard mode up to 100 kbits/s and fast
+         mode up to 400 kbits/s.
+
+# These settings are not used with DM_I2C, however SPL doesn't use
+# DM_I2C even if DM_I2C is enabled, and so might use these settings even
+# when main u-boot does not!
+if SYS_I2C_MXC && (!DM_I2C || SPL)
+config SYS_I2C_MXC_I2C1
+       bool "NXP MXC I2C1"
+       help
+        Add support for NXP MXC I2C Controller 1.
+        Required for SoCs which have I2C MXC controller 1 eg LS1088A, LS2080A
+
+config SYS_I2C_MXC_I2C2
+       bool "NXP MXC I2C2"
+       help
+        Add support for NXP MXC I2C Controller 2.
+        Required for SoCs which have I2C MXC controller 2 eg LS1088A, LS2080A
+
+config SYS_I2C_MXC_I2C3
+       bool "NXP MXC I2C3"
+       help
+        Add support for NXP MXC I2C Controller 3.
+        Required for SoCs which have I2C MXC controller 3 eg LS1088A, LS2080A
+
+config SYS_I2C_MXC_I2C4
+       bool "NXP MXC I2C4"
+       help
+        Add support for NXP MXC I2C Controller 4.
+        Required for SoCs which have I2C MXC controller 4 eg LS1088A, LS2080A
+
+config SYS_I2C_MXC_I2C5
+       bool "NXP MXC I2C5"
+       help
+        Add support for NXP MXC I2C Controller 5.
+        Required for SoCs which have I2C MXC controller 5 eg LX2160A
+
+config SYS_I2C_MXC_I2C6
+       bool "NXP MXC I2C6"
+       help
+        Add support for NXP MXC I2C Controller 6.
+        Required for SoCs which have I2C MXC controller 6 eg LX2160A
+
+config SYS_I2C_MXC_I2C7
+       bool "NXP MXC I2C7"
+       help
+        Add support for NXP MXC I2C Controller 7.
+        Required for SoCs which have I2C MXC controller 7 eg LX2160A
+
+config SYS_I2C_MXC_I2C8
+       bool "NXP MXC I2C8"
+       help
+        Add support for NXP MXC I2C Controller 8.
+        Required for SoCs which have I2C MXC controller 8 eg LX2160A
+endif
+
+if SYS_I2C_MXC_I2C1
+config SYS_MXC_I2C1_SPEED
+       int "I2C Channel 1 speed"
+       default 40000000 if TARGET_LS2080A_SIMU || TARGET_LS2080A_EMU
+       default 100000
+       help
+        MXC I2C Channel 1 speed
+
+config SYS_MXC_I2C1_SLAVE
+       int "I2C1 Slave"
+       default 0
+       help
+        MXC I2C1 Slave
+endif
+
+if SYS_I2C_MXC_I2C2
+config SYS_MXC_I2C2_SPEED
+       int "I2C Channel 2 speed"
+       default 40000000 if TARGET_LS2080A_SIMU || TARGET_LS2080A_EMU
+       default 100000
+       help
+        MXC I2C Channel 2 speed
+
+config SYS_MXC_I2C2_SLAVE
+       int "I2C2 Slave"
+       default 0
+       help
+        MXC I2C2 Slave
+endif
+
+if SYS_I2C_MXC_I2C3
+config SYS_MXC_I2C3_SPEED
+       int "I2C Channel 3 speed"
+       default 100000
+       help
+        MXC I2C Channel 3 speed
+
+config SYS_MXC_I2C3_SLAVE
+       int "I2C3 Slave"
+       default 0
+       help
+        MXC I2C3 Slave
+endif
+
+if SYS_I2C_MXC_I2C4
+config SYS_MXC_I2C4_SPEED
+       int "I2C Channel 4 speed"
+       default 100000
+       help
+        MXC I2C Channel 4 speed
+
+config SYS_MXC_I2C4_SLAVE
+       int "I2C4 Slave"
+       default 0
+       help
+        MXC I2C4 Slave
+endif
+
+if SYS_I2C_MXC_I2C5
+config SYS_MXC_I2C5_SPEED
+       int "I2C Channel 5 speed"
+       default 100000
+       help
+        MXC I2C Channel 5 speed
+
+config SYS_MXC_I2C5_SLAVE
+       int "I2C5 Slave"
+       default 0
+       help
+        MXC I2C5 Slave
+endif
+
+if SYS_I2C_MXC_I2C6
+config SYS_MXC_I2C6_SPEED
+       int "I2C Channel 6 speed"
+       default 100000
+       help
+        MXC I2C Channel 6 speed
+
+config SYS_MXC_I2C6_SLAVE
+       int "I2C6 Slave"
+       default 0
+       help
+        MXC I2C6 Slave
+endif
+
+if SYS_I2C_MXC_I2C7
+config SYS_MXC_I2C7_SPEED
+       int "I2C Channel 7 speed"
+       default 100000
+       help
+        MXC I2C Channel 7 speed
+
+config SYS_MXC_I2C7_SLAVE
+       int "I2C7 Slave"
+       default 0
+       help
+        MXC I2C7 Slave
+endif
+
+if SYS_I2C_MXC_I2C8
+config SYS_MXC_I2C8_SPEED
+       int "I2C Channel 8 speed"
+       default 100000
+       help
+        MXC I2C Channel 8 speed
+
+config SYS_MXC_I2C8_SLAVE
+       int "I2C8 Slave"
+       default 0
+       help
+        MXC I2C8 Slave
+endif
+
+config SYS_I2C_NEXELL
+       bool "Nexell I2C driver"
+       depends on DM_I2C
+       help
+         Add support for the Nexell I2C driver. This is used with various
+         Nexell parts such as S5Pxx18 series SoCs. All chips
+         have several I2C ports and all are provided, controlled by the
+         device tree.
 
 config SYS_I2C_OMAP24XX
        bool "TI OMAP2+ I2C driver"
-       depends on ARCH_OMAP2PLUS
+       depends on ARCH_OMAP2PLUS || ARCH_K3
        help
          Add support for the OMAP2+ I2C driver.
 
@@ -176,9 +362,15 @@ config SYS_OMAP24_I2C_SPEED
          OMAP24xx Slave speed channel 0
 endif
 
+config SYS_I2C_RCAR_I2C
+       bool "Renesas RCar I2C driver"
+       depends on (RCAR_GEN3 || RCAR_GEN2) && DM_I2C
+       help
+         Support for Renesas RCar I2C controller.
+
 config SYS_I2C_RCAR_IIC
        bool "Renesas RCar Gen3 IIC driver"
-       depends on RCAR_GEN3 && DM_I2C
+       depends on (RCAR_GEN3 || RCAR_GEN2) && DM_I2C
        help
          Support for Renesas RCar Gen3 IIC controller.
 
@@ -188,7 +380,7 @@ config SYS_I2C_ROCKCHIP
        help
          Add support for the Rockchip I2C driver. This is used with various
          Rockchip parts such as RK3126, RK3128, RK3036 and RK3288. All chips
-         have several I2C ports and all are provided, controled by the
+         have several I2C ports and all are provided, controlled by the
          device tree.
 
 config SYS_I2C_SANDBOX
@@ -199,6 +391,16 @@ config SYS_I2C_SANDBOX
          bus. Devices can be attached to the bus using the device tree
          which specifies the driver to use.  See sandbox.dts as an example.
 
+config SYS_I2C_OCTEON
+       bool "Octeon II/III/TX/TX2 I2C driver"
+       depends on (ARCH_OCTEON || ARCH_OCTEONTX || ARCH_OCTEONTX2) && DM_I2C
+       default y
+       help
+         Add support for the Marvell Octeon I2C driver. This is used with
+         various Octeon parts such as Octeon II/III and OcteonTX/TX2. All
+         chips have several I2C ports and all are provided, controlled by
+         the device tree.
+
 config SYS_I2C_S3C24X0
        bool "Samsung I2C driver"
        depends on ARCH_EXYNOS4 && DM_I2C
@@ -207,7 +409,7 @@ config SYS_I2C_S3C24X0
 
 config SYS_I2C_STM32F7
        bool "STMicroelectronics STM32F7 I2C support"
-       depends on (STM32F7 || STM32H7) && DM_I2C
+       depends on (STM32F7 || STM32H7 || ARCH_STM32MP) && DM_I2C
        help
          Enable this option to add support for STM32 I2C controller
          introduced with STM32F7/H7 SoCs. This I2C controller supports :
@@ -225,6 +427,12 @@ config SYS_I2C_STM32F7
           _ Optional clock stretching
           _ Software reset
 
+config SYS_I2C_TEGRA
+       bool "NVIDIA Tegra internal I2C controller"
+       depends on ARCH_TEGRA
+       help
+         Support for NVIDIA I2C controller available in Tegra SoCs.
+
 config SYS_I2C_UNIPHIER
        bool "UniPhier I2C driver"
        depends on ARCH_UNIPHIER && DM_I2C
@@ -241,6 +449,13 @@ config SYS_I2C_UNIPHIER_F
          Support for UniPhier FIFO-builtin I2C controller driver.
          This I2C controller is used on PH1-Pro4 or newer UniPhier SoCs.
 
+config SYS_I2C_VERSATILE
+       bool "Arm Ltd Versatile I2C bus driver"
+       depends on DM_I2C && (TARGET_VEXPRESS_CA15_TC2 || TARGET_VEXPRESS64_JUNO)
+       help
+         Add support for the Arm Ltd Versatile Express I2C driver. The I2C host
+         controller is present in the development boards manufactured by Arm Ltd.
+
 config SYS_I2C_MVTWSI
        bool "Marvell I2C driver"
        depends on DM_I2C
@@ -268,6 +483,18 @@ config SYS_I2C_BUS_MAX
        help
          Define the maximum number of available I2C buses.
 
+config SYS_I2C_XILINX_XIIC
+       bool "Xilinx AXI I2C driver"
+       depends on DM_I2C
+       help
+         Support for Xilinx AXI I2C controller.
+
+config SYS_I2C_IHS
+        bool "gdsys IHS I2C driver"
+        depends on DM_I2C
+        help
+          Support for gdsys IHS I2C driver on FPGA bus.
+
 source "drivers/i2c/muxes/Kconfig"
 
 endmenu