aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-samsung/devs.c
diff options
context:
space:
mode:
authorPadmavathi Venna <padma.v@samsung.com>2011-12-22 20:14:31 -0500
committerKukjin Kim <kgene.kim@samsung.com>2011-12-22 20:49:53 -0500
commit875a59374cd10200ac24f03877ccd8f73af590cc (patch)
treea7a933bd6a567fd2daa51439bcb17597aa337814 /arch/arm/plat-samsung/devs.c
parenta153e31abb01484d0088ac28425dc98204848ad4 (diff)
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/plat-samsung/devs.c')
-rw-r--r--arch/arm/plat-samsung/devs.c118
1 files changed, 118 insertions, 0 deletions
diff --git a/arch/arm/plat-samsung/devs.c b/arch/arm/plat-samsung/devs.c
index 4ca8b571f971..8b27e61d0345 100644
--- a/arch/arm/plat-samsung/devs.c
+++ b/arch/arm/plat-samsung/devs.c
@@ -61,6 +61,7 @@
61#include <plat/regs-iic.h> 61#include <plat/regs-iic.h>
62#include <plat/regs-serial.h> 62#include <plat/regs-serial.h>
63#include <plat/regs-spi.h> 63#include <plat/regs-spi.h>
64#include <plat/s3c64xx-spi.h>
64 65
65static u64 samsung_device_dma_mask = DMA_BIT_MASK(32); 66static u64 samsung_device_dma_mask = DMA_BIT_MASK(32);
66 67
@@ -1461,3 +1462,120 @@ struct platform_device s3c_device_wdt = {
1461 .resource = s3c_wdt_resource, 1462 .resource = s3c_wdt_resource,
1462}; 1463};
1463#endif /* CONFIG_S3C_DEV_WDT */ 1464#endif /* CONFIG_S3C_DEV_WDT */
1465
1466#ifdef CONFIG_S3C64XX_DEV_SPI0
1467static struct resource s3c64xx_spi0_resource[] = {
1468 [0] = DEFINE_RES_MEM(S3C_PA_SPI0, SZ_256),
1469 [1] = DEFINE_RES_DMA(DMACH_SPI0_TX),
1470 [2] = DEFINE_RES_DMA(DMACH_SPI0_RX),
1471 [3] = DEFINE_RES_IRQ(IRQ_SPI0),
1472};
1473
1474struct platform_device s3c64xx_device_spi0 = {
1475 .name = "s3c64xx-spi",
1476 .id = 0,
1477 .num_resources = ARRAY_SIZE(s3c64xx_spi0_resource),
1478 .resource = s3c64xx_spi0_resource,
1479 .dev = {
1480 .dma_mask = &samsung_device_dma_mask,
1481 .coherent_dma_mask = DMA_BIT_MASK(32),
1482 },
1483};
1484
1485void __init s3c64xx_spi0_set_platdata(struct s3c64xx_spi_info *pd,
1486 int src_clk_nr, int num_cs)
1487{
1488 if (!pd) {
1489 pr_err("%s:Need to pass platform data\n", __func__);
1490 return;
1491 }
1492
1493 /* Reject invalid configuration */
1494 if (!num_cs || src_clk_nr < 0) {
1495 pr_err("%s: Invalid SPI configuration\n", __func__);
1496 return;
1497 }
1498
1499 pd->num_cs = num_cs;
1500 pd->src_clk_nr = src_clk_nr;
1501 s3c_set_platdata(pd, sizeof(*pd), &s3c64xx_device_spi0);
1502}
1503#endif /* CONFIG_S3C64XX_DEV_SPI0 */
1504
1505#ifdef CONFIG_S3C64XX_DEV_SPI1
1506static struct resource s3c64xx_spi1_resource[] = {
1507 [0] = DEFINE_RES_MEM(S3C_PA_SPI1, SZ_256),
1508 [1] = DEFINE_RES_DMA(DMACH_SPI1_TX),
1509 [2] = DEFINE_RES_DMA(DMACH_SPI1_RX),
1510 [3] = DEFINE_RES_IRQ(IRQ_SPI1),
1511};
1512
1513struct platform_device s3c64xx_device_spi1 = {
1514 .name = "s3c64xx-spi",
1515 .id = 1,
1516 .num_resources = ARRAY_SIZE(s3c64xx_spi1_resource),
1517 .resource = s3c64xx_spi1_resource,
1518 .dev = {
1519 .dma_mask = &samsung_device_dma_mask,
1520 .coherent_dma_mask = DMA_BIT_MASK(32),
1521 },
1522};
1523
1524void __init s3c64xx_spi1_set_platdata(struct s3c64xx_spi_info *pd,
1525 int src_clk_nr, int num_cs)
1526{
1527 if (!pd) {
1528 pr_err("%s:Need to pass platform data\n", __func__);
1529 return;
1530 }
1531
1532 /* Reject invalid configuration */
1533 if (!num_cs || src_clk_nr < 0) {
1534 pr_err("%s: Invalid SPI configuration\n", __func__);
1535 return;
1536 }
1537
1538 pd->num_cs = num_cs;
1539 pd->src_clk_nr = src_clk_nr;
1540 s3c_set_platdata(pd, sizeof(*pd), &s3c64xx_device_spi1);
1541}
1542#endif /* CONFIG_S3C64XX_DEV_SPI1 */
1543
1544#ifdef CONFIG_S3C64XX_DEV_SPI2
1545static struct resource s3c64xx_spi2_resource[] = {
1546 [0] = DEFINE_RES_MEM(S3C_PA_SPI2, SZ_256),
1547 [1] = DEFINE_RES_DMA(DMACH_SPI2_TX),
1548 [2] = DEFINE_RES_DMA(DMACH_SPI2_RX),
1549 [3] = DEFINE_RES_IRQ(IRQ_SPI2),
1550};
1551
1552struct platform_device s3c64xx_device_spi2 = {
1553 .name = "s3c64xx-spi",
1554 .id = 2,
1555 .num_resources = ARRAY_SIZE(s3c64xx_spi2_resource),
1556 .resource = s3c64xx_spi2_resource,
1557 .dev = {
1558 .dma_mask = &samsung_device_dma_mask,
1559 .coherent_dma_mask = DMA_BIT_MASK(32),
1560 },
1561};
1562
1563void __init s3c64xx_spi2_set_platdata(struct s3c64xx_spi_info *pd,
1564 int src_clk_nr, int num_cs)
1565{
1566 if (!pd) {
1567 pr_err("%s:Need to pass platform data\n", __func__);
1568 return;
1569 }
1570
1571 /* Reject invalid configuration */
1572 if (!num_cs || src_clk_nr < 0) {
1573 pr_err("%s: Invalid SPI configuration\n", __func__);
1574 return;
1575 }
1576
1577 pd->num_cs = num_cs;
1578 pd->src_clk_nr = src_clk_nr;
1579 s3c_set_platdata(pd, sizeof(*pd), &s3c64xx_device_spi2);
1580}
1581#endif /* CONFIG_S3C64XX_DEV_SPI2 */