Re: [PATCH 1/3] soc: mediatek: mtk-socinfo: Add driver for getting chip information

From: AngeloGioacchino Del Regno
Date: Wed Jul 19 2023 - 03:21:43 EST


Il 18/07/23 13:21, William-tw Lin ha scritto:
Add driver for socinfo retrieval. This patch includes the following:
1. mtk-socinfo driver for chip info retrieval
2. Related changes to Makefile and Kconfig

Signed-off-by: William-tw Lin <william-tw.lin@xxxxxxxxxxxx>
---
drivers/soc/mediatek/Kconfig | 18 +++
drivers/soc/mediatek/Makefile | 1 +
drivers/soc/mediatek/mtk-socinfo.c | 203 +++++++++++++++++++++++++++
drivers/soc/mediatek/mtk-socinfo.h | 213 +++++++++++++++++++++++++++++
4 files changed, 435 insertions(+)
create mode 100644 drivers/soc/mediatek/mtk-socinfo.c
create mode 100644 drivers/soc/mediatek/mtk-socinfo.h


..snip..

+
+/* begin 8186 info */
+#define mtk_mt8186_EFUSE_DATA_COUNT 1
+static struct efuse_data mtk_mt8186_efuse_data_info[][mtk_mt8186_EFUSE_DATA_COUNT] = {
+ {{.nvmem_cell_name = "socinfo-data1", .efuse_data = 0x81861001}},
+ {{.nvmem_cell_name = "socinfo-data1", .efuse_data = 0x81862001}},
+};

I'm *sure* that there's a way to avoid specifying the soc-specific compatible, as
the efuse_data is used only for validation, while what you do here is to simply
read the SoC ID from eFuse array.

In theory, this driver could simply have

compatible = "mediatek,socinfo";

as compatible string, without any SoC-specific string in the devicetree, at all,
so that the SoC ID would get recognized completely dynamically - and adding the
name and other strings would be a consequence.

+
+static struct name_data mtk_mt8186_name_data_info[] = {
+ {.soc_name = "MT8186",
+ .soc_segment_name = "MT8186GV/AZA",
+ .marketing_name = "Kompanio 520"},
+ {.soc_name = "MT8186T",
+ .soc_segment_name = "MT8186TV/AZA",
+ .marketing_name = "Kompanio 528"},
+};
+/* end 8186 info */
+

Regards,
Angelo