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