2007-04-30 22:37:19 +04:00
/*
* Header for code common to all DaVinci machines .
*
* Author : Kevin Hilman , MontaVista Software , Inc . < source @ mvista . com >
*
* 2007 ( c ) MontaVista Software , Inc . This file is licensed under
* the terms of the GNU General Public License version 2. This program
* is licensed " as is " without any warranty of any kind , whether express
* or implied .
*/
# ifndef __ARCH_ARM_MACH_DAVINCI_COMMON_H
# define __ARCH_ARM_MACH_DAVINCI_COMMON_H
2010-04-21 17:33:32 +04:00
# include <linux/compiler.h>
# include <linux/types.h>
2007-04-30 22:37:19 +04:00
struct sys_timer ;
extern struct sys_timer davinci_timer ;
2009-04-14 20:30:11 +04:00
extern void davinci_irq_init ( void ) ;
2009-04-15 23:40:00 +04:00
extern void __iomem * davinci_intc_base ;
2009-04-15 23:41:40 +04:00
extern int davinci_intc_type ;
2009-04-14 20:30:11 +04:00
2009-04-15 23:40:11 +04:00
struct davinci_timer_instance {
2010-05-08 01:06:35 +04:00
u32 base ;
2009-04-15 23:40:11 +04:00
u32 bottom_irq ;
u32 top_irq ;
2009-04-15 23:41:54 +04:00
unsigned long cmp_off ;
unsigned int cmp_irq ;
2009-04-15 23:40:11 +04:00
} ;
struct davinci_timer_info {
struct davinci_timer_instance * timers ;
unsigned int clockevent_id ;
unsigned int clocksource_id ;
} ;
2010-05-02 02:37:53 +04:00
struct davinci_gpio_controller ;
2010-05-08 01:06:39 +04:00
/*
* SoC info passed into common davinci modules .
*
* Base addresses in this structure should be physical and not virtual .
* Modules that take such base addresses , should internally ioremap ( ) them to
* use .
*/
2009-04-15 23:38:58 +04:00
struct davinci_soc_info {
struct map_desc * io_desc ;
unsigned long io_desc_num ;
2009-04-15 23:39:09 +04:00
u32 cpu_id ;
u32 jtag_id ;
2010-05-08 01:06:34 +04:00
u32 jtag_id_reg ;
2009-04-15 23:39:09 +04:00
struct davinci_id * ids ;
unsigned long ids_num ;
2010-01-11 19:22:23 +03:00
struct clk_lookup * cpu_clks ;
2010-05-08 01:06:36 +04:00
u32 * psc_bases ;
2009-04-15 23:39:33 +04:00
unsigned long psc_bases_num ;
2010-05-08 01:06:38 +04:00
u32 pinmux_base ;
2009-04-15 23:39:48 +04:00
const struct mux_config * pinmux_pins ;
unsigned long pinmux_pins_num ;
2010-05-08 01:06:37 +04:00
u32 intc_base ;
2009-04-15 23:40:00 +04:00
int intc_type ;
u8 * intc_irq_prios ;
unsigned long intc_irq_num ;
2010-05-08 01:06:37 +04:00
u32 * intc_host_map ;
2009-04-15 23:40:11 +04:00
struct davinci_timer_info * timer_info ;
2010-05-02 02:37:54 +04:00
int gpio_type ;
2010-05-08 01:06:32 +04:00
u32 gpio_base ;
2009-04-15 23:40:35 +04:00
unsigned gpio_num ;
unsigned gpio_irq ;
2009-06-26 04:01:31 +04:00
unsigned gpio_unbanked ;
2010-05-02 02:37:53 +04:00
struct davinci_gpio_controller * gpio_ctlrs ;
int gpio_ctlrs_num ;
2009-03-18 20:36:08 +03:00
struct platform_device * serial_dev ;
2009-04-15 23:40:56 +04:00
struct emac_platform_data * emac_pdata ;
2009-05-01 04:35:48 +04:00
dma_addr_t sram_dma ;
unsigned sram_len ;
2010-05-02 02:38:28 +04:00
struct platform_device * reset_device ;
void ( * reset ) ( struct platform_device * ) ;
2009-04-15 23:38:58 +04:00
} ;
extern struct davinci_soc_info davinci_soc_info ;
extern void davinci_common_init ( struct davinci_soc_info * soc_info ) ;
2010-04-21 18:11:33 +04:00
extern void davinci_init_ide ( void ) ;
2009-04-15 23:38:58 +04:00
2009-05-01 04:35:48 +04:00
/* standard place to map on-chip SRAMs; they *may* support DMA */
# define SRAM_VIRT 0xfffe0000
# define SRAM_SIZE SZ_128K
2007-04-30 22:37:19 +04:00
# endif /* __ARCH_ARM_MACH_DAVINCI_COMMON_H */