Saeed Bishara | 651c74c | 2008-06-22 22:45:06 +0200 | [diff] [blame] | 1 | /* |
| 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 Buytenhek | dcf1cec | 2008-09-25 16:23:48 +0200 | [diff] [blame] | 14 | struct dsa_platform_data; |
Saeed Bishara | 651c74c | 2008-06-22 22:45:06 +0200 | [diff] [blame] | 15 | struct mv643xx_eth_platform_data; |
| 16 | struct mv_sata_platform_data; |
Nicolas Pitre | 8235ee0 | 2009-02-14 03:15:55 -0500 | [diff] [blame] | 17 | struct mvsdio_platform_data; |
Nicolas Pitre | fb7b2d3 | 2009-06-01 15:36:36 -0400 | [diff] [blame] | 18 | struct mtd_partition; |
Ben Dooks | 010937e | 2010-04-20 10:26:19 +0100 | [diff] [blame] | 19 | struct mtd_info; |
apatard@mandriva.com | 49106c7 | 2010-05-31 13:49:12 +0200 | [diff] [blame] | 20 | struct kirkwood_asoc_platform_data; |
Saeed Bishara | 651c74c | 2008-06-22 22:45:06 +0200 | [diff] [blame] | 21 | |
Saeed Bishara | ffd58bd | 2010-06-08 14:21:34 +0300 | [diff] [blame] | 22 | #define KW_PCIE0 (1 << 0) |
| 23 | #define KW_PCIE1 (1 << 1) |
| 24 | |
Saeed Bishara | 651c74c | 2008-06-22 22:45:06 +0200 | [diff] [blame] | 25 | /* |
| 26 | * Basic Kirkwood init functions used early by machine-setup. |
| 27 | */ |
| 28 | void kirkwood_map_io(void); |
| 29 | void kirkwood_init(void); |
Lennert Buytenhek | 4ee1f6b | 2010-10-15 16:50:26 +0200 | [diff] [blame] | 30 | void kirkwood_init_early(void); |
Saeed Bishara | 651c74c | 2008-06-22 22:45:06 +0200 | [diff] [blame] | 31 | void kirkwood_init_irq(void); |
| 32 | |
Saeed Bishara | 651c74c | 2008-06-22 22:45:06 +0200 | [diff] [blame] | 33 | void kirkwood_setup_cpu_mbus(void); |
Saeed Bishara | 651c74c | 2008-06-22 22:45:06 +0200 | [diff] [blame] | 34 | |
Eric Cooper | 0e0cdd3 | 2011-02-02 17:16:10 -0500 | [diff] [blame] | 35 | void kirkwood_enable_pcie(void); |
Ronen Shitrit | b2b3dc2 | 2008-09-15 10:40:35 +0300 | [diff] [blame] | 36 | void kirkwood_pcie_id(u32 *dev, u32 *rev); |
| 37 | |
Saeed Bishara | 651c74c | 2008-06-22 22:45:06 +0200 | [diff] [blame] | 38 | void kirkwood_ehci_init(void); |
| 39 | void kirkwood_ge00_init(struct mv643xx_eth_platform_data *eth_data); |
Ronen Shitrit | d15fb9e | 2008-10-19 23:10:14 +0200 | [diff] [blame] | 40 | void kirkwood_ge01_init(struct mv643xx_eth_platform_data *eth_data); |
Lennert Buytenhek | dcf1cec | 2008-09-25 16:23:48 +0200 | [diff] [blame] | 41 | void kirkwood_ge00_switch_init(struct dsa_platform_data *d, int irq); |
Saeed Bishara | ffd58bd | 2010-06-08 14:21:34 +0300 | [diff] [blame] | 42 | void kirkwood_pcie_init(unsigned int portmask); |
Saeed Bishara | 651c74c | 2008-06-22 22:45:06 +0200 | [diff] [blame] | 43 | void kirkwood_sata_init(struct mv_sata_platform_data *sata_data); |
Nicolas Pitre | 8235ee0 | 2009-02-14 03:15:55 -0500 | [diff] [blame] | 44 | void kirkwood_sdio_init(struct mvsdio_platform_data *mvsdio_data); |
Lennert Buytenhek | 18365d1 | 2008-08-09 15:38:18 +0200 | [diff] [blame] | 45 | void kirkwood_spi_init(void); |
Martin Michlmayr | 6574e00 | 2009-03-23 19:13:21 +0100 | [diff] [blame] | 46 | void kirkwood_i2c_init(void); |
Saeed Bishara | 651c74c | 2008-06-22 22:45:06 +0200 | [diff] [blame] | 47 | void kirkwood_uart0_init(void); |
| 48 | void kirkwood_uart1_init(void); |
Nicolas Pitre | fb7b2d3 | 2009-06-01 15:36:36 -0400 | [diff] [blame] | 49 | void kirkwood_nand_init(struct mtd_partition *parts, int nr_parts, int delay); |
Ben Dooks | 010937e | 2010-04-20 10:26:19 +0100 | [diff] [blame] | 50 | void kirkwood_nand_init_rnb(struct mtd_partition *parts, int nr_parts, int (*dev_ready)(struct mtd_info *)); |
apatard@mandriva.com | 49106c7 | 2010-05-31 13:49:12 +0200 | [diff] [blame] | 51 | void kirkwood_audio_init(void); |
Russell King | cb15dff | 2011-11-05 10:03:47 +0000 | [diff] [blame] | 52 | void kirkwood_restart(char, const char *); |
Andrew Lunn | 2f129bf | 2011-12-15 08:15:07 +0100 | [diff] [blame] | 53 | void kirkwood_clk_init(void); |
Saeed Bishara | 651c74c | 2008-06-22 22:45:06 +0200 | [diff] [blame] | 54 | |
Jason Cooper | 6fa6b87 | 2012-03-15 00:52:31 +0000 | [diff] [blame] | 55 | /* board init functions for boards not fully converted to fdt */ |
| 56 | #ifdef CONFIG_MACH_DREAMPLUG_DT |
| 57 | void dreamplug_init(void); |
| 58 | #else |
| 59 | static inline void dreamplug_init(void) {}; |
| 60 | #endif |
Andrew Lunn | 9eb61f4 | 2012-05-12 14:57:59 +0200 | [diff] [blame] | 61 | #ifdef CONFIG_MACH_TS219_DT |
| 62 | void qnap_dt_ts219_init(void); |
| 63 | #else |
| 64 | static inline void qnap_dt_ts219_init(void) {}; |
| 65 | #endif |
Jason Cooper | 6fa6b87 | 2012-03-15 00:52:31 +0000 | [diff] [blame] | 66 | |
Jamie Lentin | 9007d10 | 2012-04-18 11:06:40 +0100 | [diff] [blame] | 67 | #ifdef CONFIG_MACH_DLINK_KIRKWOOD_DT |
| 68 | void dnskw_init(void); |
| 69 | #else |
| 70 | static inline void dnskw_init(void) {}; |
| 71 | #endif |
| 72 | |
Arnaud Patard (Rtp) | c06cd9b | 2012-04-18 23:16:41 +0200 | [diff] [blame] | 73 | #ifdef CONFIG_MACH_ICONNECT_DT |
| 74 | void iconnect_init(void); |
| 75 | #else |
| 76 | static inline void iconnect_init(void) {}; |
| 77 | #endif |
| 78 | |
Simon Baatz | f552036 | 2012-04-30 23:55:17 +0200 | [diff] [blame] | 79 | #ifdef CONFIG_MACH_IB62X0_DT |
| 80 | void ib62x0_init(void); |
| 81 | #else |
| 82 | static inline void ib62x0_init(void) {}; |
| 83 | #endif |
| 84 | |
Sebastian Hesselbarth | dd88db7 | 2012-08-14 22:43:41 +0200 | [diff] [blame] | 85 | #ifdef CONFIG_MACH_DOCKSTAR_DT |
| 86 | void dockstar_dt_init(void); |
| 87 | #else |
| 88 | static inline void dockstar_dt_init(void) {}; |
| 89 | #endif |
| 90 | |
Josh Coombs | 5136b2a | 2012-07-16 11:52:50 +0200 | [diff] [blame] | 91 | #ifdef CONFIG_MACH_GOFLEXNET_DT |
| 92 | void goflexnet_init(void); |
| 93 | #else |
| 94 | static inline void goflexnet_init(void) {}; |
| 95 | #endif |
| 96 | |
Michael Walle | 4aff38a | 2012-07-17 07:25:55 +0200 | [diff] [blame] | 97 | #ifdef CONFIG_MACH_LSXL_DT |
| 98 | void lsxl_init(void); |
| 99 | #else |
| 100 | static inline void lsxl_init(void) {}; |
| 101 | #endif |
| 102 | |
Alan M Butler | 4f48b7f | 2012-08-20 15:29:07 +0100 | [diff] [blame] | 103 | #ifdef CONFIG_MACH_IOMEGA_IX2_200_DT |
| 104 | void iomega_ix2_200_init(void); |
| 105 | #else |
| 106 | static inline void iomega_ix2_200_init(void) {}; |
| 107 | #endif |
| 108 | |
Valentin Longchamp | 0510c8a | 2012-09-04 11:55:02 +0200 | [diff] [blame] | 109 | #ifdef CONFIG_MACH_KM_KIRKWOOD_DT |
| 110 | void km_kirkwood_init(void); |
| 111 | #else |
| 112 | static inline void km_kirkwood_init(void) {}; |
| 113 | #endif |
| 114 | |
Jason Cooper | 6fa6b87 | 2012-03-15 00:52:31 +0000 | [diff] [blame] | 115 | /* early init functions not converted to fdt yet */ |
Jason Cooper | 2b45e05 | 2012-02-29 17:39:08 +0000 | [diff] [blame] | 116 | char *kirkwood_id(void); |
| 117 | void kirkwood_l2_init(void); |
Jason Cooper | 2b45e05 | 2012-02-29 17:39:08 +0000 | [diff] [blame] | 118 | void kirkwood_wdt_init(void); |
| 119 | void kirkwood_xor0_init(void); |
| 120 | void kirkwood_xor1_init(void); |
| 121 | void kirkwood_crypto_init(void); |
| 122 | |
Martin Michlmayr | 586dcf2 | 2009-03-22 15:22:11 +0100 | [diff] [blame] | 123 | extern int kirkwood_tclk; |
Saeed Bishara | 651c74c | 2008-06-22 22:45:06 +0200 | [diff] [blame] | 124 | extern struct sys_timer kirkwood_timer; |
| 125 | |
Nicolas Pitre | fb7b2d3 | 2009-06-01 15:36:36 -0400 | [diff] [blame] | 126 | #define ARRAY_AND_SIZE(x) (x), ARRAY_SIZE(x) |
Saeed Bishara | 651c74c | 2008-06-22 22:45:06 +0200 | [diff] [blame] | 127 | |
| 128 | #endif |