lkml.org 
[lkml]   [2011]   [Jun]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 07/13] i2c-designware: move i2c functionality bit field to be adapter specific
    Date
    From: Dirk Brandewie <dirk.brandewie@gmail.com>

    The functionality of the adapter depends on the configuration of the
    IP block at silicon compile time and is adapter specific.

    Signed-off-by: Dirk Brandewie <dirk.brandewie@gmail.com>
    Signed-off-by: Ben Dooks <ben-linux@fluff.org>
    ---
    drivers/i2c/busses/i2c-designware-core.c | 8 ++------
    drivers/i2c/busses/i2c-designware-core.h | 1 +
    drivers/i2c/busses/i2c-designware-platdrv.c | 8 ++++++++
    3 files changed, 11 insertions(+), 6 deletions(-)

    diff --git a/drivers/i2c/busses/i2c-designware-core.c b/drivers/i2c/busses/i2c-designware-core.c
    index d3b71f2..3c9f7cc 100644
    --- a/drivers/i2c/busses/i2c-designware-core.c
    +++ b/drivers/i2c/busses/i2c-designware-core.c
    @@ -457,12 +457,8 @@ done:

    u32 i2c_dw_func(struct i2c_adapter *adap)
    {
    - return I2C_FUNC_I2C |
    - I2C_FUNC_10BIT_ADDR |
    - I2C_FUNC_SMBUS_BYTE |
    - I2C_FUNC_SMBUS_BYTE_DATA |
    - I2C_FUNC_SMBUS_WORD_DATA |
    - I2C_FUNC_SMBUS_I2C_BLOCK;
    + struct dw_i2c_dev *dev = i2c_get_adapdata(adap);
    + return dev->functionality;
    }

    static u32 i2c_dw_read_clear_intrbits(struct dw_i2c_dev *dev)
    diff --git a/drivers/i2c/busses/i2c-designware-core.h b/drivers/i2c/busses/i2c-designware-core.h
    index 43de340..ab4e655 100644
    --- a/drivers/i2c/busses/i2c-designware-core.h
    +++ b/drivers/i2c/busses/i2c-designware-core.h
    @@ -182,6 +182,7 @@ struct dw_i2c_dev {
    int irq;
    int swab;
    struct i2c_adapter adapter;
    + u32 functionality;
    unsigned int tx_fifo_depth;
    unsigned int rx_fifo_depth;
    };
    diff --git a/drivers/i2c/busses/i2c-designware-platdrv.c b/drivers/i2c/busses/i2c-designware-platdrv.c
    index 08783a6..36db7a8 100644
    --- a/drivers/i2c/busses/i2c-designware-platdrv.c
    +++ b/drivers/i2c/busses/i2c-designware-platdrv.c
    @@ -96,6 +96,14 @@ static int __devinit dw_i2c_probe(struct platform_device *pdev)
    }
    clk_enable(dev->clk);

    + dev->functionality =
    + I2C_FUNC_I2C |
    + I2C_FUNC_10BIT_ADDR |
    + I2C_FUNC_SMBUS_BYTE |
    + I2C_FUNC_SMBUS_BYTE_DATA |
    + I2C_FUNC_SMBUS_WORD_DATA |
    + I2C_FUNC_SMBUS_I2C_BLOCK;
    +
    dev->base = ioremap(mem->start, resource_size(mem));
    if (dev->base == NULL) {
    dev_err(&pdev->dev, "failure mapping io resources\n");
    --
    1.7.3.4


    \
     
     \ /
      Last update: 2011-06-09 21:25    [W:0.025 / U:0.232 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site