RE: OF devices and non OF devices

2007-07-18 Thread Kári Davíðsson
Yes there was indeed.

Combination of my misunderstanding, device trees and board specific 
initialization.

Things are working now.

Thanks,
kd




From: John Rigby [mailto:[EMAIL PROTECTED] 
Sent: 5. júlí 2007 17:21
To: Kári Davíðsson
Cc: linuxppc-embedded@ozlabs.org
Subject: Re: OF devices and non OF devices


There must be something else wrong with your configuration.
On my Lite5200B fsl_i2c_probe gets called with no changes to the driver.

The kernel version is 2.6.22-rc7

The relevant part of my device tree is: 

[EMAIL PROTECTED] {
device_type = i2c;
compatible = mpc5200b-i2c\0mpc5200-i2c\0fsl-i2c;
cell-index = 0;
reg = 3d00 40; 
interrupts = 2 f 0;
interrupt-parent = mpc5200_pic;
fsl5200-clocking;
};

[EMAIL PROTECTED] {
device_type = i2c; 
compatible = mpc5200b-i2c\0mpc5200-i2c\0fsl-i2c;
cell-index = 1;
reg = 3d40 40;
interrupts = 2 10 0;
interrupt-parent = mpc5200_pic; 
fsl5200-clocking;
};

I turned on DEBUG in drivers/base/dd.c and a call to pr_debug in the probe 
routine
and here are the relevant log messages:

[   27.258245] platform: Matched Device fsl-i2c.0 with Driver fsl-i2c
[   27.258269] platform: Probing driver fsl-i2c with device fsl-i2c.0
[   27.258299] I2C: here in fsl_i2c_probe
[   27.258732] bound device 'fsl-i2c.0' to driver 'fsl-i2c' 
[   27.258756] platform: Bound Device fsl-i2c.0 to Driver fsl-i2c
[   27.258776] platform: Matched Device fsl-i2c.1 with Driver fsl-i2c
[   27.258789] platform: Probing driver fsl-i2c with device fsl-i2c.1
[   27.258821] I2C: here in fsl_i2c_probe
[   27.259269] bound device 'fsl-i2c.1' to driver 'fsl-i2c'
[   27.259293] platform: Bound Device fsl-i2c.1 to Driver fsl-i2c

John


On 7/5/07, John Rigby [EMAIL PROTECTED] wrote: 

kd,

Ok, obviously It doesn't work the way I thought.  Hopefully someone who 
does
understand this will comment.

John 



On 7/4/07, Kári Davíðsson [EMAIL PROTECTED] wrote: 

John, thank you for your answare.

Enabling CONFIG_FSL_SOC only enabled the execution of the init 
function (fsl_i2c_init())
of the fsl-i2c driver (i2c-mpc.c). The .probe function of the 
driver was never called
until I converted the driver to the OF model and added the 
.match_table to the driver structure.

Then I get the .probe function (fsl_i2c_probe()) called and the 
i2c bus set up.

Similar thing happens for the i2c device PCF8563 i.e., the init 
functin of the driver (pcf8563_init())
is called the driver is registered with the kernel, but the 
.probe (pcf8563_probe()) is never called.

The driver pcf8563 has _NO_ exported structures or functions so 
I basically have no handle on it 
that I can utilize in board specific setup.

The way I suspect this is supposed to work is that from the 
board settup files I would do
rtc_dev = platform_device_register_simple(pcf8563, -1, NULL, 
0); 
which should later trigger the calling of the pcf8563_probe() 
function.

This is doing things in the same way as the fsl i2c code, i.e.
i2c_dev = platform_device_register_simple(i2c, i, r, 2);
which by the way does not work untill I have converted the 
fsl_i2c (i2c-mpc.c) driver to the OF structure.

So still the method of gluing together the OF drivers and non 
OF drivers eludes me.

rg
kd

P.S. I did check the 2.6.21-RC7-git3 and found that the 
i2c-mpc.c and the rtc-pcf85763.c are basically the same
as what I am working with in 2.6.20+


From: John Rigby [mailto: [EMAIL PROTECTED]
Sent: 3. júlí 2007 16:31
To: Kári Davíðsson
Cc: linuxppc-embedded@ozlabs.org 
Subject: Re: OF devices and non OF devices


One place to find binding between OF devices and non OF devices 
is in arch/powerpc/sysdev/fsl_soc.c 
The typical pattern is:
if of_find_compatible_node of-device-name
platform_device_register_simple platform-device-name
platform_device_add_data ...



On 7/3/07, Kári Davíðsson [EMAIL PROTECTED] wrote:

Hi

Re: OF devices and non OF devices

2007-07-05 Thread John Rigby

kd,

Ok, obviously It doesn't work the way I thought.  Hopefully someone who does
understand this will comment.

John

On 7/4/07, Kári Davíðsson [EMAIL PROTECTED] wrote:


John, thank you for your answare.

Enabling CONFIG_FSL_SOC only enabled the execution of the init function
(fsl_i2c_init())
of the fsl-i2c driver (i2c-mpc.c). The .probe function of the driver was
never called
until I converted the driver to the OF model and added the .match_table to
the driver structure.

Then I get the .probe function (fsl_i2c_probe()) called and the i2c bus
set up.

Similar thing happens for the i2c device PCF8563 i.e., the init functin of
the driver (pcf8563_init())
is called the driver is registered with the kernel, but the .probe
(pcf8563_probe()) is never called.

The driver pcf8563 has _NO_ exported structures or functions so I
basically have no handle on it
that I can utilize in board specific setup.

The way I suspect this is supposed to work is that from the board settup
files I would do
rtc_dev = platform_device_register_simple(pcf8563, -1, NULL, 0);
which should later trigger the calling of the pcf8563_probe() function.

This is doing things in the same way as the fsl i2c code, i.e.
i2c_dev = platform_device_register_simple(i2c, i, r, 2);
which by the way does not work untill I have converted the fsl_i2c (
i2c-mpc.c) driver to the OF structure.

So still the method of gluing together the OF drivers and non OF drivers
eludes me.

rg
kd

P.S. I did check the 2.6.21-RC7-git3 and found that the i2c-mpc.c and the
rtc-pcf85763.c are basically the same
as what I am working with in 2.6.20+


From: John Rigby [mailto:[EMAIL PROTECTED]
Sent: 3. júlí 2007 16:31
To: Kári Davíðsson
Cc: linuxppc-embedded@ozlabs.org
Subject: Re: OF devices and non OF devices


One place to find binding between OF devices and non OF devices is in
arch/powerpc/sysdev/fsl_soc.c
The typical pattern is:
if of_find_compatible_node of-device-name
platform_device_register_simple platform-device-name
platform_device_add_data ...



On 7/3/07, Kári Davíðsson [EMAIL PROTECTED] wrote:

Hi,

I am attempting to get some non OF devices working for an mpc 5200
board, in particular
PCF8563 RTC.

This device has an non OF device interface which I believe is
correct. After all it should work
on non OF platforms.

I have managed to get the board to run the i2c initialization (and
probe) for the fsl-mpc i2c driver by
converting the fsl-mpc i2c driver to OF driver (I found some patch
here that I based this work on).


fsl-i2c is one of the devices handled by fsl_soc.c so you shouldn't need
to change anything to
make it work in the latest kernel.  CONFIG_FSL_SOC was only added to
lite5200_defconfig recently so
that may explain why it's not on in your kernel.



Since the PCF8563 driver is not OF driver only its initaliziation
code is run but the .probe function
of the driver is never run. Basically (as far as I can understand)
the .probe is never run because the
driver is not an OF driver.

I could convert the PCF8563 driver to OF driver and make it work
for our puposes but I feel this is
1) Wrong
2) therefore wasted work.


Since the driver must run on non OF platforms then it should not be
converted.  You just need to add a platform_device_register somewhere.
I don't think fsl_soc.c is  the right place since it is not part of an
freescale SOC.
You could probably put it in a board specific startup routine.



What seems to elude me is some glue that glues together the OF
part of the driver space to the non OF part
of the driver space.

Any hints or pointers on where to find this glue?

Regards,
kd

P.S. Kernel is post 2.6.20.

--
Kári Davíðsson   | [EMAIL PROTECTED]
Hugbúnaðargerð   | www.marel.com
Tel: 563-8156 Fax: +354 563 8001
Iceland
___
Linuxppc-embedded mailing list
Linuxppc-embedded@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-embedded



___
Linuxppc-embedded mailing list
Linuxppc-embedded@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-embedded

___
Linuxppc-embedded mailing list
Linuxppc-embedded@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-embedded

Re: OF devices and non OF devices

2007-07-05 Thread John Rigby

There must be something else wrong with your configuration.
On my Lite5200B fsl_i2c_probe gets called with no changes to the driver.

The kernel version is 2.6.22-rc7

The relevant part of my device tree is:

   [EMAIL PROTECTED] {
   device_type = i2c;
   compatible = mpc5200b-i2c\0mpc5200-i2c\0fsl-i2c;
   cell-index = 0;
   reg = 3d00 40;
   interrupts = 2 f 0;
   interrupt-parent = mpc5200_pic;
   fsl5200-clocking;
   };

   [EMAIL PROTECTED] {
   device_type = i2c;
   compatible = mpc5200b-i2c\0mpc5200-i2c\0fsl-i2c;
   cell-index = 1;
   reg = 3d40 40;
   interrupts = 2 10 0;
   interrupt-parent = mpc5200_pic;
   fsl5200-clocking;
   };

I turned on DEBUG in drivers/base/dd.c and a call to pr_debug in the probe
routine
and here are the relevant log messages:

[   27.258245] platform: Matched Device fsl-i2c.0 with Driver fsl-i2c
[   27.258269] platform: Probing driver fsl-i2c with device fsl-i2c.0
[   27.258299] I2C: here in fsl_i2c_probe
[   27.258732] bound device 'fsl-i2c.0' to driver 'fsl-i2c'
[   27.258756] platform: Bound Device fsl-i2c.0 to Driver fsl-i2c
[   27.258776] platform: Matched Device fsl-i2c.1 with Driver fsl-i2c
[   27.258789] platform: Probing driver fsl-i2c with device fsl-i2c.1
[   27.258821] I2C: here in fsl_i2c_probe
[   27.259269] bound device 'fsl-i2c.1' to driver 'fsl-i2c'
[   27.259293] platform: Bound Device fsl-i2c.1 to Driver fsl-i2c

John

On 7/5/07, John Rigby [EMAIL PROTECTED] wrote:


kd,

Ok, obviously It doesn't work the way I thought.  Hopefully someone who
does
understand this will comment.

John

On 7/4/07, Kári Davíðsson [EMAIL PROTECTED] wrote:

 John, thank you for your answare.

 Enabling CONFIG_FSL_SOC only enabled the execution of the init function
 (fsl_i2c_init())
 of the fsl-i2c driver (i2c-mpc.c). The .probe function of the driver was
 never called
 until I converted the driver to the OF model and added the .match_table
 to the driver structure.

 Then I get the .probe function (fsl_i2c_probe()) called and the i2c bus
 set up.

 Similar thing happens for the i2c device PCF8563 i.e., the init functin
 of the driver (pcf8563_init())
 is called the driver is registered with the kernel, but the .probe
 (pcf8563_probe()) is never called.

 The driver pcf8563 has _NO_ exported structures or functions so I
 basically have no handle on it
 that I can utilize in board specific setup.

 The way I suspect this is supposed to work is that from the board settup
 files I would do
 rtc_dev = platform_device_register_simple(pcf8563, -1, NULL, 0);
 which should later trigger the calling of the pcf8563_probe() function.

 This is doing things in the same way as the fsl i2c code, i.e.
 i2c_dev = platform_device_register_simple(i2c, i, r, 2);
 which by the way does not work untill I have converted the fsl_i2c (
 i2c-mpc.c) driver to the OF structure.

 So still the method of gluing together the OF drivers and non OF drivers
 eludes me.

 rg
 kd

 P.S. I did check the 2.6.21-RC7-git3 and found that the i2c-mpc.c and
 the rtc-pcf85763.c are basically the same
 as what I am working with in 2.6.20+
 

 From: John Rigby [mailto: [EMAIL PROTECTED]
 Sent: 3. júlí 2007 16:31
 To: Kári Davíðsson
 Cc: linuxppc-embedded@ozlabs.org
 Subject: Re: OF devices and non OF devices


 One place to find binding between OF devices and non OF devices is in
 arch/powerpc/sysdev/fsl_soc.c
 The typical pattern is:
 if of_find_compatible_node of-device-name
 platform_device_register_simple platform-device-name
 platform_device_add_data ...



 On 7/3/07, Kári Davíðsson [EMAIL PROTECTED] wrote:

 Hi,

 I am attempting to get some non OF devices working for an mpc
 5200 board, in particular
 PCF8563 RTC.

 This device has an non OF device interface which I believe is
 correct. After all it should work
 on non OF platforms.

 I have managed to get the board to run the i2c initialization
 (and probe) for the fsl-mpc i2c driver by
 converting the fsl-mpc i2c driver to OF driver (I found some
 patch here that I based this work on).


 fsl-i2c is one of the devices handled by fsl_soc.c so you shouldn't need
 to change anything to
 make it work in the latest kernel.  CONFIG_FSL_SOC was only added to
 lite5200_defconfig recently so
 that may explain why it's not on in your kernel.



 Since the PCF8563 driver is not OF driver only its
 initaliziation code is run but the .probe function
 of the driver is never run. Basically (as far as I can
 understand) the .probe is never run because the
 driver is not an OF driver.

 I could convert the PCF8563 driver to OF driver and make it work
 for our puposes but I feel this is
 1) Wrong
 2) therefore wasted work.


 Since the driver must run on non OF platforms then it should

