File Index
Files and directories
Sign in
FILE

socinfo.h

File preview with syntax highlighting.

linux-6.19.14/include/linux/soc/qcom/socinfo.h C
  1/* SPDX-License-Identifier: GPL-2.0 */
  2
  3#ifndef __QCOM_SOCINFO_H__
  4#define __QCOM_SOCINFO_H__
  5
  6#include <linux/types.h>
  7
  8/*
  9 * SMEM item id, used to acquire handles to respective
 10 * SMEM region.
 11 */
 12#define SMEM_HW_SW_BUILD_ID		137
 13
 14#define SMEM_SOCINFO_BUILD_ID_LENGTH	32
 15#define SMEM_SOCINFO_CHIP_ID_LENGTH	32
 16
 17/*
 18 * SoC version type with major number in the upper 16 bits and minor
 19 * number in the lower 16 bits.
 20 */
 21#define SOCINFO_MAJOR(ver) (((ver) >> 16) & 0xffff)
 22#define SOCINFO_MINOR(ver) ((ver) & 0xffff)
 23#define SOCINFO_VERSION(maj, min)  ((((maj) & 0xffff) << 16)|((min) & 0xffff))
 24
 25/* Socinfo SMEM item structure */
 26struct socinfo {
 27	__le32 fmt;
 28	__le32 id;
 29	__le32 ver;
 30	char build_id[SMEM_SOCINFO_BUILD_ID_LENGTH];
 31	/* Version 2 */
 32	__le32 raw_id;
 33	__le32 raw_ver;
 34	/* Version 3 */
 35	__le32 hw_plat;
 36	/* Version 4 */
 37	__le32 plat_ver;
 38	/* Version 5 */
 39	__le32 accessory_chip;
 40	/* Version 6 */
 41	__le32 hw_plat_subtype;
 42	/* Version 7 */
 43	__le32 pmic_model;
 44	__le32 pmic_die_rev;
 45	/* Version 8 */
 46	__le32 pmic_model_1;
 47	__le32 pmic_die_rev_1;
 48	__le32 pmic_model_2;
 49	__le32 pmic_die_rev_2;
 50	/* Version 9 */
 51	__le32 foundry_id;
 52	/* Version 10 */
 53	__le32 serial_num;
 54	/* Version 11 */
 55	__le32 num_pmics;
 56	__le32 pmic_array_offset;
 57	/* Version 12 */
 58	__le32 chip_family;
 59	__le32 raw_device_family;
 60	__le32 raw_device_num;
 61	/* Version 13 */
 62	__le32 nproduct_id;
 63	char chip_id[SMEM_SOCINFO_CHIP_ID_LENGTH];
 64	/* Version 14 */
 65	__le32 num_clusters;
 66	__le32 ncluster_array_offset;
 67	__le32 num_subset_parts;
 68	__le32 nsubset_parts_array_offset;
 69	/* Version 15 */
 70	__le32 nmodem_supported;
 71	/* Version 16 */
 72	__le32  feature_code;
 73	__le32  pcode;
 74	__le32  npartnamemap_offset;
 75	__le32  nnum_partname_mapping;
 76	/* Version 17 */
 77	__le32 oem_variant;
 78	/* Version 18 */
 79	__le32 num_kvps;
 80	__le32 kvps_offset;
 81	/* Version 19 */
 82	__le32 num_func_clusters;
 83	__le32 boot_cluster;
 84	__le32 boot_core;
 85	/* Version 20 */
 86	__le32 raw_package_type;
 87	/* Version 21, 22, 23 */
 88	__le32 reserve1[4];
 89};
 90
 91/* Internal feature codes */
 92enum qcom_socinfo_feature_code {
 93	/* External feature codes */
 94	SOCINFO_FC_UNKNOWN = 0x0,
 95	SOCINFO_FC_AA,
 96	SOCINFO_FC_AB,
 97	SOCINFO_FC_AC,
 98	SOCINFO_FC_AD,
 99	SOCINFO_FC_AE,
100	SOCINFO_FC_AF,
101	SOCINFO_FC_AG,
102	SOCINFO_FC_AH,
103};
104
105/* Internal feature codes */
106/* Valid values: 0 <= n <= 0xf */
107#define SOCINFO_FC_Yn(n)		(0xf1 + (n))
108#define SOCINFO_FC_INT_MAX		SOCINFO_FC_Yn(0xf)
109
110/* Product codes */
111#define SOCINFO_PC_UNKNOWN		0
112#define SOCINFO_PCn(n)			((n) + 1)
113#define SOCINFO_PC_RESERVE		(BIT(31) - 1)
114
115#endif
~/ Read-only file preview.