1 /* SPDX-License-Identifier: BSD-2-Clause */
2 /*
3  * Copyright 2017-2019 NXP
4  *
5  * Peng Fan <peng.fan@nxp.com>
6  */
7 #ifndef PLAT_IMX_IMX_H
8 #define PLAT_IMX_IMX_H
9 
10 #include <stdint.h>
11 #include <stdbool.h>
12 
13 #define SOC_MX6SL	0x60
14 #define SOC_MX6DL	0x61
15 #define SOC_MX6SX	0x62
16 #define SOC_MX6Q	0x63
17 #define SOC_MX6UL	0x64
18 #define SOC_MX6ULL	0x65
19 #define SOC_MX6SLL	0x67
20 #define SOC_MX6D	0x6A
21 #define SOC_MX7D	0x72
22 #define SOC_MX7ULP	0xE1
23 #define SOC_MX8QX	0xE2
24 #define SOC_MX8QM	0xE3
25 #define SOC_MX8DXL	0xE4
26 #define SOC_MX8M	0x82
27 #define SOC_MX8ULP	0x83
28 #define SOC_MX93	0xC1
29 
30 #ifndef __ASSEMBLER__
31 uint32_t imx_get_src_gpr(int cpu);
32 void imx_set_src_gpr(int cpu, uint32_t val);
33 bool soc_is_imx6(void);
34 bool soc_is_imx6sx(void);
35 bool soc_is_imx6sl(void);
36 bool soc_is_imx6sll(void);
37 bool soc_is_imx6ul(void);
38 bool soc_is_imx6ull(void);
39 bool soc_is_imx6sdl(void);
40 bool soc_is_imx6dq(void);
41 bool soc_is_imx6dqp(void);
42 bool soc_is_imx7ds(void);
43 bool soc_is_imx7ulp(void);
44 bool soc_is_imx8m(void);
45 bool soc_is_imx8mq(void);
46 bool soc_is_imx8mm(void);
47 bool soc_is_imx8mn(void);
48 bool soc_is_imx8mp(void);
49 bool soc_is_imx8mq_b0_layer(void);
50 uint32_t imx_soc_type(void);
51 uint32_t imx_soc_rev_major(void);
52 uint32_t imx_soc_rev_minor(void);
53 uint32_t imx_get_digprog(void);
54 void imx_gpcv2_set_core1_pdn_by_software(void);
55 void imx_gpcv2_set_core1_pup_by_software(void);
56 void imx_gpcv2_set_core_pgc(bool enable, uint32_t offset);
57 
58 #endif /* __ASSEMBLER__ */
59 #endif
60