18c2ecf20Sopenharmony_ci/*
28c2ecf20Sopenharmony_ci * arch/arm/plat-orion/include/plat/common.h
38c2ecf20Sopenharmony_ci *
48c2ecf20Sopenharmony_ci * Marvell Orion SoC common setup code used by different mach-/common.c
58c2ecf20Sopenharmony_ci *
68c2ecf20Sopenharmony_ci * This file is licensed under the terms of the GNU General Public
78c2ecf20Sopenharmony_ci * License version 2.  This program is licensed "as is" without any
88c2ecf20Sopenharmony_ci * warranty of any kind, whether express or implied.
98c2ecf20Sopenharmony_ci */
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ci#ifndef __PLAT_COMMON_H
128c2ecf20Sopenharmony_ci#include <linux/mv643xx_eth.h>
138c2ecf20Sopenharmony_ci#include <linux/platform_data/usb-ehci-orion.h>
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_cistruct dsa_chip_data;
168c2ecf20Sopenharmony_cistruct mv_sata_platform_data;
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_civoid __init orion_uart0_init(void __iomem *membase,
198c2ecf20Sopenharmony_ci			     resource_size_t mapbase,
208c2ecf20Sopenharmony_ci			     unsigned int irq,
218c2ecf20Sopenharmony_ci			     struct clk *clk);
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_civoid __init orion_uart1_init(void __iomem *membase,
248c2ecf20Sopenharmony_ci			     resource_size_t mapbase,
258c2ecf20Sopenharmony_ci			     unsigned int irq,
268c2ecf20Sopenharmony_ci			     struct clk *clk);
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_civoid __init orion_uart2_init(void __iomem *membase,
298c2ecf20Sopenharmony_ci			     resource_size_t mapbase,
308c2ecf20Sopenharmony_ci			     unsigned int irq,
318c2ecf20Sopenharmony_ci			     struct clk *clk);
328c2ecf20Sopenharmony_ci
338c2ecf20Sopenharmony_civoid __init orion_uart3_init(void __iomem *membase,
348c2ecf20Sopenharmony_ci			     resource_size_t mapbase,
358c2ecf20Sopenharmony_ci			     unsigned int irq,
368c2ecf20Sopenharmony_ci			     struct clk *clk);
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_civoid __init orion_rtc_init(unsigned long mapbase,
398c2ecf20Sopenharmony_ci			   unsigned long irq);
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_civoid __init orion_ge00_init(struct mv643xx_eth_platform_data *eth_data,
428c2ecf20Sopenharmony_ci			    unsigned long mapbase,
438c2ecf20Sopenharmony_ci			    unsigned long irq,
448c2ecf20Sopenharmony_ci			    unsigned long irq_err,
458c2ecf20Sopenharmony_ci			    unsigned int tx_csum_limit);
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_civoid __init orion_ge01_init(struct mv643xx_eth_platform_data *eth_data,
488c2ecf20Sopenharmony_ci			    unsigned long mapbase,
498c2ecf20Sopenharmony_ci			    unsigned long irq,
508c2ecf20Sopenharmony_ci			    unsigned int tx_csum_limit);
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_civoid __init orion_ge10_init(struct mv643xx_eth_platform_data *eth_data,
538c2ecf20Sopenharmony_ci			    unsigned long mapbase,
548c2ecf20Sopenharmony_ci			    unsigned long irq);
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_civoid __init orion_ge11_init(struct mv643xx_eth_platform_data *eth_data,
578c2ecf20Sopenharmony_ci			    unsigned long mapbase,
588c2ecf20Sopenharmony_ci			    unsigned long irq);
598c2ecf20Sopenharmony_ci
608c2ecf20Sopenharmony_civoid __init orion_ge00_switch_init(struct dsa_chip_data *d);
618c2ecf20Sopenharmony_ci
628c2ecf20Sopenharmony_civoid __init orion_i2c_init(unsigned long mapbase,
638c2ecf20Sopenharmony_ci			   unsigned long irq,
648c2ecf20Sopenharmony_ci			   unsigned long freq_m);
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_civoid __init orion_i2c_1_init(unsigned long mapbase,
678c2ecf20Sopenharmony_ci			     unsigned long irq,
688c2ecf20Sopenharmony_ci			     unsigned long freq_m);
698c2ecf20Sopenharmony_ci
708c2ecf20Sopenharmony_civoid __init orion_spi_init(unsigned long mapbase);
718c2ecf20Sopenharmony_ci
728c2ecf20Sopenharmony_civoid __init orion_spi_1_init(unsigned long mapbase);
738c2ecf20Sopenharmony_ci
748c2ecf20Sopenharmony_civoid __init orion_xor0_init(unsigned long mapbase_low,
758c2ecf20Sopenharmony_ci			    unsigned long mapbase_high,
768c2ecf20Sopenharmony_ci			    unsigned long irq_0,
778c2ecf20Sopenharmony_ci			    unsigned long irq_1);
788c2ecf20Sopenharmony_ci
798c2ecf20Sopenharmony_civoid __init orion_xor1_init(unsigned long mapbase_low,
808c2ecf20Sopenharmony_ci			    unsigned long mapbase_high,
818c2ecf20Sopenharmony_ci			    unsigned long irq_0,
828c2ecf20Sopenharmony_ci			    unsigned long irq_1);
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_civoid __init orion_ehci_init(unsigned long mapbase,
858c2ecf20Sopenharmony_ci			    unsigned long irq,
868c2ecf20Sopenharmony_ci			    enum orion_ehci_phy_ver phy_version);
878c2ecf20Sopenharmony_ci
888c2ecf20Sopenharmony_civoid __init orion_ehci_1_init(unsigned long mapbase,
898c2ecf20Sopenharmony_ci			      unsigned long irq);
908c2ecf20Sopenharmony_ci
918c2ecf20Sopenharmony_civoid __init orion_ehci_2_init(unsigned long mapbase,
928c2ecf20Sopenharmony_ci			      unsigned long irq);
938c2ecf20Sopenharmony_ci
948c2ecf20Sopenharmony_civoid __init orion_sata_init(struct mv_sata_platform_data *sata_data,
958c2ecf20Sopenharmony_ci			    unsigned long mapbase,
968c2ecf20Sopenharmony_ci			    unsigned long irq);
978c2ecf20Sopenharmony_ci
988c2ecf20Sopenharmony_civoid __init orion_crypto_init(unsigned long mapbase,
998c2ecf20Sopenharmony_ci			      unsigned long srambase,
1008c2ecf20Sopenharmony_ci			      unsigned long sram_size,
1018c2ecf20Sopenharmony_ci			      unsigned long irq);
1028c2ecf20Sopenharmony_ci
1038c2ecf20Sopenharmony_civoid __init orion_clkdev_add(const char *con_id, const char *dev_id,
1048c2ecf20Sopenharmony_ci			     struct clk *clk);
1058c2ecf20Sopenharmony_ci
1068c2ecf20Sopenharmony_civoid __init orion_clkdev_init(struct clk *tclk);
1078c2ecf20Sopenharmony_ci#endif
108