common.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Header for code common to all DaVinci machines.
  4. *
  5. * Author: Kevin Hilman, MontaVista Software, Inc. <source@mvista.com>
  6. *
  7. * 2007 (c) MontaVista Software, Inc.
  8. */
  9. #ifndef __ARCH_ARM_MACH_DAVINCI_COMMON_H
  10. #define __ARCH_ARM_MACH_DAVINCI_COMMON_H
  11. #include <linux/clk.h>
  12. #include <linux/compiler.h>
  13. #include <linux/types.h>
  14. #include <linux/reboot.h>
  15. #include <asm/irq.h>
  16. #define DAVINCI_INTC_START NR_IRQS
  17. #define DAVINCI_INTC_IRQ(_irqnum) (DAVINCI_INTC_START + (_irqnum))
  18. struct davinci_gpio_controller;
  19. /*
  20. * SoC info passed into common davinci modules.
  21. *
  22. * Base addresses in this structure should be physical and not virtual.
  23. * Modules that take such base addresses, should internally ioremap() them to
  24. * use.
  25. */
  26. struct davinci_soc_info {
  27. struct map_desc *io_desc;
  28. unsigned long io_desc_num;
  29. u32 cpu_id;
  30. u32 jtag_id;
  31. u32 jtag_id_reg;
  32. struct davinci_id *ids;
  33. unsigned long ids_num;
  34. u32 pinmux_base;
  35. const struct mux_config *pinmux_pins;
  36. unsigned long pinmux_pins_num;
  37. int gpio_type;
  38. u32 gpio_base;
  39. unsigned gpio_num;
  40. unsigned gpio_irq;
  41. unsigned gpio_unbanked;
  42. dma_addr_t sram_dma;
  43. unsigned sram_len;
  44. };
  45. extern struct davinci_soc_info davinci_soc_info;
  46. extern void davinci_common_init(const struct davinci_soc_info *soc_info);
  47. void davinci_init_late(void);
  48. #ifdef CONFIG_SUSPEND
  49. int davinci_pm_init(void);
  50. #else
  51. static inline int davinci_pm_init(void) { return 0; }
  52. #endif
  53. void __init pdata_quirks_init(void);
  54. #define SRAM_SIZE SZ_128K
  55. #endif /* __ARCH_ARM_MACH_DAVINCI_COMMON_H */