1/*
2 * arch/arm/plat-orion/include/plat/common.h
3 *
4 * Marvell Orion SoC common setup code used by different mach-/common.c
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 __PLAT_COMMON_H
12#include <linux/mv643xx_eth.h>
13#include <linux/platform_data/usb-ehci-orion.h>
14
15struct dsa_platform_data;
16struct mv_sata_platform_data;
17
18void __init orion_uart0_init(void __iomem *membase,
19			     resource_size_t mapbase,
20			     unsigned int irq,
21			     struct clk *clk);
22
23void __init orion_uart1_init(void __iomem *membase,
24			     resource_size_t mapbase,
25			     unsigned int irq,
26			     struct clk *clk);
27
28void __init orion_uart2_init(void __iomem *membase,
29			     resource_size_t mapbase,
30			     unsigned int irq,
31			     struct clk *clk);
32
33void __init orion_uart3_init(void __iomem *membase,
34			     resource_size_t mapbase,
35			     unsigned int irq,
36			     struct clk *clk);
37
38void __init orion_rtc_init(unsigned long mapbase,
39			   unsigned long irq);
40
41void __init orion_ge00_init(struct mv643xx_eth_platform_data *eth_data,
42			    unsigned long mapbase,
43			    unsigned long irq,
44			    unsigned long irq_err,
45			    unsigned int tx_csum_limit);
46
47void __init orion_ge01_init(struct mv643xx_eth_platform_data *eth_data,
48			    unsigned long mapbase,
49			    unsigned long irq,
50			    unsigned long irq_err,
51			    unsigned int tx_csum_limit);
52
53void __init orion_ge10_init(struct mv643xx_eth_platform_data *eth_data,
54			    unsigned long mapbase,
55			    unsigned long irq,
56			    unsigned long irq_err);
57
58void __init orion_ge11_init(struct mv643xx_eth_platform_data *eth_data,
59			    unsigned long mapbase,
60			    unsigned long irq,
61			    unsigned long irq_err);
62
63void __init orion_ge00_switch_init(struct dsa_platform_data *d,
64				   int irq);
65
66void __init orion_i2c_init(unsigned long mapbase,
67			   unsigned long irq,
68			   unsigned long freq_m);
69
70void __init orion_i2c_1_init(unsigned long mapbase,
71			     unsigned long irq,
72			     unsigned long freq_m);
73
74void __init orion_spi_init(unsigned long mapbase);
75
76void __init orion_spi_1_init(unsigned long mapbase);
77
78void __init orion_wdt_init(void);
79
80void __init orion_xor0_init(unsigned long mapbase_low,
81			    unsigned long mapbase_high,
82			    unsigned long irq_0,
83			    unsigned long irq_1);
84
85void __init orion_xor1_init(unsigned long mapbase_low,
86			    unsigned long mapbase_high,
87			    unsigned long irq_0,
88			    unsigned long irq_1);
89
90void __init orion_ehci_init(unsigned long mapbase,
91			    unsigned long irq,
92			    enum orion_ehci_phy_ver phy_version);
93
94void __init orion_ehci_1_init(unsigned long mapbase,
95			      unsigned long irq);
96
97void __init orion_ehci_2_init(unsigned long mapbase,
98			      unsigned long irq);
99
100void __init orion_sata_init(struct mv_sata_platform_data *sata_data,
101			    unsigned long mapbase,
102			    unsigned long irq);
103
104void __init orion_crypto_init(unsigned long mapbase,
105			      unsigned long srambase,
106			      unsigned long sram_size,
107			      unsigned long irq);
108
109void __init orion_clkdev_add(const char *con_id, const char *dev_id,
110			     struct clk *clk);
111
112void __init orion_clkdev_init(struct clk *tclk);
113#endif
114