[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