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