xref: /rk3399_rockchip-uboot/arch/arm/include/asm/arch-zynqmp/sys_proto.h (revision fe84c48eeb8e9cb0b8b80a4c0a53bb089adff9af)
184c7204bSMichal Simek /*
284c7204bSMichal Simek  * (C) Copyright 2014 - 2015 Xilinx, Inc.
384c7204bSMichal Simek  * Michal Simek <michal.simek@xilinx.com>
484c7204bSMichal Simek  *
584c7204bSMichal Simek  * SPDX-License-Identifier:	GPL-2.0+
684c7204bSMichal Simek  */
784c7204bSMichal Simek 
884c7204bSMichal Simek #ifndef _ASM_ARCH_SYS_PROTO_H
984c7204bSMichal Simek #define _ASM_ARCH_SYS_PROTO_H
1084c7204bSMichal Simek 
11e0752bc1SSiva Durga Prasad Paladugu #define PAYLOAD_ARG_CNT		5
12e0752bc1SSiva Durga Prasad Paladugu 
13db3123b4SSiva Durga Prasad Paladugu #define ZYNQMP_CSU_SILICON_VER_MASK	0xF
14db3123b4SSiva Durga Prasad Paladugu 
15db3123b4SSiva Durga Prasad Paladugu enum {
16db3123b4SSiva Durga Prasad Paladugu 	IDCODE,
17db3123b4SSiva Durga Prasad Paladugu 	VERSION,
18db3123b4SSiva Durga Prasad Paladugu };
19db3123b4SSiva Durga Prasad Paladugu 
20db3123b4SSiva Durga Prasad Paladugu enum {
21db3123b4SSiva Durga Prasad Paladugu 	ZYNQMP_SILICON_V1,
22db3123b4SSiva Durga Prasad Paladugu 	ZYNQMP_SILICON_V2,
23db3123b4SSiva Durga Prasad Paladugu 	ZYNQMP_SILICON_V3,
24db3123b4SSiva Durga Prasad Paladugu 	ZYNQMP_SILICON_V4,
25db3123b4SSiva Durga Prasad Paladugu };
26db3123b4SSiva Durga Prasad Paladugu 
27a076789eSSiva Durga Prasad Paladugu enum {
28a076789eSSiva Durga Prasad Paladugu 	TCM_LOCK,
29a076789eSSiva Durga Prasad Paladugu 	TCM_SPLIT,
30a076789eSSiva Durga Prasad Paladugu };
31a076789eSSiva Durga Prasad Paladugu 
32225bf9aaSMichal Simek int zynq_slcr_get_mio_pin_status(const char *periph);
3384c7204bSMichal Simek 
3484c7204bSMichal Simek unsigned int zynqmp_get_silicon_version(void);
3584c7204bSMichal Simek 
36e6a9ed04SMichal Simek void psu_init(void);
37e6a9ed04SMichal Simek 
38509d4b95SMichal Simek void handoff_setup(void);
39509d4b95SMichal Simek 
40fb4000e8SMichal Simek void zynqmp_pmufw_version(void);
41e0752bc1SSiva Durga Prasad Paladugu int zynqmp_mmio_write(const u32 address, const u32 mask, const u32 value);
42e0752bc1SSiva Durga Prasad Paladugu int zynqmp_mmio_read(const u32 address, u32 *value);
43e0752bc1SSiva Durga Prasad Paladugu int invoke_smc(u32 pm_api_id, u32 arg0, u32 arg1, u32 arg2, u32 arg3,
44e0752bc1SSiva Durga Prasad Paladugu 	       u32 *ret_payload);
45e0752bc1SSiva Durga Prasad Paladugu 
46a076789eSSiva Durga Prasad Paladugu void initialize_tcm(bool mode);
47a076789eSSiva Durga Prasad Paladugu 
48*f52bf5a3SSiva Durga Prasad Paladugu int chip_id(unsigned char id);
49*f52bf5a3SSiva Durga Prasad Paladugu 
5084c7204bSMichal Simek #endif /* _ASM_ARCH_SYS_PROTO_H */
51