Merge tag 'efi-2020-04-rc3' of https://gitlab.denx.de/u-boot/custodians/u-boot-efi
[oweals/u-boot.git] / drivers / i2c / Kconfig
index 932abd305970e23aab3efc3618a07419732103c5..03d2fed341303950a8ab76498b48199605ff376c 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"
@@ -96,6 +85,12 @@ config SYS_I2C_CADENCE
          Say yes here to select Cadence I2C Host Controller. This controller is
          e.g. used by Xilinx Zynq.
 
+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 +144,182 @@ 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 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
-         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.
+        MXC I2C8 Slave
+endif
 
 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,6 +337,12 @@ 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 || RCAR_GEN2) && DM_I2C
@@ -188,7 +355,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
@@ -207,7 +374,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 +392,12 @@ config SYS_I2C_STM32F7
           _ Optional clock stretching
           _ Software reset
 
+config SYS_I2C_TEGRA
+       bool "NVIDIA Tegra internal I2C controller"
+       depends on 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 +414,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,37 +448,11 @@ config SYS_I2C_BUS_MAX
        help
          Define the maximum number of available I2C buses.
 
-config SYS_I2C_ZYNQ
-       bool "Xilinx I2C driver"
-       depends on ARCH_ZYNQMP || ARCH_ZYNQ
-       help
-         Support for Xilinx I2C controller.
-
-config SYS_I2C_ZYNQ_SLAVE
-       hex "Set slave addr"
-       depends on SYS_I2C_ZYNQ
-       default 0
-       help
-         Set CONFIG_SYS_I2C_ZYNQ_SLAVE for slave addr.
-
-config SYS_I2C_ZYNQ_SPEED
-       int "Set I2C speed"
-       depends on SYS_I2C_ZYNQ
-       default 100000
-       help
-         Set CONFIG_SYS_I2C_ZYNQ_SPEED for speed setting.
-
-config ZYNQ_I2C0
-       bool "Xilinx I2C0 controller"
-       depends on SYS_I2C_ZYNQ
-       help
-         Enable Xilinx I2C0 controller.
-
-config ZYNQ_I2C1
-       bool "Xilinx I2C1 controller"
-       depends on SYS_I2C_ZYNQ
+config SYS_I2C_XILINX_XIIC
+       bool "Xilinx AXI I2C driver"
+       depends on DM_I2C
        help
-         Enable Xilinx I2C1 controller.
+         Support for Xilinx AXI I2C controller.
 
 config SYS_I2C_IHS
         bool "gdsys IHS I2C driver"