185043159SSimon Glass /* 285043159SSimon Glass * Ugly header containing required header files. This could be adjusted 385043159SSimon Glass * so that including asm/arch/hardware includes the correct file. 485043159SSimon Glass * 585043159SSimon Glass * (C) Copyright 2000-2009 685043159SSimon Glass * Wolfgang Denk, DENX Software Engineering, wd@denx.de. 785043159SSimon Glass * 885043159SSimon Glass * SPDX-License-Identifier: GPL-2.0+ 985043159SSimon Glass */ 1085043159SSimon Glass 1185043159SSimon Glass #ifndef __ASM_PPC_H 1285043159SSimon Glass #define __ASM_PPC_H 1385043159SSimon Glass 1485043159SSimon Glass #ifndef __ASSEMBLY__ 1585043159SSimon Glass 1685043159SSimon Glass #ifdef CONFIG_MPC86xx 1785043159SSimon Glass #include <mpc86xx.h> 1885043159SSimon Glass #include <asm/immap_86xx.h> 1985043159SSimon Glass #endif 2085043159SSimon Glass #ifdef CONFIG_MPC85xx 2185043159SSimon Glass #include <mpc85xx.h> 2285043159SSimon Glass #include <asm/immap_85xx.h> 2385043159SSimon Glass #endif 2485043159SSimon Glass #ifdef CONFIG_MPC83xx 2585043159SSimon Glass #include <mpc83xx.h> 2685043159SSimon Glass #include <asm/immap_83xx.h> 2785043159SSimon Glass #endif 2885043159SSimon Glass #ifdef CONFIG_SOC_DA8XX 2985043159SSimon Glass #include <asm/arch/hardware.h> 3085043159SSimon Glass #endif 3185043159SSimon Glass #ifdef CONFIG_FSL_LSCH3 3285043159SSimon Glass #include <asm/arch/immap_lsch3.h> 3385043159SSimon Glass #endif 3485043159SSimon Glass #ifdef CONFIG_FSL_LSCH2 3585043159SSimon Glass #include <asm/arch/immap_lsch2.h> 3685043159SSimon Glass #endif 3785043159SSimon Glass 386e2941d7SSimon Glass uint get_pvr(void); 396e2941d7SSimon Glass uint get_svr(void); 406e2941d7SSimon Glass uint rd_ic_cst(void); 416e2941d7SSimon Glass void wr_ic_cst(uint); 426e2941d7SSimon Glass void wr_ic_adr(uint); 436e2941d7SSimon Glass uint rd_dc_cst(void); 446e2941d7SSimon Glass void wr_dc_cst(uint); 456e2941d7SSimon Glass void wr_dc_adr(uint); 466e2941d7SSimon Glass 47*98f705c9SHeiko Schocher #if defined(CONFIG_MPC85xx) || \ 486e2941d7SSimon Glass defined(CONFIG_MPC86xx) || \ 496e2941d7SSimon Glass defined(CONFIG_MPC83xx) 506e2941d7SSimon Glass unsigned char in8(unsigned int); 516e2941d7SSimon Glass void out8(unsigned int, unsigned char); 526e2941d7SSimon Glass unsigned short in16(unsigned int); 536e2941d7SSimon Glass unsigned short in16r(unsigned int); 546e2941d7SSimon Glass void out16(unsigned int, unsigned short value); 556e2941d7SSimon Glass void out16r(unsigned int, unsigned short value); 566e2941d7SSimon Glass unsigned long in32(unsigned int); 576e2941d7SSimon Glass unsigned long in32r(unsigned int); 586e2941d7SSimon Glass void out32(unsigned int, unsigned long value); 596e2941d7SSimon Glass void out32r(unsigned int, unsigned long value); 606e2941d7SSimon Glass void ppcDcbf(unsigned long value); 616e2941d7SSimon Glass void ppcDcbi(unsigned long value); 626e2941d7SSimon Glass void ppcSync(void); 636e2941d7SSimon Glass void ppcDcbz(unsigned long value); 646e2941d7SSimon Glass #endif 656e2941d7SSimon Glass #if defined(CONFIG_MPC83xx) 666e2941d7SSimon Glass void ppcDWload(unsigned int *addr, unsigned int *ret); 676e2941d7SSimon Glass void ppcDWstore(unsigned int *addr, unsigned int *value); 686e2941d7SSimon Glass void disable_addr_trans(void); 696e2941d7SSimon Glass void enable_addr_trans(void); 706e2941d7SSimon Glass #if defined(CONFIG_DDR_ECC) && !defined(CONFIG_ECC_INIT_VIA_DDRCONTROLLER) 716e2941d7SSimon Glass void ddr_enable_ecc(unsigned int dram_size); 726e2941d7SSimon Glass #endif 736e2941d7SSimon Glass #endif 746e2941d7SSimon Glass 756e2941d7SSimon Glass #if defined(CONFIG_MPC85xx) 766e2941d7SSimon Glass typedef MPC85xx_SYS_INFO sys_info_t; 776e2941d7SSimon Glass void get_sys_info(sys_info_t *); 786e2941d7SSimon Glass void ft_fixup_cpu(void *, u64); 796e2941d7SSimon Glass void ft_fixup_num_cores(void *); 806e2941d7SSimon Glass #endif 816e2941d7SSimon Glass #if defined(CONFIG_MPC86xx) 826e2941d7SSimon Glass ulong get_bus_freq(ulong); 836e2941d7SSimon Glass typedef MPC86xx_SYS_INFO sys_info_t; 846e2941d7SSimon Glass void get_sys_info(sys_info_t *); 856e2941d7SSimon Glass static inline ulong get_ddr_freq(ulong dummy) 866e2941d7SSimon Glass { 876e2941d7SSimon Glass return get_bus_freq(dummy); 886e2941d7SSimon Glass } 896e2941d7SSimon Glass #else 906e2941d7SSimon Glass ulong get_ddr_freq(ulong); 916e2941d7SSimon Glass #endif 926e2941d7SSimon Glass 9385043159SSimon Glass #endif /* !__ASSEMBLY__ */ 9485043159SSimon Glass 956e2941d7SSimon Glass #ifdef CONFIG_PPC 966e2941d7SSimon Glass /* 976e2941d7SSimon Glass * Has to be included outside of the #ifndef __ASSEMBLY__ section. 986e2941d7SSimon Glass * Otherwise might lead to compilation errors in assembler files. 996e2941d7SSimon Glass */ 1006e2941d7SSimon Glass #include <asm/cache.h> 1016e2941d7SSimon Glass #endif 1026e2941d7SSimon Glass 10385043159SSimon Glass #endif 104