RE: OF devices and non OF devices

2007-07-04 Thread Kári Davíðsson
John, thank you for your answare.

Enabling CONFIG_FSL_SOC only enabled the execution of the init function 
(fsl_i2c_init())
of the fsl-i2c driver (i2c-mpc.c). The .probe function of the driver was never 
called
until I converted the driver to the OF model and added the .match_table to the 
driver structure.

Then I get the .probe function (fsl_i2c_probe()) called and the i2c bus set up.

Similar thing happens for the i2c device PCF8563 i.e., the init functin of the 
driver (pcf8563_init())
is called the driver is registered with the kernel, but the .probe 
(pcf8563_probe()) is never called.

The driver pcf8563 has _NO_ exported structures or functions so I basically 
have no handle on it
that I can utilize in board specific setup.

The way I suspect this is supposed to work is that from the board settup files 
I would do
rtc_dev = platform_device_register_simple(pcf8563, -1, NULL, 0);
which should later trigger the calling of the pcf8563_probe() function.

This is doing things in the same way as the fsl i2c code, i.e.
i2c_dev = platform_device_register_simple(i2c, i, r, 2);
which by the way does not work untill I have converted the fsl_i2c (i2c-mpc.c) 
driver to the OF structure.

So still the method of gluing together the OF drivers and non OF drivers eludes 
me.

