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