Grant Likely wrote:
> On Tue, Oct 21, 2008 at 12:58 PM, Ira Snyder <[EMAIL PROTECTED]> wrote:
>> Hello,
>>
>> I'm working on a custom board, which is extremely similar to the
>> mpc8349emds board. I've been using a custom dts file, based on the
>> mpc834x_mds.dts file.
>>
>> One of the things that is present on my board are some i2c
>> temp/voltage/current sensors. I've been working on getting drivers for
>> them into mainline, see the lm-sensors list for the patches. I also have
>> adm1031 and adm1032 sensors on the board, which have long been supported
>> in mainline.
>>
>> In very recent kernels, probing is intentionally disabled by commit
>> 618b26d52.
> 
> That is correct
> 
>> Based on the commit message, I examined the
>> arch/powerpc/boot/dts/tqm85*.dts files. I didn't find anything that
>> would serve as a useful example for me.
>>
>> The ePAPR document describing the device tree didn't help either.
>>
>> Could you please give me a simple example of how to re-enable the
>> probing? I have 11 i2c devices on my board, and I'd rather not have a
>> really long kernel command line with tons of "force=" parameters.
> 
> Since probing is unreliable on i2c busses we've made the decision not
> to support it.  Recommended practice is to list your devices in the
> device tree under the i2c bus node; something like this:
> 
>                 [EMAIL PROTECTED] {
>                         #address-cells = <1>;
>                         #size-cells = <0>;
>                         cell-index = <0>;
>                         compatible = "fsl-i2c";
>                         reg = <0x3000 0x100>;
>                         interrupts = <43 2>;
>                         interrupt-parent = <&mpic>;
>                         dfsrr;
> 
>                         [EMAIL PROTECTED] {
>                                 compatible = "dallas,ds1337";
>                                 reg = <0x68>;    /* This is the i2c
> address of the device */
>                         };
>                         [EMAIL PROTECTED] { /* replace 'XX' with i2c address 
> */
>                                 compatible = "ADI,adm1031";
>                                 reg = <0xXX>;    /* This is the i2c
> address of the device */
>                         };
>                         [EMAIL PROTECTED] { /* replace 'YY' with i2c address 
> */
>                                 compatible = "ADI,adm1032";
>                                 reg = <0xYY>;
>                         };
> 
>                         /* etc */
> 
>                 };
> 
> 
> We're not supporting probing any more.  If you *really* want it then
> add a property to the i2c bus binding (documented in
> arch/powerpc/device-tree/) that turns on probing and post it to the
> [email protected] and [EMAIL PROTECTED] mailing
> lists.  Just look at commit 618b26d52 to see what flag needs to be
> turned on when the property is present.  Alternately, get your boot
> firmware to do the probing for you and populate the device tree before
> booting the kernel.

BTW, the CPM I2C bus driver currently supports configuration of bus
probing via FDT property "linux,i2c-class", which is even enabled by
default:

 http://lxr.linux.no/linux+v2.6.27/drivers/i2c/busses/i2c-cpm.c#L505

I think bus probing should not be allowed and we should not open a
backdoor via FDT property. Device probing might only necessary for old
style I2C device drivers. Please convert them to new style to solve the
problem.

Wolfgang.
_______________________________________________
devicetree-discuss mailing list
[email protected]
https://ozlabs.org/mailman/listinfo/devicetree-discuss

Reply via email to