]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
soc/tegra: fuse: Add Tegra114 nvmem cells and fuse lookups
authorSvyatoslav Ryhel <clamor95@gmail.com>
Thu, 28 Aug 2025 05:50:59 +0000 (08:50 +0300)
committerThierry Reding <treding@nvidia.com>
Thu, 11 Sep 2025 16:19:02 +0000 (18:19 +0200)
Add missing Tegra114 nvmem cells and fuse lookups which were added for
Tegra124+ but omitted for Tegra114.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
drivers/soc/tegra/fuse/fuse-tegra30.c

index e24ab5f7d2bf105cf1b964902921de5866b9fee8..524fa1b0cd3d6fea87e65e7275dfdd19b8d562bc 100644 (file)
@@ -117,6 +117,124 @@ const struct tegra_fuse_soc tegra30_fuse_soc = {
 #endif
 
 #ifdef CONFIG_ARCH_TEGRA_114_SOC
+static const struct nvmem_cell_info tegra114_fuse_cells[] = {
+       {
+               .name = "tsensor-cpu1",
+               .offset = 0x084,
+               .bytes = 4,
+               .bit_offset = 0,
+               .nbits = 32,
+       }, {
+               .name = "tsensor-cpu2",
+               .offset = 0x088,
+               .bytes = 4,
+               .bit_offset = 0,
+               .nbits = 32,
+       }, {
+               .name = "tsensor-common",
+               .offset = 0x08c,
+               .bytes = 4,
+               .bit_offset = 0,
+               .nbits = 32,
+       }, {
+               .name = "tsensor-cpu0",
+               .offset = 0x098,
+               .bytes = 4,
+               .bit_offset = 0,
+               .nbits = 32,
+       }, {
+               .name = "xusb-pad-calibration",
+               .offset = 0x0f0,
+               .bytes = 4,
+               .bit_offset = 0,
+               .nbits = 32,
+       }, {
+               .name = "tsensor-cpu3",
+               .offset = 0x12c,
+               .bytes = 4,
+               .bit_offset = 0,
+               .nbits = 32,
+       }, {
+               .name = "tsensor-gpu",
+               .offset = 0x154,
+               .bytes = 4,
+               .bit_offset = 0,
+               .nbits = 32,
+       }, {
+               .name = "tsensor-mem0",
+               .offset = 0x158,
+               .bytes = 4,
+               .bit_offset = 0,
+               .nbits = 32,
+       }, {
+               .name = "tsensor-mem1",
+               .offset = 0x15c,
+               .bytes = 4,
+               .bit_offset = 0,
+               .nbits = 32,
+       }, {
+               .name = "tsensor-pllx",
+               .offset = 0x160,
+               .bytes = 4,
+               .bit_offset = 0,
+               .nbits = 32,
+       },
+};
+
+static const struct nvmem_cell_lookup tegra114_fuse_lookups[] = {
+       {
+               .nvmem_name = "fuse",
+               .cell_name = "xusb-pad-calibration",
+               .dev_id = "7009f000.padctl",
+               .con_id = "calibration",
+       }, {
+               .nvmem_name = "fuse",
+               .cell_name = "tsensor-common",
+               .dev_id = "700e2000.thermal-sensor",
+               .con_id = "common",
+       }, {
+               .nvmem_name = "fuse",
+               .cell_name = "tsensor-cpu0",
+               .dev_id = "700e2000.thermal-sensor",
+               .con_id = "cpu0",
+       }, {
+               .nvmem_name = "fuse",
+               .cell_name = "tsensor-cpu1",
+               .dev_id = "700e2000.thermal-sensor",
+               .con_id = "cpu1",
+       }, {
+               .nvmem_name = "fuse",
+               .cell_name = "tsensor-cpu2",
+               .dev_id = "700e2000.thermal-sensor",
+               .con_id = "cpu2",
+       }, {
+               .nvmem_name = "fuse",
+               .cell_name = "tsensor-cpu3",
+               .dev_id = "700e2000.thermal-sensor",
+               .con_id = "cpu3",
+       }, {
+               .nvmem_name = "fuse",
+               .cell_name = "tsensor-mem0",
+               .dev_id = "700e2000.thermal-sensor",
+               .con_id = "mem0",
+       }, {
+               .nvmem_name = "fuse",
+               .cell_name = "tsensor-mem1",
+               .dev_id = "700e2000.thermal-sensor",
+               .con_id = "mem1",
+       }, {
+               .nvmem_name = "fuse",
+               .cell_name = "tsensor-gpu",
+               .dev_id = "700e2000.thermal-sensor",
+               .con_id = "gpu",
+       }, {
+               .nvmem_name = "fuse",
+               .cell_name = "tsensor-pllx",
+               .dev_id = "700e2000.thermal-sensor",
+               .con_id = "pllx",
+       },
+};
+
 static const struct tegra_fuse_info tegra114_fuse_info = {
        .read = tegra30_fuse_read,
        .size = 0x2a0,
@@ -127,6 +245,10 @@ const struct tegra_fuse_soc tegra114_fuse_soc = {
        .init = tegra30_fuse_init,
        .speedo_init = tegra114_init_speedo_data,
        .info = &tegra114_fuse_info,
+       .lookups = tegra114_fuse_lookups,
+       .num_lookups = ARRAY_SIZE(tegra114_fuse_lookups),
+       .cells = tegra114_fuse_cells,
+       .num_cells = ARRAY_SIZE(tegra114_fuse_cells),
        .soc_attr_group = &tegra_soc_attr_group,
        .clk_suspend_on = false,
 };