Subject: RE: [RFC][PATCH] MPC832x_RDB: update dts to use spi, register mmc_spi stub

From: "Joakim Tjernlund" <[email-masked]>
Date: Thu, 26 Jul 2007 17:36:06 +0200

> -----Original Message-----
> From: 
> linuxppc-dev-bounces+joakim.tjernlund=[email-masked] 
> [mailto:linuxppc-dev-bounces+joakim.tjernlund=transmode.se@ozl
> abs.org] On Behalf Of Anton Vorontsov
> Sent: den 26 juli 2007 15:58
> To: [email-masked]
> Subject: [RFC][PATCH] MPC832x_RDB: update dts to use spi, 
> register mmc_spi stub
> 
> mmc_spi already tested to work. When it will hit mainline
> the only change that would be needed is replacing "spidev"
> by "mmc_spi", and adding trivial platform data to mmc_spi
> driver.
> 
> Signed-off-by: Anton Vorontsov <[email-masked]>
> ---
>  arch/powerpc/boot/dts/mpc832x_rdb.dts     |   33 
> ++++++++++++++++++++-
>  arch/powerpc/platforms/83xx/mpc832x_rdb.c |   46 
> +++++++++++++++++++++++++++++
>  2 files changed, 78 insertions(+), 1 deletions(-)
> 
> diff --git a/arch/powerpc/boot/dts/mpc832x_rdb.dts 
> b/arch/powerpc/boot/dts/mpc832x_rdb.dts
> index 7c4beff..5dcbdd3 100644
> --- a/arch/powerpc/boot/dts/mpc832x_rdb.dts
> +++ b/arch/powerpc/boot/dts/mpc832x_rdb.dts
> @@ -183,6 +183,21 @@
>  					1  c  1  0  1  0 	
> /* TX_EN */
>  					1  d  2  0  1  0>;      
> /* CRS */
>  			};
> +			spi1pio:spi_pin@01 {
> +				pio-map = <
> +			/* port  pin  dir  open_drain  
> assignment  has_irq    */
> +					3  0  3  0  1  0	
> /* SPI1 MOSI, I/O */
> +					3  1  3  0  1  0	
> /* SPI1 MISO, I/O */
> +					3  2  3  0  1  0	
> /* SPI1 CLK,  I/O */
> +					3  3  2  0  1  0>;	
> /* SPI1 SEL,  I   */
> +			};
> +			mmc1pio:mmc_pin@01 {
> +				pio-map = <
> +			/* port  pin  dir  open_drain  
> assignment  has_irq    */
> +					3  d  1  0  0  0	
> /* !SD_CS     */
> +					3  e  2  0  0  0	
> /* SD_INSERT  */
> +					3  f  2  0  0  0>;	
> /* SD_PROTECT */
> +			};
>  		};
>  	};
>  
> @@ -207,20 +222,36 @@
>  
>  		spi@4c0 {
>  			device_type = "spi";
> +			device-id = <1>;
>  			compatible = "fsl_spi";
>  			reg = <4c0 40>;
>  			interrupts = <2>;
>  			interrupt-parent = <&qeic>;
> -			mode = "cpu";
> +			mode = "qe";

The driver is still using "cpu" mode. It just happens that the cpu mode for QE
enabled CPUs isn't 100% compatible with the defacto cpu mode used by other CPU:s.
So mode should probably be "cpu_qe" or, even better, if the drver could
autodetect that it is running on a QE enabled CPU and adjust accordinly.
Maybe the Freescale guys have some ideas how to do that.

 Jocke

PS.
   Will be on vacation for a week as of tmw, won't have access
   during this time.