Convert CONFIG_SYS_I2C_LEGACY to Kconfig and add CONFIG_[ST]PL_SYS_I2C_LEGACY
[platform/kernel/u-boot.git] / drivers / i2c / Kconfig
index 57a4efb..1466f8d 100644 (file)
@@ -2,7 +2,29 @@
 # I2C subsystem configuration
 #
 
-menu "I2C support"
+menuconfig I2C
+       bool "I2C support"
+       default y
+       help
+         Note:
+         This is a stand-in for an option to enable I2C support. In fact this
+         simply enables building of the I2C directory for U-Boot. The actual
+         I2C feature is enabled by DM_I2C (for driver model) and
+         the #define CONFIG_SYS_I2C_LEGACY (for the legacy I2C stack).
+
+         So at present there is no need to ever disable this option.
+
+         Eventually it will:
+
+         Enable support for the I2C (Inter-Integrated Circuit) bus in U-Boot.
+         I2C works with a clock and data line which can be driven by a
+         one or more masters or slaves. It is a fairly complex bus but is
+         widely used as it only needs two lines for communication. Speeds of
+         400kbps are typical but up to 3.4Mbps is supported by some
+         hardware. Enable this option to build the drivers in drivers/i2c as
+         part of a U-Boot build.
+
+if I2C
 
 config DM_I2C
        bool "Enable Driver Model for I2C drivers"
@@ -25,6 +47,28 @@ config SPL_DM_I2C
          device (bus child) info is kept as parent platdata. The interface
          is defined in include/i2c.h.
 
+config SYS_I2C_LEGACY
+       bool "Enable legacy I2C subsystem and drivers"
+       depends on !DM_I2C
+       help
+         Enable the legacy I2C subsystem and drivers.  While this is
+         deprecated in U-Boot itself, this can be useful in some situations
+         in SPL or TPL.
+
+config SPL_SYS_I2C_LEGACY
+       bool "Enable legacy I2C subsystem and drivers in SPL"
+       depends on SUPPORT_SPL && !SPL_DM_I2C
+       help
+         Enable the legacy I2C subsystem and drivers in SPL.  This is useful
+         in some size constrained situations.
+
+config TPL_SYS_I2C_LEGACY
+       bool "Enable legacy I2C subsystem and drivers in TPL"
+       depends on SUPPORT_TPL && !SPL_DM_I2C
+       help
+         Enable the legacy I2C subsystem and drivers in TPL.  This is useful
+         in some size constrained situations.
+
 config I2C_CROS_EC_TUNNEL
        tristate "Chrome OS EC tunnel I2C bus"
        depends on CROS_EC
@@ -74,7 +118,7 @@ config DM_I2C_GPIO
 
 config SPL_DM_I2C_GPIO
        bool "Enable Driver Model for software emulated I2C bus driver in SPL"
-       depends on SPL_DM && DM_I2C_GPIO && SPL_DM_GPIO && SPL_GPIO_SUPPORT
+       depends on SPL_DM && DM_I2C_GPIO && SPL_DM_GPIO && SPL_GPIO
        default y
        help
          Enable the i2c bus driver emulation by using the GPIOs. The bus GPIO
@@ -136,16 +180,6 @@ config SYS_I2C_DW
          controller is used in various SoCs, e.g. the ST SPEAr, Altera
          SoCFPGA, Synopsys ARC700 and some Intel x86 SoCs.
 
-config SYS_I2C_DW_ENABLE_STATUS_UNSUPPORTED
-       bool "DW I2C Enable Status Register not supported"
-       depends on SYS_I2C_DW && (TARGET_SPEAR300 || TARGET_SPEAR310 || \
-               TARGET_SPEAR320 || TARGET_SPEAR600 || TARGET_X600)
-       default y
-       help
-         Some versions of the Designware I2C controller do not support the
-         enable status register. This config option can be enabled in such
-         cases.
-
 config SYS_I2C_ASPEED
        bool "Aspeed I2C Controller"
        depends on DM_I2C && ARCH_ASPEED
@@ -169,6 +203,12 @@ config SYS_I2C_IMX_LPI2C
        help
          Add support for the NXP i.MX LPI2C driver.
 
+config SYS_I2C_LPC32XX
+       bool "LPC32XX I2C driver"
+       depends on ARCH_LPC32XX
+       help
+         Enable support for the LPC32xx I2C driver.
+
 config SYS_I2C_MESON
        bool "Amlogic Meson I2C driver"
        depends on DM_I2C && ARCH_MESON
@@ -419,6 +459,25 @@ 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_SOFT
+       bool "Legacy software I2C interface"
+       help
+         Enable the legacy software defined I2C interface
+
+config SYS_I2C_SOFT_SPEED
+       int "Software I2C bus speed"
+       depends on SYS_I2C_SOFT
+       default 100000
+       help
+         Speed of the software I2C bus
+
+config SYS_I2C_SOFT_SLAVE
+       hex "Software I2C slave address"
+       depends on SYS_I2C_SOFT
+       default 0xfe
+       help
+         Slave address of the software I2C bus
+
 config SYS_I2C_OCTEON
        bool "Octeon II/III/TX/TX2 I2C driver"
        depends on (ARCH_OCTEON || ARCH_OCTEONTX || ARCH_OCTEONTX2) && DM_I2C
@@ -431,7 +490,7 @@ config SYS_I2C_OCTEON
 
 config SYS_I2C_S3C24X0
        bool "Samsung I2C driver"
-       depends on ARCH_EXYNOS4 && DM_I2C
+       depends on (ARCH_EXYNOS4 || ARCH_EXYNOS5) && DM_I2C
        help
          Support for Samsung I2C controller as Samsung SoCs.
 
@@ -455,6 +514,13 @@ config SYS_I2C_STM32F7
           _ Optional clock stretching
           _ Software reset
 
+config SYS_I2C_SYNQUACER
+       bool "Socionext SynQuacer I2C controller"
+       depends on ARCH_SYNQUACER && DM_I2C
+       help
+         Support for Socionext Synquacer I2C controller. This I2C controller
+         will be used for RTC and LS-connector on DeveloperBox.
+
 config SYS_I2C_TEGRA
        bool "NVIDIA Tegra internal I2C controller"
        depends on ARCH_TEGRA
@@ -486,7 +552,6 @@ config SYS_I2C_VERSATILE
 
 config SYS_I2C_MVTWSI
        bool "Marvell I2C driver"
-       depends on DM_I2C
        help
          Support for Marvell I2C controllers as used on the orion5x and
          kirkwood SoC families.
@@ -525,4 +590,4 @@ config SYS_I2C_IHS
 
 source "drivers/i2c/muxes/Kconfig"
 
-endmenu
+endif