dev-onenand.c 1.4 KB

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