common.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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. <[email protected]>
  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. struct davinci_gpio_controller *gpio_ctlrs;
  43. int gpio_ctlrs_num;
  44. struct emac_platform_data *emac_pdata;
  45. dma_addr_t sram_dma;
  46. unsigned sram_len;
  47. };
  48. extern struct davinci_soc_info davinci_soc_info;
  49. extern void davinci_common_init(const struct davinci_soc_info *soc_info);
  50. extern void davinci_init_ide(void);
  51. void davinci_init_late(void);
  52. #ifdef CONFIG_CPU_FREQ
  53. int davinci_cpufreq_init(void);
  54. #else
  55. static inline int davinci_cpufreq_init(void) { return 0; }
  56. #endif
  57. #ifdef CONFIG_SUSPEND
  58. int davinci_pm_init(void);
  59. #else
  60. static inline int davinci_pm_init(void) { return 0; }
  61. #endif
  62. void __init pdata_quirks_init(void);
  63. #define SRAM_SIZE SZ_128K
  64. #endif /* __ARCH_ARM_MACH_DAVINCI_COMMON_H */