[PATCH] i2c: at91: add support of device tree
Sascha Hauer
s.hauer at pengutronix.de
Wed Sep 17 23:27:00 PDT 2014
On Wed, Sep 17, 2014 at 05:00:18PM +0200, Raphaël Poggi wrote:
> Signed-off-by: Raphaël Poggi <poggi.raph at gmail.com>
> ---
> drivers/i2c/busses/i2c-at91.c | 91 ++++++++++++++++++++++++++++++++++---------
> 1 file changed, 73 insertions(+), 18 deletions(-)
>
> diff --git a/drivers/i2c/busses/i2c-at91.c b/drivers/i2c/busses/i2c-at91.c
> index 399f6a9..6494401 100644
> --- a/drivers/i2c/busses/i2c-at91.c
> +++ b/drivers/i2c/busses/i2c-at91.c
> @@ -186,8 +186,8 @@ static int at91_twi_wait_completion(struct at91_twi_dev *dev)
>
> dev->transfer_status |= status;
>
> - while(!(at91_twi_read(dev, AT91_TWI_SR) & AT91_TWI_TXCOMP)) {
> - if(is_timeout(start, AT91_I2C_TIMEOUT)) {
> + while (!(at91_twi_read(dev, AT91_TWI_SR) & AT91_TWI_TXCOMP)) {
> + if (is_timeout(start, AT91_I2C_TIMEOUT)) {
Normally this change should be in a separate patch.
> }, {
> + .name = "at91sam9x5-i2c",
> + .driver_data = (unsigned long) &at91sam9x5_config,
> + }, {
ditto for adding support for a new SoC.
Ok for this time since this driver currently has no users.
> +static struct at91_twi_pdata *at91_twi_get_driver_data(struct device_d *dev)
> +{
> + struct at91_twi_pdata *i2c_data = NULL;
> + int rc;
> +
> + if (dev->device_node) {
> + const struct of_device_id *match;
> + match = of_match_node(at91_twi_dt_ids, dev->device_node);
> + if (!match)
> + i2c_data = NULL;
> + else
> + i2c_data = (struct at91_twi_pdata *)match->data;
> + } else {
> + rc = dev_get_drvdata(dev, (unsigned long *)&i2c_data);
> + if (rc)
> + i2c_data = NULL;
> + }
Just call dev_get_drvdata(). It will do the right thing, even for the
device tree case.
Sascha
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list