xref: /openbmc/linux/arch/arm/mach-mv78xx0/common.h (revision 4b01f735)
10fdebc5eSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
2794d15b2SStanislav Samsonov /*
3794d15b2SStanislav Samsonov  * arch/arm/mach-mv78xx0/common.h
4794d15b2SStanislav Samsonov  *
5794d15b2SStanislav Samsonov  * Core functions for Marvell MV78xx0 SoCs
6794d15b2SStanislav Samsonov  */
7794d15b2SStanislav Samsonov 
8794d15b2SStanislav Samsonov #ifndef __ARCH_MV78XX0_COMMON_H
9794d15b2SStanislav Samsonov #define __ARCH_MV78XX0_COMMON_H
10794d15b2SStanislav Samsonov 
117b6d864bSRobin Holt #include <linux/reboot.h>
127b6d864bSRobin Holt 
13794d15b2SStanislav Samsonov struct mv643xx_eth_platform_data;
14794d15b2SStanislav Samsonov struct mv_sata_platform_data;
15794d15b2SStanislav Samsonov 
16794d15b2SStanislav Samsonov /*
17794d15b2SStanislav Samsonov  * Basic MV78xx0 init functions used early by machine-setup.
18794d15b2SStanislav Samsonov  */
19794d15b2SStanislav Samsonov int mv78xx0_core_index(void);
20794d15b2SStanislav Samsonov void mv78xx0_map_io(void);
21794d15b2SStanislav Samsonov void mv78xx0_init(void);
224ee1f6b5SLennert Buytenhek void mv78xx0_init_early(void);
23794d15b2SStanislav Samsonov void mv78xx0_init_irq(void);
24794d15b2SStanislav Samsonov 
25794d15b2SStanislav Samsonov void mv78xx0_setup_cpu_mbus(void);
26794d15b2SStanislav Samsonov void mv78xx0_setup_pcie_io_win(int window, u32 base, u32 size,
27794d15b2SStanislav Samsonov 			       int maj, int min);
28794d15b2SStanislav Samsonov void mv78xx0_setup_pcie_mem_win(int window, u32 base, u32 size,
29794d15b2SStanislav Samsonov 				int maj, int min);
30794d15b2SStanislav Samsonov 
31cfdeb637SLennert Buytenhek void mv78xx0_pcie_id(u32 *dev, u32 *rev);
32cfdeb637SLennert Buytenhek 
33794d15b2SStanislav Samsonov void mv78xx0_ehci0_init(void);
34794d15b2SStanislav Samsonov void mv78xx0_ehci1_init(void);
35794d15b2SStanislav Samsonov void mv78xx0_ehci2_init(void);
36794d15b2SStanislav Samsonov void mv78xx0_ge00_init(struct mv643xx_eth_platform_data *eth_data);
37794d15b2SStanislav Samsonov void mv78xx0_ge01_init(struct mv643xx_eth_platform_data *eth_data);
38794d15b2SStanislav Samsonov void mv78xx0_ge10_init(struct mv643xx_eth_platform_data *eth_data);
39794d15b2SStanislav Samsonov void mv78xx0_ge11_init(struct mv643xx_eth_platform_data *eth_data);
40794d15b2SStanislav Samsonov void mv78xx0_pcie_init(int init_port0, int init_port1);
41794d15b2SStanislav Samsonov void mv78xx0_sata_init(struct mv_sata_platform_data *sata_data);
42794d15b2SStanislav Samsonov void mv78xx0_uart0_init(void);
43794d15b2SStanislav Samsonov void mv78xx0_uart1_init(void);
44794d15b2SStanislav Samsonov void mv78xx0_uart2_init(void);
45794d15b2SStanislav Samsonov void mv78xx0_uart3_init(void);
46*4b01f735SJeremy J. Peper void mv78xx0_xor_init(void);
47*4b01f735SJeremy J. Peper void mv78xx0_crypto_init(void);
4869359943SRiku Voipio void mv78xx0_i2c_init(void);
497b6d864bSRobin Holt void mv78xx0_restart(enum reboot_mode, const char *);
50794d15b2SStanislav Samsonov 
516bb27d73SStephen Warren extern void mv78xx0_timer_init(void);
52794d15b2SStanislav Samsonov 
53794d15b2SStanislav Samsonov 
54794d15b2SStanislav Samsonov #endif
55