All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Richard R?öjfors" <richard.rojfors.ext-l7gf1WXxx3uGw+nKnLezzg@public.gmane.org>
To: Ben Dooks <ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org>
Cc: linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	jacmet-OfajU3CKLf1/SzgSGea1oA@public.gmane.org
Subject: Re: [PATCH] I2C: ocores can add I2C devices to the bus
Date: Wed, 03 Jun 2009 10:00:34 +0200	[thread overview]
Message-ID: <4A262DA2.6060202@mocean-labs.com> (raw)
In-Reply-To: <20090602224822.GE18453-elnMNo+KYs3pIgCt6eIbzw@public.gmane.org>

Ben Dooks wrote:
> On Tue, Jun 02, 2009 at 07:52:40PM +0200, Richard R????jfors wrote:
>> There is sometimes a need for the ocores driver to add devices to the bus when installed.
> 
> please wrap to 72 characters per line.
>  
>> i2c_register_board_info can not always be used, because the I2C devices are not known at an early state,
>> they could for instance be connected on a I2C bus on a PCI device which has the Open Cores IP.
> 
> Maybe i2c_register_board_info() needs to check if the bus is extant
> or not. Anyone else have any feedback on this suggestion?
>  
>> i2c_new_device can not be used in all cases either since the resulting bus nummer might be unknown.
>>
>> The solution is the pass a list of I2C devices in the platform data to the Open Cores driver. Is
>> useful for MFD drivers for instance.
> 
> Possibly, but most systems I see know what devices they have before
> instantiation so can hard-fix the bus numbering when supplying the MFD
> drivers with their data.

I agree, but we have a case here where PCI device(s) are plugged in to a
standard system so we really don't know the bus numbering.

>  
>> Signed-off-by: Richard R??jfors <richard.rojfors.ext-l7gf1WXxx3uGw+nKnLezzg@public.gmane.org>
>> ---
>> Index: linux-2.6.30-rc7/drivers/i2c/busses/i2c-ocores.c
>> ===================================================================
>> --- linux-2.6.30-rc7/drivers/i2c/busses/i2c-ocores.c	(revision 861)
>> +++ linux-2.6.30-rc7/drivers/i2c/busses/i2c-ocores.c	(revision 862)
>> @@ -216,6 +216,7 @@
>>  	struct ocores_i2c_platform_data *pdata;
>>  	struct resource *res, *res2;
>>  	int ret;
>> +	u8 i;
> 
> really, an int will do here, you might find compilers on !x86 archs
> will spend time contracting this variable to an u8.

Agreed.

>  
>>  	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
>>  	if (!res)
>> @@ -271,6 +272,10 @@
>>  		goto add_adapter_failed;
>>  	}
>>
>> +	/* add in known devices to the bus */
>> +	for (i = 0; i < pdata->num_devices; i++)
>> +		i2c_new_device(&i2c->adap, pdata->devices + i);
>> +
>>  	return 0;
>>
>>  add_adapter_failed:
>> Index: linux-2.6.30-rc7/include/linux/i2c-ocores.h
>> ===================================================================
>> --- linux-2.6.30-rc7/include/linux/i2c-ocores.h	(revision 861)
>> +++ linux-2.6.30-rc7/include/linux/i2c-ocores.h	(revision 862)
>> @@ -14,6 +14,8 @@
>>  struct ocores_i2c_platform_data {
>>  	u32 regstep;   /* distance between registers */
>>  	u32 clock_khz; /* input clock in kHz */
>> +	u8 num_devices; /* number of devices in the devices list */
>> +	struct i2c_board_info const *devices; /* devices connected to the bus */
>>  };
> 
> anyone want to kerneldoc this?

If you accept the patch, I will send an updated one with updated docs.

>  
>>  #endif /* _LINUX_I2C_OCORES_H */
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-i2c" in
>> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

  parent reply	other threads:[~2009-06-03  8:00 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-02 17:52 [PATCH] I2C: ocores can add I2C devices to the bus Richard Ršöjfors
     [not found] ` <4A2566E8.7080404-l7gf1WXxx3uGw+nKnLezzg@public.gmane.org>
2009-06-02 22:48   ` Ben Dooks
     [not found]     ` <20090602224822.GE18453-elnMNo+KYs3pIgCt6eIbzw@public.gmane.org>
2009-06-03  8:00       ` Richard R?öjfors [this message]
2009-06-03  8:15       ` Jean Delvare
     [not found]         ` <20090603101533.599d41db-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2009-06-03  8:22           ` Peter Korsgaard
     [not found]             ` <87oct53ewh.fsf-uXGAPMMVk8amE9MCos8gUmSdvHPH+/yF@public.gmane.org>
2009-06-03  8:49               ` Jean Delvare
2009-06-03  8:53               ` Richard R?öjfors
     [not found]                 ` <4A2639F6.2010505-l7gf1WXxx3uGw+nKnLezzg@public.gmane.org>
2009-06-04 12:11                   ` Richard Ršöjfors
2009-06-04 13:07                   ` Jean Delvare
     [not found]                     ` <20090604150752.6aa7668c-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2009-06-04 14:24                       ` Richard Ršöjfors
     [not found]                         ` <4A27D91E.1000306-l7gf1WXxx3uGw+nKnLezzg@public.gmane.org>
2009-06-04 14:41                           ` Mark Brown
2009-06-04 19:02                           ` Jean Delvare
     [not found]                             ` <20090604210243.078aeb2f-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2009-06-05  7:12                               ` Richard Röjfors
     [not found]                                 ` <4A28C579.7090507-l7gf1WXxx3uGw+nKnLezzg@public.gmane.org>
2009-06-05 11:54                                   ` Jean Delvare
2009-06-13  9:38   ` Ben Dooks
     [not found]     ` <20090613093830.GD20446-elnMNo+KYs3pIgCt6eIbzw@public.gmane.org>
2009-06-13  9:39       ` Ben Dooks

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4A262DA2.6060202@mocean-labs.com \
    --to=richard.rojfors.ext-l7gf1wxxx3ugw+nknlezzg@public.gmane.org \
    --cc=ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org \
    --cc=jacmet-OfajU3CKLf1/SzgSGea1oA@public.gmane.org \
    --cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.