diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig index efc020f..56e7deb 100644 --- a/configs/sandbox_defconfig +++ b/configs/sandbox_defconfig @@ -19,3 +19,4 @@ CONFIG_BOOTSTAGE=y CONFIG_BOOTSTAGE_REPORT=y CONFIG_SANDBOX_GPIO=y CONFIG_SYS_VSNPRINTF=y +CONFIG_SYS_I2C_SANDBOX=y diff --git a/drivers/i2c/Kconfig b/drivers/i2c/Kconfig index 739badc..ba43019 100644 --- a/drivers/i2c/Kconfig +++ b/drivers/i2c/Kconfig @@ -28,6 +28,36 @@ config DM_I2C_GPIO 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 diff --git a/include/configs/sandbox.h b/include/configs/sandbox.h index f714298..30d41e5 100644 --- a/include/configs/sandbox.h +++ b/include/configs/sandbox.h @@ -95,7 +95,6 @@ #define CONFIG_SPI_FLASH_WINBOND #define CONFIG_CMD_I2C -#define CONFIG_SYS_I2C_SANDBOX #define CONFIG_I2C_EDID #define CONFIG_I2C_EEPROM