X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=include%2Fi2c.h;h=a35e99bf87e8d0cfb8698b3361aebce1d9c30df8;hb=92832045c54586e9dffa082ff8cd8c2ef6040757;hp=c0fe94c1f333c215a6e283ba471a38146c4c1b1c;hpb=db8b46120aed6554d1ff405260ea6d2cc2439fcc;p=platform%2Fkernel%2Fu-boot.git diff --git a/include/i2c.h b/include/i2c.h index c0fe94c..a35e99b 100644 --- a/include/i2c.h +++ b/include/i2c.h @@ -20,7 +20,7 @@ /* * For now there are essentially two parts to this file - driver model - * here at the top, and the older code below (with CONFIG_SYS_I2C being + * here at the top, and the older code below (with CONFIG_SYS_I2C_LEGACY being * most recent). The plan is to migrate everything to driver model. * The driver model structures and API are separate as they are different * enough as to be incompatible for compilation purposes. @@ -243,6 +243,20 @@ int dm_i2c_reg_read(struct udevice *dev, uint offset); int dm_i2c_reg_write(struct udevice *dev, uint offset, unsigned int val); /** + * dm_i2c_reg_clrset() - Apply bitmask to an I2C register + * + * Read value, apply bitmask and write modified value back to the + * given address in an I2C chip + * + * @dev: Device to use for transfer + * @offset: Address for the R/W operation + * @clr: Bitmask of bits that should be cleared + * @set: Bitmask of bits that should be set + * @return 0 on success, -ve on error + */ +int dm_i2c_reg_clrset(struct udevice *dev, uint offset, u32 clr, u32 set); + +/** * dm_i2c_xfer() - Transfer messages over I2C * * This transfers a raw message. It is best to use dm_i2c_reg_read/write() @@ -596,6 +610,10 @@ extern struct acpi_ops i2c_acpi_ops; */ int acpi_i2c_of_to_plat(struct udevice *dev); +#ifdef CONFIG_SYS_I2C_EARLY_INIT +void i2c_early_init_f(void); +#endif + #if !CONFIG_IS_ENABLED(DM_I2C) /* @@ -729,26 +747,13 @@ extern struct i2c_bus_hose i2c_bus[]; #endif /* - * Many boards/controllers/drivers don't support an I2C slave interface so - * provide a default slave address for them for use in common code. A real - * value for CONFIG_SYS_I2C_SLAVE should be defined for any board which does - * support a slave interface. - */ -#ifndef CONFIG_SYS_I2C_SLAVE -#define CONFIG_SYS_I2C_SLAVE 0xfe -#endif - -/* * Initialization, must be called once on start up, may be called * repeatedly to change the speed and slave addresses. */ -#ifdef CONFIG_SYS_I2C_EARLY_INIT -void i2c_early_init_f(void); -#endif void i2c_init(int speed, int slaveaddr); void i2c_init_board(void); -#ifdef CONFIG_SYS_I2C +#if CONFIG_IS_ENABLED(SYS_I2C_LEGACY) /* * i2c_get_bus_num: * @@ -922,13 +927,13 @@ int i2c_set_bus_speed(unsigned int); */ unsigned int i2c_get_bus_speed(void); -#endif /* CONFIG_SYS_I2C */ +#endif /* CONFIG_SYS_I2C_LEGACY */ /* * only for backwardcompatibility, should go away if we switched * completely to new multibus support. */ -#if defined(CONFIG_SYS_I2C) || defined(CONFIG_I2C_MULTI_BUS) +#if CONFIG_IS_ENABLED(SYS_I2C_LEGACY) || defined(CONFIG_I2C_MULTI_BUS) # if !defined(CONFIG_SYS_MAX_I2C_BUS) # define CONFIG_SYS_MAX_I2C_BUS 2 # endif