diff mbox

[U-Boot] dm: i2c: Add compatibility functions for dm_i2c_reg_read/write()

Message ID 1431810101-5315-1-git-send-email-sjg@chromium.org
State Accepted
Delegated to: Simon Glass
Headers show

Commit Message

Simon Glass May 16, 2015, 9:01 p.m. UTC
Add the legacy i2c_reg_read/write() functions to the compatibility layer
so that they can be used when CONFIG_DM_I2C_COMPAT is defined.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 drivers/i2c/i2c-uclass-compat.c | 21 +++++++++++++++++++++
 include/i2c.h                   |  6 ++++++
 2 files changed, 27 insertions(+)

Comments

Heiko Schocher May 18, 2015, 6:03 a.m. UTC | #1
Hello Simon,

Am 16.05.2015 23:01, schrieb Simon Glass:
> Add the legacy i2c_reg_read/write() functions to the compatibility layer
> so that they can be used when CONFIG_DM_I2C_COMPAT is defined.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
>
>   drivers/i2c/i2c-uclass-compat.c | 21 +++++++++++++++++++++
>   include/i2c.h                   |  6 ++++++
>   2 files changed, 27 insertions(+)

Acked-by: Heiko Schocher <hs@denx.de>

Thanks!

bye,
Heiko

>
> diff --git a/drivers/i2c/i2c-uclass-compat.c b/drivers/i2c/i2c-uclass-compat.c
> index 223f238..5606d1f 100644
> --- a/drivers/i2c/i2c-uclass-compat.c
> +++ b/drivers/i2c/i2c-uclass-compat.c
> @@ -106,3 +106,24 @@ void board_i2c_init(const void *blob)
>   {
>   	/* Nothing to do here - the init happens through driver model */
>   }
> +
> +uint8_t i2c_reg_read(uint8_t chip_addr, uint8_t offset)
> +{
> +	struct udevice *dev;
> +	int ret;
> +
> +	ret = i2c_compat_get_device(chip_addr, 1, &dev);
> +	if (ret)
> +		return 0xff;
> +	return dm_i2c_reg_read(dev, offset);
> +}
> +
> +void i2c_reg_write(uint8_t chip_addr, uint8_t offset, uint8_t val)
> +{
> +	struct udevice *dev;
> +	int ret;
> +
> +	ret = i2c_compat_get_device(chip_addr, 1, &dev);
> +	if (!ret)
> +		dm_i2c_reg_write(dev, offset, val);
> +}
> diff --git a/include/i2c.h b/include/i2c.h
> index ddfebc4..9300d97 100644
> --- a/include/i2c.h
> +++ b/include/i2c.h
> @@ -284,6 +284,12 @@ void i2c_init(int speed, int slaveaddr);
>    */
>   void board_i2c_init(const void *blob);
>
> +/*
> + * Compatibility functions for driver model.
> + */
> +uint8_t i2c_reg_read(uint8_t addr, uint8_t reg);
> +void i2c_reg_write(uint8_t addr, uint8_t reg, uint8_t val);
> +
>   #endif
>
>   /*
>
Simon Glass June 11, 2015, 8:18 p.m. UTC | #2
On 18 May 2015 at 00:03, Heiko Schocher <hs@denx.de> wrote:
>
> Hello Simon,
>
> Am 16.05.2015 23:01, schrieb Simon Glass:
>>
>> Add the legacy i2c_reg_read/write() functions to the compatibility layer
>> so that they can be used when CONFIG_DM_I2C_COMPAT is defined.
>>
>> Signed-off-by: Simon Glass <sjg@chromium.org>
>> ---
>>
>>   drivers/i2c/i2c-uclass-compat.c | 21 +++++++++++++++++++++
>>   include/i2c.h                   |  6 ++++++
>>   2 files changed, 27 insertions(+)
>
>
> Acked-by: Heiko Schocher <hs@denx.de>
>

Applied to u-boot-dm.
diff mbox

Patch

diff --git a/drivers/i2c/i2c-uclass-compat.c b/drivers/i2c/i2c-uclass-compat.c
index 223f238..5606d1f 100644
--- a/drivers/i2c/i2c-uclass-compat.c
+++ b/drivers/i2c/i2c-uclass-compat.c
@@ -106,3 +106,24 @@  void board_i2c_init(const void *blob)
 {
 	/* Nothing to do here - the init happens through driver model */
 }
+
+uint8_t i2c_reg_read(uint8_t chip_addr, uint8_t offset)
+{
+	struct udevice *dev;
+	int ret;
+
+	ret = i2c_compat_get_device(chip_addr, 1, &dev);
+	if (ret)
+		return 0xff;
+	return dm_i2c_reg_read(dev, offset);
+}
+
+void i2c_reg_write(uint8_t chip_addr, uint8_t offset, uint8_t val)
+{
+	struct udevice *dev;
+	int ret;
+
+	ret = i2c_compat_get_device(chip_addr, 1, &dev);
+	if (!ret)
+		dm_i2c_reg_write(dev, offset, val);
+}
diff --git a/include/i2c.h b/include/i2c.h
index ddfebc4..9300d97 100644
--- a/include/i2c.h
+++ b/include/i2c.h
@@ -284,6 +284,12 @@  void i2c_init(int speed, int slaveaddr);
  */
 void board_i2c_init(const void *blob);
 
+/*
+ * Compatibility functions for driver model.
+ */
+uint8_t i2c_reg_read(uint8_t addr, uint8_t reg);
+void i2c_reg_write(uint8_t addr, uint8_t reg, uint8_t val);
+
 #endif
 
 /*