diff options
| author | Lennert Buytenhek <buytenh@wantstofly.org> | 2008-08-09 15:38:18 +0200 | 
|---|---|---|
| committer | Lennert Buytenhek <buytenh@marvell.com> | 2008-08-09 15:38:18 +0200 | 
| commit | 18365d181fe7fee8b52cd12482200d3a4c48d05e (patch) | |
| tree | 012a7e80cea61239be59e366cbfd1deef3ae83c5 /arch/arm | |
| parent | 60296c71f6c5063e3c1f1d2619ca0b60940162e7 (diff) | |
| download | linux-18365d181fe7fee8b52cd12482200d3a4c48d05e.tar.bz2 | |
[ARM] Kirkwood: instantiate the orion_spi driver in the platform code
Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
Diffstat (limited to 'arch/arm')
| -rw-r--r-- | arch/arm/mach-kirkwood/common.c | 32 | ||||
| -rw-r--r-- | arch/arm/mach-kirkwood/common.h | 1 | ||||
| -rw-r--r-- | arch/arm/mach-kirkwood/rd88f6192-nas-setup.c | 21 | 
3 files changed, 54 insertions, 0 deletions
| diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c index 693dc32b606b..189f16f3619d 100644 --- a/arch/arm/mach-kirkwood/common.c +++ b/arch/arm/mach-kirkwood/common.c @@ -15,6 +15,7 @@  #include <linux/mbus.h>  #include <linux/mv643xx_eth.h>  #include <linux/ata_platform.h> +#include <linux/spi/orion_spi.h>  #include <asm/page.h>  #include <asm/timex.h>  #include <asm/mach/map.h> @@ -197,6 +198,37 @@ void __init kirkwood_sata_init(struct mv_sata_platform_data *sata_data)  /***************************************************************************** + * SPI + ****************************************************************************/ +static struct orion_spi_info kirkwood_spi_plat_data = { +	.tclk		= KIRKWOOD_TCLK, +}; + +static struct resource kirkwood_spi_resources[] = { +	{ +		.start	= SPI_PHYS_BASE, +		.end	= SPI_PHYS_BASE + SZ_512 - 1, +		.flags	= IORESOURCE_MEM, +	}, +}; + +static struct platform_device kirkwood_spi = { +	.name		= "orion_spi", +	.id		= 0, +	.resource	= kirkwood_spi_resources, +	.dev		= { +		.platform_data	= &kirkwood_spi_plat_data, +	}, +	.num_resources	= ARRAY_SIZE(kirkwood_spi_resources), +}; + +void __init kirkwood_spi_init() +{ +	platform_device_register(&kirkwood_spi); +} + + +/*****************************************************************************   * UART0   ****************************************************************************/  static struct plat_serial8250_port kirkwood_uart0_data[] = { diff --git a/arch/arm/mach-kirkwood/common.h b/arch/arm/mach-kirkwood/common.h index 6f94cda81de6..69cd113af03a 100644 --- a/arch/arm/mach-kirkwood/common.h +++ b/arch/arm/mach-kirkwood/common.h @@ -33,6 +33,7 @@ void kirkwood_ge00_init(struct mv643xx_eth_platform_data *eth_data);  void kirkwood_pcie_init(void);  void kirkwood_rtc_init(void);  void kirkwood_sata_init(struct mv_sata_platform_data *sata_data); +void kirkwood_spi_init(void);  void kirkwood_uart0_init(void);  void kirkwood_uart1_init(void);  void kirkwood_xor0_init(void); diff --git a/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c b/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c index 062c3216b8aa..a3012d445971 100644 --- a/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c +++ b/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c @@ -18,6 +18,9 @@  #include <linux/timer.h>  #include <linux/ata_platform.h>  #include <linux/mv643xx_eth.h> +#include <linux/spi/flash.h> +#include <linux/spi/spi.h> +#include <linux/spi/orion_spi.h>  #include <asm/mach-types.h>  #include <asm/mach/arch.h>  #include <asm/mach/pci.h> @@ -34,6 +37,21 @@ static struct mv_sata_platform_data rd88f6192_sata_data = {  	.n_ports	= 2,  }; +static const struct flash_platform_data rd88F6192_spi_slave_data = { +	.type		= "m25p128", +}; + +static struct spi_board_info __initdata rd88F6192_spi_slave_info[] = { +	{ +		.modalias	= "m25p80", +		.platform_data	= &rd88F6192_spi_slave_data, +		.irq		= -1, +		.max_speed_hz	= 20000000, +		.bus_num	= 0, +		.chip_select	= 0, +	}, +}; +  static void __init rd88f6192_init(void)  {  	/* @@ -45,6 +63,9 @@ static void __init rd88f6192_init(void)  	kirkwood_ge00_init(&rd88f6192_ge00_data);  	kirkwood_rtc_init();  	kirkwood_sata_init(&rd88f6192_sata_data); +	spi_register_board_info(rd88F6192_spi_slave_info, +				ARRAY_SIZE(rd88F6192_spi_slave_info)); +	kirkwood_spi_init();  	kirkwood_uart0_init();  	kirkwood_xor0_init();  	kirkwood_xor1_init(); |