]> Pileus Git - ~andy/linux/blob - arch/arm/mach-s5p64x0/setup-spi.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[~andy/linux] / arch / arm / mach-s5p64x0 / setup-spi.c
1 /* linux/arch/arm/mach-s5p64x0/setup-spi.c
2  *
3  * Copyright (C) 2011 Samsung Electronics Ltd.
4  *              http://www.samsung.com/
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  */
10
11 #include <linux/gpio.h>
12 #include <linux/platform_device.h>
13 #include <linux/io.h>
14
15 #include <plat/gpio-cfg.h>
16 #include <plat/cpu.h>
17 #include <plat/s3c64xx-spi.h>
18
19 #ifdef CONFIG_S3C64XX_DEV_SPI0
20 struct s3c64xx_spi_info s3c64xx_spi0_pdata __initdata = {
21         .fifo_lvl_mask  = 0x1ff,
22         .rx_lvl_offset  = 15,
23         .tx_st_done     = 25,
24 };
25
26 int s3c64xx_spi0_cfg_gpio(struct platform_device *dev)
27 {
28         if (soc_is_s5p6450())
29                 s3c_gpio_cfgall_range(S5P6450_GPC(0), 3,
30                                         S3C_GPIO_SFN(2), S3C_GPIO_PULL_UP);
31         else
32                 s3c_gpio_cfgall_range(S5P6440_GPC(0), 3,
33                                         S3C_GPIO_SFN(2), S3C_GPIO_PULL_UP);
34         return 0;
35 }
36 #endif
37
38 #ifdef CONFIG_S3C64XX_DEV_SPI1
39 struct s3c64xx_spi_info s3c64xx_spi1_pdata __initdata = {
40         .fifo_lvl_mask  = 0x7f,
41         .rx_lvl_offset  = 15,
42         .tx_st_done     = 25,
43 };
44
45 int s3c64xx_spi1_cfg_gpio(struct platform_device *dev)
46 {
47         if (soc_is_s5p6450())
48                 s3c_gpio_cfgall_range(S5P6450_GPC(4), 3,
49                                         S3C_GPIO_SFN(2), S3C_GPIO_PULL_UP);
50         else
51                 s3c_gpio_cfgall_range(S5P6440_GPC(4), 3,
52                                         S3C_GPIO_SFN(2), S3C_GPIO_PULL_UP);
53         return 0;
54 }
55 #endif