2023-05-22 21:13:08 +00:00
|
|
|
From 97505f4c049fa2e8c86a53411a9e599033898533 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Robert Marko <robimarko@gmail.com>
|
|
|
|
Date: Sat, 31 Dec 2022 00:27:42 +0100
|
|
|
|
Subject: [PATCH] soc: qcom: socinfo: move SMEM item struct and defines to a
|
|
|
|
header
|
|
|
|
|
|
|
|
Move SMEM item struct and related defines to a header in order to be able
|
|
|
|
to reuse them in the Qualcomm NVMEM CPUFreq driver instead of duplicating
|
|
|
|
them.
|
|
|
|
|
|
|
|
Signed-off-by: Robert Marko <robimarko@gmail.com>
|
|
|
|
---
|
|
|
|
drivers/soc/qcom/socinfo.c | 58 +--------------------------
|
|
|
|
include/linux/soc/qcom/socinfo.h | 67 ++++++++++++++++++++++++++++++++
|
|
|
|
2 files changed, 68 insertions(+), 57 deletions(-)
|
|
|
|
create mode 100644 include/linux/soc/qcom/socinfo.h
|
|
|
|
|
|
|
|
--- a/drivers/soc/qcom/socinfo.c
|
|
|
|
+++ b/drivers/soc/qcom/socinfo.c
|
|
|
|
@@ -11,6 +11,7 @@
|
|
|
|
#include <linux/random.h>
|
|
|
|
#include <linux/slab.h>
|
|
|
|
#include <linux/soc/qcom/smem.h>
|
|
|
|
+#include <linux/soc/qcom/socinfo.h>
|
|
|
|
#include <linux/string.h>
|
|
|
|
#include <linux/sys_soc.h>
|
|
|
|
#include <linux/types.h>
|
|
|
|
@@ -25,15 +26,6 @@
|
|
|
|
#define SOCINFO_MINOR(ver) ((ver) & 0xffff)
|
|
|
|
#define SOCINFO_VERSION(maj, min) ((((maj) & 0xffff) << 16)|((min) & 0xffff))
|
|
|
|
|
|
|
|
-#define SMEM_SOCINFO_BUILD_ID_LENGTH 32
|
|
|
|
-#define SMEM_SOCINFO_CHIP_ID_LENGTH 32
|
|
|
|
-
|
|
|
|
-/*
|
|
|
|
- * SMEM item id, used to acquire handles to respective
|
|
|
|
- * SMEM region.
|
|
|
|
- */
|
|
|
|
-#define SMEM_HW_SW_BUILD_ID 137
|
|
|
|
-
|
|
|
|
#ifdef CONFIG_DEBUG_FS
|
|
|
|
#define SMEM_IMAGE_VERSION_BLOCKS_COUNT 32
|
|
|
|
#define SMEM_IMAGE_VERSION_SIZE 4096
|
2023-05-22 21:23:14 +00:00
|
|
|
@@ -116,54 +108,6 @@ static const char *const pmic_models[] =
|
2023-05-22 21:13:08 +00:00
|
|
|
};
|
|
|
|
#endif /* CONFIG_DEBUG_FS */
|
|
|
|
|
|
|
|
-/* Socinfo SMEM item structure */
|
|
|
|
-struct socinfo {
|
|
|
|
- __le32 fmt;
|
|
|
|
- __le32 id;
|
|
|
|
- __le32 ver;
|
|
|
|
- char build_id[SMEM_SOCINFO_BUILD_ID_LENGTH];
|
|
|
|
- /* Version 2 */
|
|
|
|
- __le32 raw_id;
|
|
|
|
- __le32 raw_ver;
|
|
|
|
- /* Version 3 */
|
|
|
|
- __le32 hw_plat;
|
|
|
|
- /* Version 4 */
|
|
|
|
- __le32 plat_ver;
|
|
|
|
- /* Version 5 */
|
|
|
|
- __le32 accessory_chip;
|
|
|
|
- /* Version 6 */
|
|
|
|
- __le32 hw_plat_subtype;
|
|
|
|
- /* Version 7 */
|
|
|
|
- __le32 pmic_model;
|
|
|
|
- __le32 pmic_die_rev;
|
|
|
|
- /* Version 8 */
|
|
|
|
- __le32 pmic_model_1;
|
|
|
|
- __le32 pmic_die_rev_1;
|
|
|
|
- __le32 pmic_model_2;
|
|
|
|
- __le32 pmic_die_rev_2;
|
|
|
|
- /* Version 9 */
|
|
|
|
- __le32 foundry_id;
|
|
|
|
- /* Version 10 */
|
|
|
|
- __le32 serial_num;
|
|
|
|
- /* Version 11 */
|
|
|
|
- __le32 num_pmics;
|
|
|
|
- __le32 pmic_array_offset;
|
|
|
|
- /* Version 12 */
|
|
|
|
- __le32 chip_family;
|
|
|
|
- __le32 raw_device_family;
|
|
|
|
- __le32 raw_device_num;
|
|
|
|
- /* Version 13 */
|
|
|
|
- __le32 nproduct_id;
|
|
|
|
- char chip_id[SMEM_SOCINFO_CHIP_ID_LENGTH];
|
|
|
|
- /* Version 14 */
|
|
|
|
- __le32 num_clusters;
|
|
|
|
- __le32 ncluster_array_offset;
|
|
|
|
- __le32 num_defective_parts;
|
|
|
|
- __le32 ndefective_parts_array_offset;
|
|
|
|
- /* Version 15 */
|
|
|
|
- __le32 nmodem_supported;
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
#ifdef CONFIG_DEBUG_FS
|
|
|
|
struct socinfo_params {
|
|
|
|
u32 raw_device_family;
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/include/linux/soc/qcom/socinfo.h
|
|
|
|
@@ -0,0 +1,67 @@
|
|
|
|
+// SPDX-License-Identifier: GPL-2.0
|
|
|
|
+/*
|
|
|
|
+ * Copyright (c) 2009-2017, The Linux Foundation. All rights reserved.
|
|
|
|
+ * Copyright (c) 2017-2019, Linaro Ltd.
|
|
|
|
+ */
|
|
|
|
+
|
|
|
|
+#ifndef __QCOM_SOCINFO_H__
|
|
|
|
+#define __QCOM_SOCINFO_H__
|
|
|
|
+
|
|
|
|
+/*
|
|
|
|
+ * SMEM item id, used to acquire handles to respective
|
|
|
|
+ * SMEM region.
|
|
|
|
+ */
|
|
|
|
+#define SMEM_HW_SW_BUILD_ID 137
|
|
|
|
+
|
|
|
|
+#define SMEM_SOCINFO_BUILD_ID_LENGTH 32
|
|
|
|
+#define SMEM_SOCINFO_CHIP_ID_LENGTH 32
|
|
|
|
+
|
|
|
|
+/* Socinfo SMEM item structure */
|
|
|
|
+struct socinfo {
|
|
|
|
+ __le32 fmt;
|
|
|
|
+ __le32 id;
|
|
|
|
+ __le32 ver;
|
|
|
|
+ char build_id[SMEM_SOCINFO_BUILD_ID_LENGTH];
|
|
|
|
+ /* Version 2 */
|
|
|
|
+ __le32 raw_id;
|
|
|
|
+ __le32 raw_ver;
|
|
|
|
+ /* Version 3 */
|
|
|
|
+ __le32 hw_plat;
|
|
|
|
+ /* Version 4 */
|
|
|
|
+ __le32 plat_ver;
|
|
|
|
+ /* Version 5 */
|
|
|
|
+ __le32 accessory_chip;
|
|
|
|
+ /* Version 6 */
|
|
|
|
+ __le32 hw_plat_subtype;
|
|
|
|
+ /* Version 7 */
|
|
|
|
+ __le32 pmic_model;
|
|
|
|
+ __le32 pmic_die_rev;
|
|
|
|
+ /* Version 8 */
|
|
|
|
+ __le32 pmic_model_1;
|
|
|
|
+ __le32 pmic_die_rev_1;
|
|
|
|
+ __le32 pmic_model_2;
|
|
|
|
+ __le32 pmic_die_rev_2;
|
|
|
|
+ /* Version 9 */
|
|
|
|
+ __le32 foundry_id;
|
|
|
|
+ /* Version 10 */
|
|
|
|
+ __le32 serial_num;
|
|
|
|
+ /* Version 11 */
|
|
|
|
+ __le32 num_pmics;
|
|
|
|
+ __le32 pmic_array_offset;
|
|
|
|
+ /* Version 12 */
|
|
|
|
+ __le32 chip_family;
|
|
|
|
+ __le32 raw_device_family;
|
|
|
|
+ __le32 raw_device_num;
|
|
|
|
+ /* Version 13 */
|
|
|
|
+ __le32 nproduct_id;
|
|
|
|
+ char chip_id[SMEM_SOCINFO_CHIP_ID_LENGTH];
|
|
|
|
+ /* Version 14 */
|
|
|
|
+ __le32 num_clusters;
|
|
|
|
+ __le32 ncluster_array_offset;
|
|
|
|
+ __le32 num_defective_parts;
|
|
|
|
+ __le32 ndefective_parts_array_offset;
|
|
|
|
+ /* Version 15 */
|
|
|
|
+ __le32 nmodem_supported;
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+#endif
|