drives/i2c/designware: incorporate device_operations support

In ramstage the device_operations are needed for the i2c designware
host controller. Move the intel/common/block/i2c implementation
into the generic driver so other platforms can take advantage of it.

BUG=b:72121803

Change-Id: Id249933fadcc016bfba00e7a6d65f56dfc220724
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://review.coreboot.org/23372
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin Roth <martinroth@google.com>
Reviewed-by: Furquan Shaikh <furquan@google.com>
Reviewed-by: Subrata Banik <subrata.banik@intel.com>
This commit is contained in:
Aaron Durbin
2018-01-22 21:31:48 -07:00
parent 9aee8194c4
commit b7d79cddf0
3 changed files with 150 additions and 129 deletions

View File

@@ -137,4 +137,29 @@ int dw_i2c_transfer(unsigned int bus,
const struct i2c_msg *segments,
size_t count);
/*
* Map an i2c host controller device to a logical bus number.
* Return value:
* -1 = failure
* >=0 = logical bus number
*/
int dw_i2c_soc_dev_to_bus(struct device *dev);
/*
* Common device_operations implementation to initialize the i2c host
* controller.
*/
void dw_i2c_dev_init(struct device *dev);
/*
* Common device_operations implementation to fill ACPI SSDT table for i2c
* host controller.
*/
void dw_i2c_acpi_fill_ssdt(struct device *dev);
/*
* Common device_operations implementation for i2c host controller ops.
*/
extern const struct i2c_bus_operations dw_i2c_bus_ops;
#endif /* __DRIVERS_I2C_DESIGNWARE_I2C_H__ */