devices-common.h 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. /*
  2. * Copyright (C) ST-Ericsson SA 2010
  3. *
  4. * Author: Rabin Vincent <rabin.vincent@stericsson.com> for ST-Ericsson
  5. * License terms: GNU General Public License (GPL), version 2.
  6. */
  7. #ifndef __DEVICES_COMMON_H
  8. #define __DEVICES_COMMON_H
  9. #include <linux/platform_device.h>
  10. #include <linux/dma-mapping.h>
  11. #include <linux/sys_soc.h>
  12. #include <linux/amba/bus.h>
  13. struct spi_master_cntlr;
  14. static inline struct amba_device *
  15. dbx500_add_spi(struct device *parent, const char *name, resource_size_t base,
  16. int irq, struct spi_master_cntlr *pdata,
  17. u32 periphid)
  18. {
  19. return amba_ahb_device_add(parent, name, base, SZ_4K, irq, 0,
  20. pdata, periphid);
  21. }
  22. struct mmci_platform_data;
  23. static inline struct amba_device *
  24. dbx500_add_sdi(struct device *parent, const char *name, resource_size_t base,
  25. int irq, struct mmci_platform_data *pdata, u32 periphid)
  26. {
  27. return amba_ahb_device_add(parent, name, base, SZ_4K, irq, 0,
  28. pdata, periphid);
  29. }
  30. struct amba_pl011_data;
  31. static inline struct amba_device *
  32. dbx500_add_uart(struct device *parent, const char *name, resource_size_t base,
  33. int irq, struct amba_pl011_data *pdata)
  34. {
  35. return amba_ahb_device_add(parent, name, base, SZ_4K, irq, 0, pdata, 0);
  36. }
  37. static inline struct amba_device *
  38. dbx500_add_rtc(struct device *parent, resource_size_t base, int irq)
  39. {
  40. return amba_apb_device_add(parent, "rtc-pl031", base, SZ_4K, irq,
  41. 0, NULL, 0);
  42. }
  43. struct nmk_gpio_platform_data;
  44. void dbx500_add_gpios(struct device *parent, resource_size_t *base, int num,
  45. int irq, struct nmk_gpio_platform_data *pdata);
  46. static inline void
  47. dbx500_add_pinctrl(struct device *parent, const char *name,
  48. resource_size_t base)
  49. {
  50. struct resource res[] = {
  51. DEFINE_RES_MEM(base, SZ_8K),
  52. };
  53. struct platform_device_info pdevinfo = {
  54. .parent = parent,
  55. .name = name,
  56. .id = -1,
  57. .res = res,
  58. .num_res = ARRAY_SIZE(res),
  59. };
  60. platform_device_register_full(&pdevinfo);
  61. }
  62. #endif