]> git.karo-electronics.de Git - karo-tx-uboot.git/blobdiff - drivers/i2c/Kconfig
dm: i2c: Add support for multiplexed I2C buses
[karo-tx-uboot.git] / drivers / i2c / Kconfig
index 8babe12159fee027a7c24559141aba7e4fe52756..0591ade5b10a71f52825e4877caa08603b7425a8 100644 (file)
@@ -1,36 +1,92 @@
+menuconfig SYS_I2C
+       bool "I2C device support"
+
+if SYS_I2C
+
+config HARD_I2C
+       bool
+
+config SYS_I2C_MXC
+       bool "Freescale i.MX I2C controller"
+       select HARD_I2C
+       select I2C_QUIRK_REG if FSL_LSCH3 || SOC_LS102XA
+
 config DM_I2C
        bool "Enable Driver Model for I2C drivers"
        depends on DM
        help
-         If you want to use driver model for I2C drivers, say Y.
-         To use legacy I2C drivers, say N.
+         Enable driver model for I2C. The I2C uclass interface: probe, read,
+         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_I2C
+       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.
+
+config DM_I2C_GPIO
+       bool "Enable Driver Model for software emulated I2C bus driver"
+       depends on DM_I2C && DM_GPIO
+       help
+         Enable the i2c bus driver emulation by using the GPIOs. The bus GPIO
+         configuration is given by the device tree. Kernel-style device tree
+         bindings are supported.
+         Binding info: doc/device-tree-bindings/i2c/i2c-gpio.txt
+
+config SYS_I2C_SANDBOX
+       bool "Sandbox I2C driver"
+       depends on SANDBOX && DM_I2C
+       help
+         Enable I2C support for sandbox. This is an emulation of a real I2C
+         bus. Devices can be attached to the bus using the device tree
+         which specifies the driver to use. As an example, see this device
+         tree fragment from sandbox.dts. It shows that the I2C bus has a
+         single EEPROM at address 0x2c (7-bit address) which is emulated by
+         the driver for "sandbox,i2c-eeprom", which is in
+         drivers/misc/i2c_eeprom_emul.c.
+
+         i2c@0 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0>;
+               compatible = "sandbox,i2c";
+               clock-frequency = <400000>;
+               eeprom@2c {
+                       reg = <0x2c>;
+                       compatible = "i2c-eeprom";
+                       emul {
+                               compatible = "sandbox,i2c-eeprom";
+                               sandbox,filename = "i2c.bin";
+                               sandbox,size = <128>;
+                       };
+               };
+       };
+
 
 config SYS_I2C_UNIPHIER
        bool "UniPhier I2C driver"
        depends on ARCH_UNIPHIER && DM_I2C
        default y
        help
-         Support for Panasonic UniPhier I2C controller driver.  This I2C
-         controller is used on PH1-LD4, PH1-sLD8 or older UniPhier SoCs.
+         Support for UniPhier I2C controller driver.  This I2C controller
+         is used on PH1-LD4, PH1-sLD8 or older UniPhier SoCs.
 
 config SYS_I2C_UNIPHIER_F
        bool "UniPhier FIFO-builtin I2C driver"
        depends on ARCH_UNIPHIER && DM_I2C
        default y
        help
-         Support for Panasonic UniPhier FIFO-builtin I2C controller driver.
+         Support for UniPhier FIFO-builtin I2C controller driver.
          This I2C controller is used on PH1-Pro4 or newer UniPhier SoCs.
-menuconfig SYS_I2C
-       bool "I2C device support"
 
-if SYS_I2C
-
-config HARD_I2C
-       bool
-
-config SYS_I2C_MXC
-       bool "Freescale i.MX I2C controller"
-       select HARD_I2C
-       select I2C_QUIRK_REG if FSL_LSCH3 || LS102XA
+source "drivers/i2c/muxes/Kconfig"
 
 endif