• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
s3c64xx_spi0_cfg_gpio(struct platform_device * dev)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 
s3c64xx_spi1_cfg_gpio(struct platform_device * dev)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
56