rg
kd

P.S. I did check the 2.6.21-RC7-git3 and found that the i2c-mpc.c and the 
rtc-pcf85763.c are basically the same
as what I am working with in 2.6.20+ 


From: John Rigby [mailto:[EMAIL PROTECTED] 
Sent: 3. júlí 2007 16:31
To: Kári Davíðsson
Cc: linuxppc-embedded@ozlabs.org
Subject: Re: OF devices and non OF devices


One place to find binding between OF devices and non OF devices is in 
arch/powerpc/sysdev/fsl_soc.c
The typical pattern is:
if of_find_compatible_node of-device-name
platform_device_register_simple platform-device-name 
platform_device_add_data ...

  

On 7/3/07, Kári Davíðsson [EMAIL PROTECTED] wrote: 

Hi,

I am attempting to get some non OF devices working for an mpc 5200 
board, in particular 
PCF8563 RTC.

This device has an non OF device interface which I believe is correct. 
After all it should work
on non OF platforms.

I have managed to get the board to run the i2c initialization (and 
probe) for the fsl-mpc i2c driver by 
converting the fsl-mpc i2c driver to OF driver (I found some patch here 
that I based this work on).


fsl-i2c is one of the devices handled by fsl_soc.c so you shouldn't need to 
change anything to 
make it work in the latest kernel.  CONFIG_FSL_SOC was only added to 
lite5200_defconfig recently so 
that may explain why it's not on in your kernel.



Since the PCF8563 driver is not OF driver only its initaliziation code 
is run but the .probe function
of the driver is never run. Basically (as far as I can understand) the 
.probe is never run because the
driver is not an OF driver. 

I could convert the PCF8563 driver to OF driver and make it work for 
our puposes but I feel this is
1) Wrong
2) therefore wasted work.


