The IDE platform device is registered in three different places (2 board files for DM644x and in dm646x.c for DM646x) while both the IDE base address and the IDE IRQ are the same for both SoCs -- therefore, the proper place for the IDE platform seems to be in devices.c. Merge the IDE platform data and registration code and create davinci_init_ide() in place of dm646x_init_ide()... Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
80 lines
2.0 KiB
C
80 lines
2.0 KiB
C
/*
|
|
* 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
|
|
|
|
#include <linux/compiler.h>
|
|
#include <linux/types.h>
|
|
|
|
struct sys_timer;
|
|
|
|
extern struct sys_timer davinci_timer;
|
|
|
|
extern void davinci_irq_init(void);
|
|
extern void __iomem *davinci_intc_base;
|
|
extern int davinci_intc_type;
|
|
|
|
struct davinci_timer_instance {
|
|
void __iomem *base;
|
|
u32 bottom_irq;
|
|
u32 top_irq;
|
|
unsigned long cmp_off;
|
|
unsigned int cmp_irq;
|
|
};
|
|
|
|
struct davinci_timer_info {
|
|
struct davinci_timer_instance *timers;
|
|
unsigned int clockevent_id;
|
|
unsigned int clocksource_id;
|
|
};
|
|
|
|
/* SoC specific init support */
|
|
struct davinci_soc_info {
|
|
struct map_desc *io_desc;
|
|
unsigned long io_desc_num;
|
|
u32 cpu_id;
|
|
u32 jtag_id;
|
|
void __iomem *jtag_id_base;
|
|
struct davinci_id *ids;
|
|
unsigned long ids_num;
|
|
struct clk_lookup *cpu_clks;
|
|
void __iomem **psc_bases;
|
|
unsigned long psc_bases_num;
|
|
void __iomem *pinmux_base;
|
|
const struct mux_config *pinmux_pins;
|
|
unsigned long pinmux_pins_num;
|
|
void __iomem *intc_base;
|
|
int intc_type;
|
|
u8 *intc_irq_prios;
|
|
unsigned long intc_irq_num;
|
|
struct davinci_timer_info *timer_info;
|
|
void __iomem *gpio_base;
|
|
unsigned gpio_num;
|
|
unsigned gpio_irq;
|
|
unsigned gpio_unbanked;
|
|
struct platform_device *serial_dev;
|
|
struct emac_platform_data *emac_pdata;
|
|
dma_addr_t sram_dma;
|
|
unsigned sram_len;
|
|
};
|
|
|
|
extern struct davinci_soc_info davinci_soc_info;
|
|
|
|
extern void davinci_common_init(struct davinci_soc_info *soc_info);
|
|
extern void davinci_init_ide(void);
|
|
|
|
/* standard place to map on-chip SRAMs; they *may* support DMA */
|
|
#define SRAM_VIRT 0xfffe0000
|
|
#define SRAM_SIZE SZ_128K
|
|
|
|
#endif /* __ARCH_ARM_MACH_DAVINCI_COMMON_H */
|