blob: 05e8a8a5692e8150535973105b1f50bed60bcfea [file] [log] [blame]
Saeed Bishara651c74c2008-06-22 22:45:06 +02001/*
2 * arch/arm/mach-kirkwood/common.h
3 *
4 * Core functions for Marvell Kirkwood SoCs
5 *
6 * This file is licensed under the terms of the GNU General Public
7 * License version 2. This program is licensed "as is" without any
8 * warranty of any kind, whether express or implied.
9 */
10
11#ifndef __ARCH_KIRKWOOD_COMMON_H
12#define __ARCH_KIRKWOOD_COMMON_H
13
Lennert Buytenhekdcf1cec2008-09-25 16:23:48 +020014struct dsa_platform_data;
Saeed Bishara651c74c2008-06-22 22:45:06 +020015struct mv643xx_eth_platform_data;
16struct mv_sata_platform_data;
Nicolas Pitre8235ee02009-02-14 03:15:55 -050017struct mvsdio_platform_data;
Nicolas Pitrefb7b2d32009-06-01 15:36:36 -040018struct mtd_partition;
Ben Dooks010937e2010-04-20 10:26:19 +010019struct mtd_info;
Saeed Bishara651c74c2008-06-22 22:45:06 +020020
21/*
22 * Basic Kirkwood init functions used early by machine-setup.
23 */
24void kirkwood_map_io(void);
25void kirkwood_init(void);
26void kirkwood_init_irq(void);
27
28extern struct mbus_dram_target_info kirkwood_mbus_dram_info;
29void kirkwood_setup_cpu_mbus(void);
Saeed Bishara651c74c2008-06-22 22:45:06 +020030
Ronen Shitritb2b3dc22008-09-15 10:40:35 +030031void kirkwood_pcie_id(u32 *dev, u32 *rev);
32
Saeed Bishara651c74c2008-06-22 22:45:06 +020033void kirkwood_ehci_init(void);
34void kirkwood_ge00_init(struct mv643xx_eth_platform_data *eth_data);
Ronen Shitritd15fb9e2008-10-19 23:10:14 +020035void kirkwood_ge01_init(struct mv643xx_eth_platform_data *eth_data);
Lennert Buytenhekdcf1cec2008-09-25 16:23:48 +020036void kirkwood_ge00_switch_init(struct dsa_platform_data *d, int irq);
Saeed Bishara651c74c2008-06-22 22:45:06 +020037void kirkwood_pcie_init(void);
Saeed Bishara651c74c2008-06-22 22:45:06 +020038void kirkwood_sata_init(struct mv_sata_platform_data *sata_data);
Nicolas Pitre8235ee02009-02-14 03:15:55 -050039void kirkwood_sdio_init(struct mvsdio_platform_data *mvsdio_data);
Lennert Buytenhek18365d12008-08-09 15:38:18 +020040void kirkwood_spi_init(void);
Martin Michlmayr6574e002009-03-23 19:13:21 +010041void kirkwood_i2c_init(void);
Saeed Bishara651c74c2008-06-22 22:45:06 +020042void kirkwood_uart0_init(void);
43void kirkwood_uart1_init(void);
Nicolas Pitrefb7b2d32009-06-01 15:36:36 -040044void kirkwood_nand_init(struct mtd_partition *parts, int nr_parts, int delay);
Ben Dooks010937e2010-04-20 10:26:19 +010045void kirkwood_nand_init_rnb(struct mtd_partition *parts, int nr_parts, int (*dev_ready)(struct mtd_info *));
Saeed Bishara651c74c2008-06-22 22:45:06 +020046
Martin Michlmayr586dcf22009-03-22 15:22:11 +010047extern int kirkwood_tclk;
Saeed Bishara651c74c2008-06-22 22:45:06 +020048extern struct sys_timer kirkwood_timer;
49
Nicolas Pitrefb7b2d32009-06-01 15:36:36 -040050#define ARRAY_AND_SIZE(x) (x), ARRAY_SIZE(x)
Saeed Bishara651c74c2008-06-22 22:45:06 +020051
52#endif