1 /* SPDX-License-Identifier: GPL-2.0 */
2 
3 #ifndef __QCOM_SOCINFO_H__
4 #define __QCOM_SOCINFO_H__
5 
6 /*
7  * SMEM item id, used to acquire handles to respective
8  * SMEM region.
9  */
10 #define SMEM_HW_SW_BUILD_ID		137
11 
12 #define SMEM_SOCINFO_BUILD_ID_LENGTH	32
13 #define SMEM_SOCINFO_CHIP_ID_LENGTH	32
14 
15 /* Socinfo SMEM item structure */
16 struct socinfo {
17 	__le32 fmt;
18 	__le32 id;
19 	__le32 ver;
20 	char build_id[SMEM_SOCINFO_BUILD_ID_LENGTH];
21 	/* Version 2 */
22 	__le32 raw_id;
23 	__le32 raw_ver;
24 	/* Version 3 */
25 	__le32 hw_plat;
26 	/* Version 4 */
27 	__le32 plat_ver;
28 	/* Version 5 */
29 	__le32 accessory_chip;
30 	/* Version 6 */
31 	__le32 hw_plat_subtype;
32 	/* Version 7 */
33 	__le32 pmic_model;
34 	__le32 pmic_die_rev;
35 	/* Version 8 */
36 	__le32 pmic_model_1;
37 	__le32 pmic_die_rev_1;
38 	__le32 pmic_model_2;
39 	__le32 pmic_die_rev_2;
40 	/* Version 9 */
41 	__le32 foundry_id;
42 	/* Version 10 */
43 	__le32 serial_num;
44 	/* Version 11 */
45 	__le32 num_pmics;
46 	__le32 pmic_array_offset;
47 	/* Version 12 */
48 	__le32 chip_family;
49 	__le32 raw_device_family;
50 	__le32 raw_device_num;
51 	/* Version 13 */
52 	__le32 nproduct_id;
53 	char chip_id[SMEM_SOCINFO_CHIP_ID_LENGTH];
54 	/* Version 14 */
55 	__le32 num_clusters;
56 	__le32 ncluster_array_offset;
57 	__le32 num_subset_parts;
58 	__le32 nsubset_parts_array_offset;
59 	/* Version 15 */
60 	__le32 nmodem_supported;
61 	/* Version 16 */
62 	__le32  feature_code;
63 	__le32  pcode;
64 	__le32  npartnamemap_offset;
65 	__le32  nnum_partname_mapping;
66 	/* Version 17 */
67 	__le32 oem_variant;
68 	/* Version 18 */
69 	__le32 num_kvps;
70 	__le32 kvps_offset;
71 	/* Version 19 */
72 	__le32 num_func_clusters;
73 	__le32 boot_cluster;
74 	__le32 boot_core;
75 };
76 
77 #endif
78