1b6036bcdSMasahiro Yamadaconfig DM_I2C 2b6036bcdSMasahiro Yamada bool "Enable Driver Model for I2C drivers" 3b6036bcdSMasahiro Yamada depends on DM 4b6036bcdSMasahiro Yamada help 5705fcf4dSPrzemyslaw Marczak Enable driver model for I2C. The I2C uclass interface: probe, read, 6705fcf4dSPrzemyslaw Marczak write and speed, is implemented with the bus drivers operations, 7705fcf4dSPrzemyslaw Marczak which provide methods for bus setting and data transfer. Each chip 8705fcf4dSPrzemyslaw Marczak device (bus child) info is kept as parent platdata. The interface 9705fcf4dSPrzemyslaw Marczak is defined in include/i2c.h. When i2c bus driver supports the i2c 10705fcf4dSPrzemyslaw Marczak uclass, but the device drivers not, then DM_I2C_COMPAT config can 11705fcf4dSPrzemyslaw Marczak be used as compatibility layer. 1226f820f3SMasahiro Yamada 134bba9d3fSSimon Glassconfig DM_I2C_COMPAT 144bba9d3fSSimon Glass bool "Enable I2C compatibility layer" 154bba9d3fSSimon Glass depends on DM 164bba9d3fSSimon Glass help 174bba9d3fSSimon Glass Enable old-style I2C functions for compatibility with existing code. 184bba9d3fSSimon Glass This option can be enabled as a temporary measure to avoid needing 194bba9d3fSSimon Glass to convert all code for a board in a single commit. It should not 204bba9d3fSSimon Glass be enabled for any board in an official release. 214bba9d3fSSimon Glass 22cc456bd7SSimon Glassconfig I2C_CROS_EC_TUNNEL 23cc456bd7SSimon Glass tristate "Chrome OS EC tunnel I2C bus" 24cc456bd7SSimon Glass depends on CROS_EC 25cc456bd7SSimon Glass help 26cc456bd7SSimon Glass This provides an I2C bus that will tunnel i2c commands through to 27cc456bd7SSimon Glass the other side of the Chrome OS EC to the I2C bus connected there. 28cc456bd7SSimon Glass This will work whatever the interface used to talk to the EC (SPI, 29cc456bd7SSimon Glass I2C or LPC). Some Chromebooks use this when the hardware design 30cc456bd7SSimon Glass does not allow direct access to the main PMIC from the AP. 31cc456bd7SSimon Glass 32*f48eaf01SSimon Glassconfig I2C_CROS_EC_LDO 33*f48eaf01SSimon Glass bool "Provide access to LDOs on the Chrome OS EC" 34*f48eaf01SSimon Glass depends on CROS_EC 35*f48eaf01SSimon Glass ---help--- 36*f48eaf01SSimon Glass On many Chromebooks the main PMIC is inaccessible to the AP. This is 37*f48eaf01SSimon Glass often dealt with by using an I2C pass-through interface provided by 38*f48eaf01SSimon Glass the EC. On some unfortunate models (e.g. Spring) the pass-through 39*f48eaf01SSimon Glass is not available, and an LDO message is available instead. This 40*f48eaf01SSimon Glass option enables a driver which provides very basic access to those 41*f48eaf01SSimon Glass regulators, via the EC. We implement this as an I2C bus which 42*f48eaf01SSimon Glass emulates just the TPS65090 messages we know about. This is done to 43*f48eaf01SSimon Glass avoid duplicating the logic in the TPS65090 regulator driver for 44*f48eaf01SSimon Glass enabling/disabling an LDO. 45cc456bd7SSimon Glass 46c54473cbSPrzemyslaw Marczakconfig DM_I2C_GPIO 47c54473cbSPrzemyslaw Marczak bool "Enable Driver Model for software emulated I2C bus driver" 48c54473cbSPrzemyslaw Marczak depends on DM_I2C && DM_GPIO 49c54473cbSPrzemyslaw Marczak help 50c54473cbSPrzemyslaw Marczak Enable the i2c bus driver emulation by using the GPIOs. The bus GPIO 51c54473cbSPrzemyslaw Marczak configuration is given by the device tree. Kernel-style device tree 52c54473cbSPrzemyslaw Marczak bindings are supported. 53c54473cbSPrzemyslaw Marczak Binding info: doc/device-tree-bindings/i2c/i2c-gpio.txt 54c54473cbSPrzemyslaw Marczak 551174aadaSSimon Glassconfig SYS_I2C_SANDBOX 561174aadaSSimon Glass bool "Sandbox I2C driver" 571174aadaSSimon Glass depends on SANDBOX && DM_I2C 581174aadaSSimon Glass help 591174aadaSSimon Glass Enable I2C support for sandbox. This is an emulation of a real I2C 601174aadaSSimon Glass bus. Devices can be attached to the bus using the device tree 611174aadaSSimon Glass which specifies the driver to use. As an example, see this device 621174aadaSSimon Glass tree fragment from sandbox.dts. It shows that the I2C bus has a 631174aadaSSimon Glass single EEPROM at address 0x2c (7-bit address) which is emulated by 641174aadaSSimon Glass the driver for "sandbox,i2c-eeprom", which is in 651174aadaSSimon Glass drivers/misc/i2c_eeprom_emul.c. 661174aadaSSimon Glass 671174aadaSSimon Glass i2c@0 { 681174aadaSSimon Glass #address-cells = <1>; 691174aadaSSimon Glass #size-cells = <0>; 701174aadaSSimon Glass reg = <0>; 711174aadaSSimon Glass compatible = "sandbox,i2c"; 721174aadaSSimon Glass clock-frequency = <400000>; 731174aadaSSimon Glass eeprom@2c { 741174aadaSSimon Glass reg = <0x2c>; 751174aadaSSimon Glass compatible = "i2c-eeprom"; 761174aadaSSimon Glass emul { 771174aadaSSimon Glass compatible = "sandbox,i2c-eeprom"; 781174aadaSSimon Glass sandbox,filename = "i2c.bin"; 791174aadaSSimon Glass sandbox,size = <128>; 801174aadaSSimon Glass }; 811174aadaSSimon Glass }; 821174aadaSSimon Glass }; 831174aadaSSimon Glass 841174aadaSSimon Glass 8526f820f3SMasahiro Yamadaconfig SYS_I2C_UNIPHIER 8626f820f3SMasahiro Yamada bool "UniPhier I2C driver" 8726f820f3SMasahiro Yamada depends on ARCH_UNIPHIER && DM_I2C 8826f820f3SMasahiro Yamada default y 8926f820f3SMasahiro Yamada help 90b6ef3a3fSMasahiro Yamada Support for UniPhier I2C controller driver. This I2C controller 91b6ef3a3fSMasahiro Yamada is used on PH1-LD4, PH1-sLD8 or older UniPhier SoCs. 92238bd0b8SMasahiro Yamada 93238bd0b8SMasahiro Yamadaconfig SYS_I2C_UNIPHIER_F 94238bd0b8SMasahiro Yamada bool "UniPhier FIFO-builtin I2C driver" 95238bd0b8SMasahiro Yamada depends on ARCH_UNIPHIER && DM_I2C 96238bd0b8SMasahiro Yamada default y 97238bd0b8SMasahiro Yamada help 98b6ef3a3fSMasahiro Yamada Support for UniPhier FIFO-builtin I2C controller driver. 99238bd0b8SMasahiro Yamada This I2C controller is used on PH1-Pro4 or newer UniPhier SoCs. 1003d1957f0SSimon Glass 1013d1957f0SSimon Glasssource "drivers/i2c/muxes/Kconfig" 102