platform-imx-uart.c 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /*
  2. * Copyright (C) 2009-2010 Pengutronix
  3. * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
  4. *
  5. * This program is free software; you can redistribute it and/or modify it under
  6. * the terms of the GNU General Public License version 2 as published by the
  7. * Free Software Foundation.
  8. */
  9. #include <mach/devices-common.h>
  10. struct platform_device *__init imx_add_imx_uart_3irq(int id,
  11. resource_size_t iobase, resource_size_t iosize,
  12. resource_size_t irqrx, resource_size_t irqtx,
  13. resource_size_t irqrts,
  14. const struct imxuart_platform_data *pdata)
  15. {
  16. struct resource res[] = {
  17. {
  18. .start = iobase,
  19. .end = iobase + iosize - 1,
  20. .flags = IORESOURCE_MEM,
  21. }, {
  22. .start = irqrx,
  23. .end = irqrx,
  24. .flags = IORESOURCE_IRQ,
  25. }, {
  26. .start = irqtx,
  27. .end = irqtx,
  28. .flags = IORESOURCE_IRQ,
  29. }, {
  30. .start = irqrts,
  31. .end = irqrx,
  32. .flags = IORESOURCE_IRQ,
  33. },
  34. };
  35. return imx_add_platform_device("imx-uart", id, res, ARRAY_SIZE(res),
  36. pdata, sizeof(*pdata));
  37. }
  38. struct platform_device *__init imx_add_imx_uart_1irq(int id,
  39. resource_size_t iobase, resource_size_t iosize,
  40. resource_size_t irq,
  41. const struct imxuart_platform_data *pdata)
  42. {
  43. struct resource res[] = {
  44. {
  45. .start = iobase,
  46. .end = iobase + iosize - 1,
  47. .flags = IORESOURCE_MEM,
  48. }, {
  49. .start = irq,
  50. .end = irq,
  51. .flags = IORESOURCE_IRQ,
  52. },
  53. };
  54. return imx_add_platform_device("imx-uart", id, res, ARRAY_SIZE(res),
  55. pdata, sizeof(*pdata));
  56. }