xref: /rk3399_rockchip-uboot/arch/powerpc/include/asm/ppc.h (revision 98f705c9cefdfdba62c069821bbba10273a0a8ed)
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