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