Since the driver must run on non OF platforms then it should not be converted.  
You just need to add a platform_device_register somewhere. 
I don't think fsl_soc.c is  the right place since it is not part of an 
freescale SOC.
You could probably put it in a board specific startup routine.



What seems to elude me is some glue that glues together the OF part of 
the driver space to the non OF part
of the driver space.

Any hints or pointers on where to find this glue?

Regards,
kd

P.S. Kernel is post 2.6.20.

--
Kári Davíðsson   | [EMAIL PROTECTED]
Hugbúnaðargerð   | www.marel.com
Tel: 563-8156 Fax: +354 563 8001 
Iceland
___
Linuxppc-embedded mailing list
Linuxppc-embedded@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-embedded



___
Linuxppc-embedded mailing list
Linuxppc-embedded@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-embedded


Re: OF devices and non OF devices

2007-07-03 Thread John Rigby

One place to find binding between OF devices and non OF devices is in
arch/powerpc/sysdev/fsl_soc.c
The typical pattern is:
   if of_find_compatible_node of-device-name
   platform_device_register_simple platform-device-name
   platform_device_add_data ...


On 7/3/07, Kári Davíðsson [EMAIL PROTECTED] wrote:


Hi,

I am attempting to get some non OF devices working for an mpc 5200 board,
in particular
PCF8563 RTC.

