4d26fa6ce729b9d29c0b78e299d7d2f525571a5e
[oweals/openwrt.git] / target / linux / ixp4xx / patches-2.6.25 / 310-gtwx5717_spi_bus.patch
1 Index: linux-2.6.25.4/arch/arm/mach-ixp4xx/gtwx5715-setup.c
2 ===================================================================
3 --- linux-2.6.25.4.orig/arch/arm/mach-ixp4xx/gtwx5715-setup.c
4 +++ linux-2.6.25.4/arch/arm/mach-ixp4xx/gtwx5715-setup.c
5 @@ -29,6 +29,8 @@
6  #include <linux/serial_8250.h>
7  #include <linux/slab.h>
8  
9 +#include <linux/spi/spi_gpio.h>
10 +
11  #include <asm/types.h>
12  #include <asm/setup.h>
13  #include <asm/memory.h>
14 @@ -121,9 +123,41 @@ static struct platform_device gtwx5715_f
15         .resource       = &gtwx5715_flash_resource,
16  };
17  
18 +static int gtwx5715_spi_boardinfo_setup(struct spi_board_info *bi,
19 +               struct spi_master *master, void *data)
20 +{
21 +
22 +       strlcpy(bi->modalias, "spi-ks8995", sizeof(bi->modalias));
23 +
24 +       bi->max_speed_hz = 5000000 /* Hz */;
25 +       bi->bus_num = master->bus_num;
26 +       bi->mode = SPI_MODE_0;
27 +
28 +       return 0;
29 +}
30 +
31 +static struct spi_gpio_platform_data gtwx5715_spi_bus_data = {
32 +       .pin_cs                 = GTWX5715_KSSPI_SELECT,
33 +       .pin_clk                = GTWX5715_KSSPI_CLOCK,
34 +       .pin_miso               = GTWX5715_KSSPI_RXD,
35 +       .pin_mosi               = GTWX5715_KSSPI_TXD,
36 +       .cs_activelow           = 1,
37 +       .no_spi_delay           = 1,
38 +       .boardinfo_setup        = gtwx5715_spi_boardinfo_setup,
39 +};
40 +
41 +static struct platform_device gtwx5715_spi_bus = {
42 +       .name           = "spi-gpio",
43 +       .id             = 0,
44 +       .dev            = {
45 +               .platform_data = &gtwx5715_spi_bus_data,
46 +       },
47 +};
48 +
49  static struct platform_device *gtwx5715_devices[] __initdata = {
50         &gtwx5715_uart_device,
51         &gtwx5715_flash,
52 +       &gtwx5715_spi_bus,
53  };
54  
55  static void __init gtwx5715_init(void)