1 /*icatch host mode ,spi device
\r
4 * This program is distributed in the hope that it will be useful,
\r
5 * but WITHOUT ANY WARRANTY; without even the implied warranty of
\r
6 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
\r
7 * GNU General Public License for more details.
\r
10 #include <linux/dma-mapping.h>
\r
11 #include <linux/interrupt.h>
\r
12 #include <linux/highmem.h>
\r
13 #include <linux/delay.h>
\r
14 #include <linux/slab.h>
\r
15 #include <linux/platform_device.h>
\r
16 #include <linux/clk.h>
\r
17 #include <linux/cpufreq.h>
\r
18 #include <mach/gpio.h>
\r
19 #include <mach/irqs.h>
\r
20 #include <linux/miscdevice.h>
\r
21 #include <asm/dma.h>
\r
22 #include <linux/preempt.h>
\r
23 #include <mach/board.h>
\r
24 #include "icatch_spi_host.h"
\r
25 #include <linux/miscdevice.h>
\r
26 struct spi_device* g_icatch_spi_dev = NULL;
\r
28 static int __devinit spi_icatch_probe(struct spi_device *spi)
\r
30 struct spi_test_data *spi_test_data;
\r
33 spi->bits_per_word = 8;
\r
34 spi->mode = SPI_MODE_0;
\r
35 ret = spi_setup(spi);
\r
37 dev_err(spi, "ERR: fail to setup spi\n");
\r
41 g_icatch_spi_dev = spi;
\r
43 printk("%s:bus_num=%d,ok\n",__func__,spi->master->bus_num);
\r
50 static struct spi_driver spi_icatch_driver = {
\r
52 .name = "spi_icatch",
\r
53 .bus = &spi_bus_type,
\r
54 .owner = THIS_MODULE,
\r
57 .probe = spi_icatch_probe,
\r
60 static struct miscdevice spi_test_icatch = {
\r
61 .minor = MISC_DYNAMIC_MINOR,
\r
62 .name = "spi_misc_icatch",
\r
65 static int __init spi_icatch_init(void)
\r
67 spi_register_board_info(board_spi_icatch_devices, ARRAY_SIZE(board_spi_icatch_devices));
\r
69 misc_register(&spi_test_icatch);
\r
70 return spi_register_driver(&spi_icatch_driver);
\r
73 static void __exit spi_icatch_exit(void)
\r
76 misc_deregister(&spi_test_icatch);
\r
77 return spi_unregister_driver(&spi_icatch_driver);
\r
79 module_init(spi_icatch_init);
\r
80 module_exit(spi_icatch_exit);
\r