devices-common.h 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  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 <linux/kernel.h>
  10. #include <linux/platform_device.h>
  11. #include <linux/init.h>
  12. struct platform_device *imx_add_platform_device(const char *name, int id,
  13. const struct resource *res, unsigned int num_resources,
  14. const void *data, size_t size_data);
  15. #include <linux/can/platform/flexcan.h>
  16. struct platform_device *__init imx_add_flexcan(int id,
  17. resource_size_t iobase, resource_size_t iosize,
  18. resource_size_t irq,
  19. const struct flexcan_platform_data *pdata);
  20. #include <mach/i2c.h>
  21. struct imx_imx_i2c_data {
  22. int id;
  23. resource_size_t iobase;
  24. resource_size_t iosize;
  25. resource_size_t irq;
  26. };
  27. struct platform_device *__init imx_add_imx_i2c(
  28. const struct imx_imx_i2c_data *data,
  29. const struct imxi2c_platform_data *pdata);
  30. #include <mach/ssi.h>
  31. struct imx_imx_ssi_data {
  32. int id;
  33. resource_size_t iobase;
  34. resource_size_t iosize;
  35. resource_size_t irq;
  36. resource_size_t dmatx0;
  37. resource_size_t dmarx0;
  38. resource_size_t dmatx1;
  39. resource_size_t dmarx1;
  40. };
  41. struct platform_device *__init imx_add_imx_ssi(
  42. const struct imx_imx_ssi_data *data,
  43. const struct imx_ssi_platform_data *pdata);
  44. #include <mach/imx-uart.h>
  45. struct imx_imx_uart_3irq_data {
  46. int id;
  47. resource_size_t iobase;
  48. resource_size_t iosize;
  49. resource_size_t irqrx;
  50. resource_size_t irqtx;
  51. resource_size_t irqrts;
  52. };
  53. struct platform_device *__init imx_add_imx_uart_3irq(
  54. const struct imx_imx_uart_3irq_data *data,
  55. const struct imxuart_platform_data *pdata);
  56. struct imx_imx_uart_1irq_data {
  57. int id;
  58. resource_size_t iobase;
  59. resource_size_t iosize;
  60. resource_size_t irq;
  61. };
  62. struct platform_device *__init imx_add_imx_uart_1irq(
  63. const struct imx_imx_uart_1irq_data *data,
  64. const struct imxuart_platform_data *pdata);
  65. #include <mach/mxc_nand.h>
  66. struct imx_mxc_nand_data {
  67. resource_size_t iobase;
  68. resource_size_t iosize;
  69. resource_size_t irq;
  70. };
  71. struct platform_device *__init imx_add_mxc_nand(
  72. const struct imx_mxc_nand_data *data,
  73. const struct mxc_nand_platform_data *pdata);
  74. #include <mach/spi.h>
  75. struct imx_spi_imx_data {
  76. const char *devid;
  77. int id;
  78. resource_size_t iobase;
  79. resource_size_t iosize;
  80. int irq;
  81. };
  82. struct platform_device *__init imx_add_spi_imx(
  83. const struct imx_spi_imx_data *data,
  84. const struct spi_imx_master *pdata);