Root/arch/arm/plat-samsung/dev-onenand.c

1/*
2 * linux/arch/arm/plat-samsung/dev-onenand.c
3 *
4 * Copyright (c) 2008-2010 Samsung Electronics
5 * Kyungmin Park <kyungmin.park@samsung.com>
6 *
7 * S3C64XX/S5PC100 series device definition for OneNAND devices
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License version 2 as
11 * published by the Free Software Foundation.
12 */
13
14#include <linux/kernel.h>
15#include <linux/platform_device.h>
16#include <linux/mtd/mtd.h>
17#include <linux/mtd/onenand.h>
18
19#include <mach/irqs.h>
20#include <mach/map.h>
21
22static struct resource s3c_onenand_resources[] = {
23    [0] = {
24        .start = S3C_PA_ONENAND,
25        .end = S3C_PA_ONENAND + 0x400 - 1,
26        .flags = IORESOURCE_MEM,
27    },
28    [1] = {
29        .start = S3C_PA_ONENAND_BUF,
30        .end = S3C_PA_ONENAND_BUF + S3C_SZ_ONENAND_BUF - 1,
31        .flags = IORESOURCE_MEM,
32    },
33    [2] = {
34        .start = IRQ_ONENAND,
35        .end = IRQ_ONENAND,
36        .flags = IORESOURCE_IRQ,
37    },
38};
39
40struct platform_device s3c_device_onenand = {
41    .name = "samsung-onenand",
42    .id = 0,
43    .num_resources = ARRAY_SIZE(s3c_onenand_resources),
44    .resource = s3c_onenand_resources,
45};
46
47void s3c_onenand_set_platdata(struct onenand_platform_data *pdata)
48{
49    struct onenand_platform_data *pd;
50
51    pd = kmemdup(pdata, sizeof(struct onenand_platform_data), GFP_KERNEL);
52    if (!pd)
53        printk(KERN_ERR "%s: no memory for platform data\n", __func__);
54    s3c_device_onenand.dev.platform_data = pd;
55}
56

Archive Download this file



interactive