xilinx_spi: Split into of driver and generic part.
Subsystems (2)
PATCH v3 1/4 xilinx_spi: Split into of driver and generic part.
This patch splits the xilinx_spi driver into a generic part and a OF driver part.
The reason for this is to later add in a platform driver as well.
Tested-by John Linn <[email protected]>
Signed-off-by Richard Röjfors <[email protected]>
---
drivers/spi/Kconfig +8 -1
@@ -236,14 +236,21 @@ config SPI_TXX9 config SPI_XILINX tristate "Xilinx SPI controller" - depends on (XILINX_VIRTEX || MICROBLAZE) && EXPERIMENTAL + depends on EXPERIMENTAL select SPI_BITBANG + select SPI_XILINX_OF if (XILINX_VIRTEX || MICROBLAZE) help This exposes the SPI controller IP from the Xilinx EDK. See the "OPB Serial Peripheral Interface (SPI) (v1.00e)" Product Specification document (DS464) for hardware details. +config SPI_XILINX_OF + tristate "Xilinx SPI controller OF device" + depends on SPI_XILINX && (XILINX_VIRTEX || MICROBLAZE) + help + This is the OF driver for the SPI controller IP from the Xilinx EDK. + # # Add new SPI master controllers in alphabetical order above this line #
drivers/spi/Makefile +1 -0
@@ -31,6 +31,7 @@ obj-$(CONFIG_SPI_S3C24XX_GPIO) += spi_s3c24xx_gpio.o obj-$(CONFIG_SPI_S3C24XX) += spi_s3c24xx.o obj-$(CONFIG_SPI_TXX9) += spi_txx9.o obj-$(CONFIG_SPI_XILINX) += xilinx_spi.o +obj-$(CONFIG_SPI_XILINX_OF) += xilinx_spi_of.o obj-$(CONFIG_SPI_SH_SCI) += spi_sh_sci.o obj-$(CONFIG_SPI_STMP3XXX) += spi_stmp.o # ... add above this line ...
drivers/spi/xilinx_spi.c +39 -120
230 lines not on this page · raw message
drivers/spi/xilinx_spi.h new file +32 -0
@@ -0,0 +1,32 @@ +/* +* Xilinx SPI device driver API and platform data header file +* +* Copyright (c) 2009 Intel Corporation +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 as +* published by the Free Software Foundation. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#ifndef _XILINX_SPI_H_ +#define _XILINX_SPI_H_ + +#include <linux/spi/spi.h> +#include <linux/spi/spi_bitbang.h> + +#define XILINX_SPI_NAME "xilinx_spi" + +struct spi_master *xilinx_spi_init (struct device *dev,struct resource *mem, +u32 irq,s16 bus_num); + +void xilinx_spi_deinit (struct spi_master *master); +#endif
drivers/spi/xilinx_spi_of.c new file +133 -0
133 lines not on this page · raw message
include/linux/spi/xilinx_spi.h new file +16 -0
@@ -0,0 +1,16 @@ +#ifndef __LINUX_SPI_XILINX_SPI_H +#define __LINUX_SPI_XILINX_SPI_H + +/** +* struct xspi_platform_data - Platform data of the Xilinx SPI driver +* @num_chipselect: Number of chip select by the IP +* @devices: Devices to add when the driver is probed. +* @num_devices: Number of devices in the devices array. +*/ +struct xspi_platform_data { +u16 num_chipselect; +struct spi_board_info *devices; +u8 num_devices; +}; + +#endif /* __LINUX_SPI_XILINX_SPI_H */