162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * arch/arm/mach-mv78xx0/common.h
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Core functions for Marvell MV78xx0 SoCs
662306a36Sopenharmony_ci */
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci#ifndef __ARCH_MV78XX0_COMMON_H
962306a36Sopenharmony_ci#define __ARCH_MV78XX0_COMMON_H
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#include <linux/reboot.h>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_cistruct mv643xx_eth_platform_data;
1462306a36Sopenharmony_cistruct mv_sata_platform_data;
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci/*
1762306a36Sopenharmony_ci * Basic MV78xx0 init functions used early by machine-setup.
1862306a36Sopenharmony_ci */
1962306a36Sopenharmony_ciint mv78xx0_core_index(void);
2062306a36Sopenharmony_civoid mv78xx0_map_io(void);
2162306a36Sopenharmony_civoid mv78xx0_init(void);
2262306a36Sopenharmony_civoid mv78xx0_init_early(void);
2362306a36Sopenharmony_civoid mv78xx0_init_irq(void);
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_civoid mv78xx0_setup_cpu_mbus(void);
2662306a36Sopenharmony_civoid mv78xx0_setup_pcie_io_win(int window, u32 base, u32 size,
2762306a36Sopenharmony_ci			       int maj, int min);
2862306a36Sopenharmony_civoid mv78xx0_setup_pcie_mem_win(int window, u32 base, u32 size,
2962306a36Sopenharmony_ci				int maj, int min);
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_civoid mv78xx0_pcie_id(u32 *dev, u32 *rev);
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_civoid mv78xx0_ehci0_init(void);
3462306a36Sopenharmony_civoid mv78xx0_ehci1_init(void);
3562306a36Sopenharmony_civoid mv78xx0_ehci2_init(void);
3662306a36Sopenharmony_civoid mv78xx0_ge00_init(struct mv643xx_eth_platform_data *eth_data);
3762306a36Sopenharmony_civoid mv78xx0_ge01_init(struct mv643xx_eth_platform_data *eth_data);
3862306a36Sopenharmony_civoid mv78xx0_ge10_init(struct mv643xx_eth_platform_data *eth_data);
3962306a36Sopenharmony_civoid mv78xx0_ge11_init(struct mv643xx_eth_platform_data *eth_data);
4062306a36Sopenharmony_civoid mv78xx0_pcie_init(int init_port0, int init_port1);
4162306a36Sopenharmony_civoid mv78xx0_sata_init(struct mv_sata_platform_data *sata_data);
4262306a36Sopenharmony_civoid mv78xx0_uart0_init(void);
4362306a36Sopenharmony_civoid mv78xx0_uart1_init(void);
4462306a36Sopenharmony_civoid mv78xx0_uart2_init(void);
4562306a36Sopenharmony_civoid mv78xx0_uart3_init(void);
4662306a36Sopenharmony_civoid mv78xx0_xor_init(void);
4762306a36Sopenharmony_civoid mv78xx0_crypto_init(void);
4862306a36Sopenharmony_civoid mv78xx0_i2c_init(void);
4962306a36Sopenharmony_civoid mv78xx0_restart(enum reboot_mode, const char *);
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ciextern void mv78xx0_timer_init(void);
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ci#endif
55