Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  * Header for code common to all DaVinci machines.
0004  *
0005  * Author: Kevin Hilman, MontaVista Software, Inc. <source@mvista.com>
0006  *
0007  * 2007 (c) MontaVista Software, Inc.
0008  */
0009 
0010 #ifndef __ARCH_ARM_MACH_DAVINCI_COMMON_H
0011 #define __ARCH_ARM_MACH_DAVINCI_COMMON_H
0012 
0013 #include <linux/clk.h>
0014 #include <linux/compiler.h>
0015 #include <linux/types.h>
0016 #include <linux/reboot.h>
0017 
0018 #include <asm/irq.h>
0019 
0020 #define DAVINCI_INTC_START      NR_IRQS
0021 #define DAVINCI_INTC_IRQ(_irqnum)   (DAVINCI_INTC_START + (_irqnum))
0022 
0023 struct davinci_gpio_controller;
0024 
0025 /*
0026  * SoC info passed into common davinci modules.
0027  *
0028  * Base addresses in this structure should be physical and not virtual.
0029  * Modules that take such base addresses, should internally ioremap() them to
0030  * use.
0031  */
0032 struct davinci_soc_info {
0033     struct map_desc         *io_desc;
0034     unsigned long           io_desc_num;
0035     u32             cpu_id;
0036     u32             jtag_id;
0037     u32             jtag_id_reg;
0038     struct davinci_id       *ids;
0039     unsigned long           ids_num;
0040     u32             pinmux_base;
0041     const struct mux_config     *pinmux_pins;
0042     unsigned long           pinmux_pins_num;
0043     int             gpio_type;
0044     u32             gpio_base;
0045     unsigned            gpio_num;
0046     unsigned            gpio_irq;
0047     unsigned            gpio_unbanked;
0048     struct davinci_gpio_controller  *gpio_ctlrs;
0049     int             gpio_ctlrs_num;
0050     struct emac_platform_data   *emac_pdata;
0051     dma_addr_t          sram_dma;
0052     unsigned            sram_len;
0053 };
0054 
0055 extern struct davinci_soc_info davinci_soc_info;
0056 
0057 extern void davinci_common_init(const struct davinci_soc_info *soc_info);
0058 extern void davinci_init_ide(void);
0059 void davinci_init_late(void);
0060 
0061 #ifdef CONFIG_CPU_FREQ
0062 int davinci_cpufreq_init(void);
0063 #else
0064 static inline int davinci_cpufreq_init(void) { return 0; }
0065 #endif
0066 
0067 #ifdef CONFIG_SUSPEND
0068 int davinci_pm_init(void);
0069 #else
0070 static inline int davinci_pm_init(void) { return 0; }
0071 #endif
0072 
0073 void __init pdata_quirks_init(void);
0074 
0075 #define SRAM_SIZE   SZ_128K
0076 
0077 #endif /* __ARCH_ARM_MACH_DAVINCI_COMMON_H */