blob: 2f39ced111848c566a47245040509b75081566e3 [file] [log] [blame]
/* SPDX-License-Identifier: BSD-2-Clause */
/*
* Copyright 2017-2019 NXP
*
* Peng Fan <peng.fan@nxp.com>
*/
#ifndef PLAT_IMX_IMX_H
#define PLAT_IMX_IMX_H
#include <stdint.h>
#include <stdbool.h>
#define SOC_MX6SL 0x60
#define SOC_MX6DL 0x61
#define SOC_MX6SX 0x62
#define SOC_MX6Q 0x63
#define SOC_MX6UL 0x64
#define SOC_MX6ULL 0x65
#define SOC_MX6SLL 0x67
#define SOC_MX6D 0x6A
#define SOC_MX7D 0x72
#define SOC_MX7ULP 0xE1
#define SOC_MX8QX 0xE2
#define SOC_MX8QM 0xE3
#ifndef __ASSEMBLER__
uint32_t imx_get_src_gpr(int cpu);
void imx_set_src_gpr(int cpu, uint32_t val);
bool soc_is_imx6(void);
bool soc_is_imx6sx(void);
bool soc_is_imx6sl(void);
bool soc_is_imx6sll(void);
bool soc_is_imx6ul(void);
bool soc_is_imx6ull(void);
bool soc_is_imx6sdl(void);
bool soc_is_imx6dq(void);
bool soc_is_imx6dqp(void);
bool soc_is_imx7ds(void);
bool soc_is_imx7ulp(void);
uint16_t soc_revision(void);
void imx_gpcv2_set_core1_pdn_by_software(void);
void imx_gpcv2_set_core1_pup_by_software(void);
void imx_gpcv2_set_core_pgc(bool enable, uint32_t offset);
#ifdef CFG_TZC380
void imx_configure_tzasc(void);
#else
static inline void imx_configure_tzasc(void)
{
}
#endif /* CFG_TZC380 */
#endif /* __ASSEMBLER__ */
#endif