| /* |
| * From the header: |
| * |
| * This outlines the configuration (namely pins for SPI drivers) |
| * of the GFMN100 "WindCharger" board. |
| * |
| * GFMN100 Contains: |
| * |
| * -- One mx25l25655e nonvolatile storage device |
| * -- One lm95071 temperature sensor |
| */ |
| |
| #include <linux/init.h> |
| #include <linux/spi/spi.h> |
| #include <linux/mtd/mtd.h> |
| #include <linux/mtd/partitions.h> |
| |
| #include "common.h" |
| #include "dev-spi.h" |
| #include "dev-gfmn100.h" |
| |
| #define GFMN100_LM95071_CS 14 /* GPIO pin for temp sensor */ |
| #define GFMN100_LM95071_HZ 5000000 /* max SPI clk speed */ |
| #define GFMN100_LM95071_MA "lm95071" /* Modalias */ |
| |
| #define GFMN100_BUS 0 |
| |
| static struct ath79_spi_controller_data ath79_spi0_cdata = { |
| .cs_type = ATH79_SPI_CS_TYPE_INTERNAL, |
| .cs_line = 0, |
| .is_flash = true, |
| }; |
| |
| static struct ath79_spi_controller_data ath79_spi1_cdata = { |
| .cs_type = ATH79_SPI_CS_TYPE_GPIO, |
| .cs_line = GFMN100_LM95071_CS, |
| .is_flash = false, |
| }; |
| |
| static struct spi_board_info ath79_spi_info[] = { |
| { |
| .bus_num = GFMN100_BUS, |
| .chip_select = 0, |
| .max_speed_hz = 25000000, |
| .modalias = "mx25l25655e", |
| .controller_data = &ath79_spi0_cdata, |
| }, |
| { |
| .bus_num = GFMN100_BUS, |
| .chip_select = 1, |
| .max_speed_hz = GFMN100_LM95071_HZ, |
| .modalias = GFMN100_LM95071_MA, |
| .controller_data = &ath79_spi1_cdata, |
| }, |
| }; |
| |
| struct ath79_spi_platform_data ath79_spi_data; |
| |
| void __init ath79_register_gfmn100(void) |
| { |
| ssize_t cs_count = ARRAY_SIZE(ath79_spi_info); |
| ath79_spi_data.bus_num = GFMN100_BUS; |
| ath79_spi_data.num_chipselect = cs_count; |
| ath79_gpio_direction_select(GFMN100_LM95071_CS, true); |
| ath79_register_spi(&ath79_spi_data, ath79_spi_info, cs_count); |
| } |