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