Patchwork [spi_mpc83xx] Always enable legacy support.

login
register
mail settings
Submitter Joakim Tjernlund
Date July 1, 2009, 7:16 p.m.
Message ID <1246475772-10645-1-git-send-email-Joakim.Tjernlund@transmode.se>
Download mbox | patch
Permalink /patch/29364/
State Superseded
Delegated to: Kumar Gala
Headers show

Comments

Joakim Tjernlund - July 1, 2009, 7:16 p.m.
There are out of tree boards that need this legacy support too.

Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
---
I hope this is OK. I just discovered that spi didn't work for
me in 2.6.30 and I have no time to work on coverting my boards.
I don't have a clue either on how to do that, any pointers
how to add a few spidev devices via OF?

 drivers/spi/spi_mpc83xx.c |    5 -----
 1 files changed, 0 insertions(+), 5 deletions(-)
Anton Vorontsov - July 1, 2009, 9:12 p.m.
On Wed, Jul 01, 2009 at 09:16:12PM +0200, Joakim Tjernlund wrote:
> There are out of tree boards that need this legacy support too.

Heh.

> Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
> ---
> I hope this is OK. I just discovered that spi didn't work for
> me in 2.6.30 and I have no time to work on coverting my boards.

I'd convert them for you if they were in-tree. :-) But I don't
think that moving the kernel backwards because of out-of-tree
boards is a good thing.

> I don't have a clue either on how to do that, any pointers
> how to add a few spidev devices via OF?

Something like this will work:

		spi@4c0 {
			#address-cells = <1>;
			#size-cells = <0>;
			cell-index = <0>;
			compatible = "fsl,spi";
			reg = <0x4c0 0x40>;
			interrupts = <2>;
			interrupt-parent = <&qeic>;
			/* provide chip-selects here */
			gpios = <&qe_pio_d 13 0   /* CS0 */
				 &qe_pio_d 14 0>; /* CS1 */
			mode = "cpu-qe";

			device@0 {
				compatible = "spidev";
				reg = <0>; /* CS0*/
				spi-max-frequency = <50000000>;
			};

			device@0 {
				compatible = "spidev";
				reg = <1>; /* CS1 */
				spi-max-frequency = <50000000>;
			};
		};

You can look at arch/powerpc/boot/dts/mpc832x_rdb.dts as an
example.

Note that "spidev" isn't correct compatible entry to use,
but it's quick and dirty solution. A proper solution is to
add a proper compatible entry into the device-tree, and
add "spidev" alias into drivers/of/base.c:of_modalias_table.

>  drivers/spi/spi_mpc83xx.c |    5 -----
>  1 files changed, 0 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/spi/spi_mpc83xx.c b/drivers/spi/spi_mpc83xx.c
> index f4573a9..d167577 100644
> --- a/drivers/spi/spi_mpc83xx.c
> +++ b/drivers/spi/spi_mpc83xx.c
> @@ -882,7 +882,6 @@ static struct of_platform_driver of_mpc83xx_spi_driver = {
>  	.remove		= __devexit_p(of_mpc83xx_spi_remove),
>  };
>  
> -#ifdef CONFIG_MPC832x_RDB
>  /*
>   * 				XXX XXX XXX
>   * This is "legacy" platform driver, was used by the MPC8323E-RDB boards
> @@ -941,10 +940,6 @@ static void __exit legacy_driver_unregister(void)
>  		return;
>  	platform_driver_unregister(&mpc83xx_spi_driver);
>  }
> -#else
> -static void __init legacy_driver_register(void) {}
> -static void __exit legacy_driver_unregister(void) {}
> -#endif /* CONFIG_MPC832x_RDB */
>  
>  static int __init mpc83xx_spi_init(void)
>  {
> -- 
> 1.6.2.3
>
Joakim Tjernlund - July 2, 2009, 6:18 a.m.
Anton Vorontsov <avorontsov@ru.mvista.com> wrote on 01/07/2009 23:12:12:
>
> On Wed, Jul 01, 2009 at 09:16:12PM +0200, Joakim Tjernlund wrote:
> > There are out of tree boards that need this legacy support too.
>
> Heh.
>
> > Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
> > ---
> > I hope this is OK. I just discovered that spi didn't work for
> > me in 2.6.30 and I have no time to work on coverting my boards.
>
> I'd convert them for you if they were in-tree. :-) But I don't
> think that moving the kernel backwards because of out-of-tree
> boards is a good thing.

:), but allowing out-of-tree boards one or two kernel releases to catch up
with a legacy printout would have been nice.

>
> > I don't have a clue either on how to do that, any pointers
> > how to add a few spidev devices via OF?
>
> Something like this will work:
>
>       spi@4c0 {
>          #address-cells = <1>;
>          #size-cells = <0>;
>          cell-index = <0>;
>          compatible = "fsl,spi";
>          reg = <0x4c0 0x40>;
>          interrupts = <2>;
>          interrupt-parent = <&qeic>;
>          /* provide chip-selects here */
>          gpios = <&qe_pio_d 13 0   /* CS0 */
>              &qe_pio_d 14 0>; /* CS1 */
>          mode = "cpu-qe";
>
>          device@0 {
>             compatible = "spidev";
>             reg = <0>; /* CS0*/
>             spi-max-frequency = <50000000>;
>          };
>
>          device@0 {
>             compatible = "spidev";
>             reg = <1>; /* CS1 */
>             spi-max-frequency = <50000000>;
>          };
>       };
>
> You can look at arch/powerpc/boot/dts/mpc832x_rdb.dts as an
> example.
>
> Note that "spidev" isn't correct compatible entry to use,
> but it's quick and dirty solution. A proper solution is to
> add a proper compatible entry into the device-tree, and
> add "spidev" alias into drivers/of/base.c:of_modalias_table.

Thanks

  Jocke

Patch

diff --git a/drivers/spi/spi_mpc83xx.c b/drivers/spi/spi_mpc83xx.c
index f4573a9..d167577 100644
--- a/drivers/spi/spi_mpc83xx.c
+++ b/drivers/spi/spi_mpc83xx.c
@@ -882,7 +882,6 @@  static struct of_platform_driver of_mpc83xx_spi_driver = {
 	.remove		= __devexit_p(of_mpc83xx_spi_remove),
 };
 
-#ifdef CONFIG_MPC832x_RDB
 /*
  * 				XXX XXX XXX
  * This is "legacy" platform driver, was used by the MPC8323E-RDB boards
@@ -941,10 +940,6 @@  static void __exit legacy_driver_unregister(void)
 		return;
 	platform_driver_unregister(&mpc83xx_spi_driver);
 }
-#else
-static void __init legacy_driver_register(void) {}
-static void __exit legacy_driver_unregister(void) {}
-#endif /* CONFIG_MPC832x_RDB */
 
 static int __init mpc83xx_spi_init(void)
 {