This device has an non OF device interface which I believe is correct.
After all it should work
on non OF platforms.

I have managed to get the board to run the i2c initialization (and probe)
for the fsl-mpc i2c driver by
converting the fsl-mpc i2c driver to OF driver (I found some patch here
that I based this work on).



fsl-i2c is one of the devices handled by fsl_soc.c so you shouldn't need to
change anything to
make it work in the latest kernel.  CONFIG_FSL_SOC was only added to
lite5200_defconfig recently so
that may explain why it's not on in your kernel.

Since the PCF8563 driver is not OF driver only its initaliziation code is

run but the .probe function
of the driver is never run. Basically (as far as I can understand) the
.probe is never run because the
driver is not an OF driver.

I could convert the PCF8563 driver to OF driver and make it work for our
puposes but I feel this is
1) Wrong
2) therefore wasted work.



Since the driver must run on non OF platforms then it should not be
converted.  You just need to add a platform_device_register somewhere.
I don't think fsl_soc.c is  the right place since it is not part of an
freescale SOC.
You could probably put it in a board specific startup routine.

What seems to elude me is some glue that glues together the OF part of the

driver space to the non OF part
of the driver space.

Any hints or pointers on where to find this glue?

Regards,
kd

P.S. Kernel is post 2.6.20.

--
Kári Davíðsson   | [EMAIL PROTECTED]
Hugbúnaðargerð   | www.marel.com
Tel: 563-8156 Fax: +354 563 8001
Iceland
___
Linuxppc-embedded mailing list
Linuxppc-embedded@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-embedded

___
Linuxppc-embedded mailing list
Linuxppc-embedded@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-embedded