diff options
| author | Padmavathi Venna <padma.v@samsung.com> | 2011-12-23 10:14:31 +0900 | 
|---|---|---|
| committer | Kukjin Kim <kgene.kim@samsung.com> | 2011-12-23 10:49:53 +0900 | 
| commit | 875a59374cd10200ac24f03877ccd8f73af590cc (patch) | |
| tree | a7a933bd6a567fd2daa51439bcb17597aa337814 /arch/arm/mach-s5pc100 | |
| parent | a153e31abb01484d0088ac28425dc98204848ad4 (diff) | |
| download | linux-875a59374cd10200ac24f03877ccd8f73af590cc.tar.bz2 | |
ARM: SAMSUNG: Consolidation of SPI platform devices to plat-samsung
SPI platform device definitions consolidated from respective machine
folder to plat-samsung
Signed-off-by: Padmavathi Venna <padma.v@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Diffstat (limited to 'arch/arm/mach-s5pc100')
| -rw-r--r-- | arch/arm/mach-s5pc100/Makefile | 1 | ||||
| -rw-r--r-- | arch/arm/mach-s5pc100/dev-spi.c | 220 | 
2 files changed, 0 insertions, 221 deletions
| diff --git a/arch/arm/mach-s5pc100/Makefile b/arch/arm/mach-s5pc100/Makefile index 2320e5495a55..238a836b3f7f 100644 --- a/arch/arm/mach-s5pc100/Makefile +++ b/arch/arm/mach-s5pc100/Makefile @@ -25,7 +25,6 @@ obj-$(CONFIG_S5PC100_SETUP_SDHCI_GPIO)	+= setup-sdhci-gpio.o  # device support  obj-y				+= dev-audio.o -obj-$(CONFIG_S3C64XX_DEV_SPI)	+= dev-spi.o  # machine support diff --git a/arch/arm/mach-s5pc100/dev-spi.c b/arch/arm/mach-s5pc100/dev-spi.c deleted file mode 100644 index 155f50da2d78..000000000000 --- a/arch/arm/mach-s5pc100/dev-spi.c +++ /dev/null @@ -1,220 +0,0 @@ -/* linux/arch/arm/mach-s5pc100/dev-spi.c - * - * Copyright (C) 2010 Samsung Electronics Co. Ltd. - *	Jaswinder Singh <jassi.brar@samsung.com> - * - * 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. - */ - -#include <linux/platform_device.h> -#include <linux/dma-mapping.h> -#include <linux/gpio.h> - -#include <mach/dma.h> -#include <mach/map.h> -#include <mach/spi-clocks.h> -#include <mach/irqs.h> - -#include <plat/s3c64xx-spi.h> -#include <plat/gpio-cfg.h> -#include <plat/irqs.h> - -/* SPI Controller platform_devices */ - -/* Since we emulate multi-cs capability, we do not touch the CS. - * The emulated CS is toggled by board specific mechanism, as it can - * be either some immediate GPIO or some signal out of some other - * chip in between ... or some yet another way. - * We simply do not assume anything about CS. - */ -static int s5pc100_spi_cfg_gpio(struct platform_device *pdev) -{ -	switch (pdev->id) { -	case 0: -		s3c_gpio_cfgall_range(S5PC100_GPB(0), 3, -				      S3C_GPIO_SFN(2), S3C_GPIO_PULL_UP); -		break; - -	case 1: -		s3c_gpio_cfgall_range(S5PC100_GPB(4), 3, -				      S3C_GPIO_SFN(2), S3C_GPIO_PULL_UP); -		break; - -	case 2: -		s3c_gpio_cfgpin(S5PC100_GPG3(0), S3C_GPIO_SFN(3)); -		s3c_gpio_setpull(S5PC100_GPG3(0), S3C_GPIO_PULL_UP); -		s3c_gpio_cfgall_range(S5PC100_GPB(2), 2, -				      S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP); -		break; - -	default: -		dev_err(&pdev->dev, "Invalid SPI Controller number!"); -		return -EINVAL; -	} - -	return 0; -} - -static struct resource s5pc100_spi0_resource[] = { -	[0] = { -		.start = S5PC100_PA_SPI0, -		.end   = S5PC100_PA_SPI0 + 0x100 - 1, -		.flags = IORESOURCE_MEM, -	}, -	[1] = { -		.start = DMACH_SPI0_TX, -		.end   = DMACH_SPI0_TX, -		.flags = IORESOURCE_DMA, -	}, -	[2] = { -		.start = DMACH_SPI0_RX, -		.end   = DMACH_SPI0_RX, -		.flags = IORESOURCE_DMA, -	}, -	[3] = { -		.start = IRQ_SPI0, -		.end   = IRQ_SPI0, -		.flags = IORESOURCE_IRQ, -	}, -}; - -static struct s3c64xx_spi_info s5pc100_spi0_pdata = { -	.cfg_gpio = s5pc100_spi_cfg_gpio, -	.fifo_lvl_mask = 0x7f, -	.rx_lvl_offset = 13, -	.high_speed = 1, -	.tx_st_done = 21, -}; - -static u64 spi_dmamask = DMA_BIT_MASK(32); - -struct platform_device s5pc100_device_spi0 = { -	.name		  = "s3c64xx-spi", -	.id		  = 0, -	.num_resources	  = ARRAY_SIZE(s5pc100_spi0_resource), -	.resource	  = s5pc100_spi0_resource, -	.dev = { -		.dma_mask		= &spi_dmamask, -		.coherent_dma_mask	= DMA_BIT_MASK(32), -		.platform_data = &s5pc100_spi0_pdata, -	}, -}; - -static struct resource s5pc100_spi1_resource[] = { -	[0] = { -		.start = S5PC100_PA_SPI1, -		.end   = S5PC100_PA_SPI1 + 0x100 - 1, -		.flags = IORESOURCE_MEM, -	}, -	[1] = { -		.start = DMACH_SPI1_TX, -		.end   = DMACH_SPI1_TX, -		.flags = IORESOURCE_DMA, -	}, -	[2] = { -		.start = DMACH_SPI1_RX, -		.end   = DMACH_SPI1_RX, -		.flags = IORESOURCE_DMA, -	}, -	[3] = { -		.start = IRQ_SPI1, -		.end   = IRQ_SPI1, -		.flags = IORESOURCE_IRQ, -	}, -}; - -static struct s3c64xx_spi_info s5pc100_spi1_pdata = { -	.cfg_gpio = s5pc100_spi_cfg_gpio, -	.fifo_lvl_mask = 0x7f, -	.rx_lvl_offset = 13, -	.high_speed = 1, -	.tx_st_done = 21, -}; - -struct platform_device s5pc100_device_spi1 = { -	.name		  = "s3c64xx-spi", -	.id		  = 1, -	.num_resources	  = ARRAY_SIZE(s5pc100_spi1_resource), -	.resource	  = s5pc100_spi1_resource, -	.dev = { -		.dma_mask		= &spi_dmamask, -		.coherent_dma_mask	= DMA_BIT_MASK(32), -		.platform_data = &s5pc100_spi1_pdata, -	}, -}; - -static struct resource s5pc100_spi2_resource[] = { -	[0] = { -		.start = S5PC100_PA_SPI2, -		.end   = S5PC100_PA_SPI2 + 0x100 - 1, -		.flags = IORESOURCE_MEM, -	}, -	[1] = { -		.start = DMACH_SPI2_TX, -		.end   = DMACH_SPI2_TX, -		.flags = IORESOURCE_DMA, -	}, -	[2] = { -		.start = DMACH_SPI2_RX, -		.end   = DMACH_SPI2_RX, -		.flags = IORESOURCE_DMA, -	}, -	[3] = { -		.start = IRQ_SPI2, -		.end   = IRQ_SPI2, -		.flags = IORESOURCE_IRQ, -	}, -}; - -static struct s3c64xx_spi_info s5pc100_spi2_pdata = { -	.cfg_gpio = s5pc100_spi_cfg_gpio, -	.fifo_lvl_mask = 0x7f, -	.rx_lvl_offset = 13, -	.high_speed = 1, -	.tx_st_done = 21, -}; - -struct platform_device s5pc100_device_spi2 = { -	.name		  = "s3c64xx-spi", -	.id		  = 2, -	.num_resources	  = ARRAY_SIZE(s5pc100_spi2_resource), -	.resource	  = s5pc100_spi2_resource, -	.dev = { -		.dma_mask		= &spi_dmamask, -		.coherent_dma_mask	= DMA_BIT_MASK(32), -		.platform_data = &s5pc100_spi2_pdata, -	}, -}; - -void __init s5pc100_spi_set_info(int cntrlr, int src_clk_nr, int num_cs) -{ -	struct s3c64xx_spi_info *pd; - -	/* Reject invalid configuration */ -	if (!num_cs || src_clk_nr < 0 -			|| src_clk_nr > S5PC100_SPI_SRCCLK_SPIBUS) { -		printk(KERN_ERR "%s: Invalid SPI configuration\n", __func__); -		return; -	} - -	switch (cntrlr) { -	case 0: -		pd = &s5pc100_spi0_pdata; -		break; -	case 1: -		pd = &s5pc100_spi1_pdata; -		break; -	case 2: -		pd = &s5pc100_spi2_pdata; -		break; -	default: -		printk(KERN_ERR "%s: Invalid SPI controller(%d)\n", -							__func__, cntrlr); -		return; -	} - -	pd->num_cs = num_cs; -	pd->src_clk_nr = src_clk_nr; -} |