1 /*
2  * Copyright (C) 2015-2020 Alibaba Group Holding Limited
3  */
4 #ifndef __HAL_CHIPID_H__
5 #define __HAL_CHIPID_H__
6 
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 
11 #include "plat_types.h"
12 
13 // BEST1000: A=0 C=1 D=2 F=3 G=4 I=5
14 // BEST1400: A=0 B=1 C=2(cmuRev=2&diffRom) D=3 E=4(cmuRev=3&diffRom) F=5(cmuRev=4)
15 // BEST1402: A=0 B=1
16 // BEST2000: A=0 C=1 D=2 E=3(rev=2&aonRev=4) F=4 G=5
17 // BEST2300: A=0 B=1(rfRev=15) C=3 D=4 E=5(rfRev=4&diffRom)
18 
19 enum HAL_CHIP_METAL_ID_T {
20     HAL_CHIP_METAL_ID_0,
21     HAL_CHIP_METAL_ID_1,
22     HAL_CHIP_METAL_ID_2,
23     HAL_CHIP_METAL_ID_3,
24     HAL_CHIP_METAL_ID_4,
25     HAL_CHIP_METAL_ID_5,
26     HAL_CHIP_METAL_ID_6,
27     HAL_CHIP_METAL_ID_7,
28     HAL_CHIP_METAL_ID_8,
29     HAL_CHIP_METAL_ID_9,
30     HAL_CHIP_METAL_ID_10,
31     HAL_CHIP_METAL_ID_11,
32     HAL_CHIP_METAL_ID_12,
33     HAL_CHIP_METAL_ID_13,
34     HAL_CHIP_METAL_ID_14,
35     HAL_CHIP_METAL_ID_15,
36 };
37 
38 enum HAL_BT_CHIP_SERIES_T {
39     HAL_BT_CHIP_SERIES_2000,
40     HAL_BT_CHIP_SERIES_2300,
41     HAL_BT_CHIP_SERIES_2500,
42 };
43 
44 // Invoked by hal_chipid_init() only
45 uint32_t read_hw_metal_id(void);
46 
47 void hal_chipid_init(void);
48 
49 enum HAL_CHIP_METAL_ID_T hal_get_chip_metal_id(void);
50 enum HAL_BT_CHIP_SERIES_T hal_get_bt_chip_series(void);
51 
52 #ifdef __cplusplus
53 }
54 #endif
55 
56 #endif
57