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 mv_sata_platform_data;
16
17void __init orion_uart0_init(void __iomem *membase,
18			     resource_size_t mapbase,
19			     unsigned int irq,
20			     struct clk *clk);
21
22void __init orion_uart1_init(void __iomem *membase,
23			     resource_size_t mapbase,
24			     unsigned int irq,
25			     struct clk *clk);
26
27void __init orion_uart2_init(void __iomem *membase,
28			     resource_size_t mapbase,
29			     unsigned int irq,
30			     struct clk *clk);
31
32void __init orion_uart3_init(void __iomem *membase,
33			     resource_size_t mapbase,
34			     unsigned int irq,
35			     struct clk *clk);
36
37void __init orion_rtc_init(unsigned long mapbase,
38			   unsigned long irq);
39
40void __init orion_ge00_init(struct mv643xx_eth_platform_data *eth_data,
41			    unsigned long mapbase,
42			    unsigned long irq,
43			    unsigned long irq_err,
44			    unsigned int tx_csum_limit);
45
46void __init orion_ge01_init(struct mv643xx_eth_platform_data *eth_data,
47			    unsigned long mapbase,
48			    unsigned long irq,
49			    unsigned int tx_csum_limit);
50
51void __init orion_ge10_init(struct mv643xx_eth_platform_data *eth_data,
52			    unsigned long mapbase,
53			    unsigned long irq);
54
55void __init orion_ge11_init(struct mv643xx_eth_platform_data *eth_data,
56			    unsigned long mapbase,
57			    unsigned long irq);
58
59void __init orion_i2c_init(unsigned long mapbase,
60			   unsigned long irq,
61			   unsigned long freq_m);
62
63void __init orion_i2c_1_init(unsigned long mapbase,
64			     unsigned long irq,
65			     unsigned long freq_m);
66
67void __init orion_spi_init(unsigned long mapbase);
68
69void __init orion_spi_1_init(unsigned long mapbase);
70
71void __init orion_xor0_init(unsigned long mapbase_low,
72			    unsigned long mapbase_high,
73			    unsigned long irq_0,
74			    unsigned long irq_1);
75
76void __init orion_xor1_init(unsigned long mapbase_low,
77			    unsigned long mapbase_high,
78			    unsigned long irq_0,
79			    unsigned long irq_1);
80
81void __init orion_ehci_init(unsigned long mapbase,
82			    unsigned long irq,
83			    enum orion_ehci_phy_ver phy_version);
84
85void __init orion_ehci_1_init(unsigned long mapbase,
86			      unsigned long irq);
87
88void __init orion_ehci_2_init(unsigned long mapbase,
89			      unsigned long irq);
90
91void __init orion_sata_init(struct mv_sata_platform_data *sata_data,
92			    unsigned long mapbase,
93			    unsigned long irq);
94
95void __init orion_crypto_init(unsigned long mapbase,
96			      unsigned long srambase,
97			      unsigned long sram_size,
98			      unsigned long irq);
99
100void __init orion_clkdev_add(const char *con_id, const char *dev_id,
101			     struct clk *clk);
102
103void __init orion_clkdev_init(struct clk *tclk);
104#endif
105