tegra: hwpm: add csn/csnh enum

Add new enums for CSN/CSNH ip and resource to
kernel driver and userspace library.

JIRA MSST-869

Change-Id: I821010dca617596b86b0fec07f499cf1e6e3f258
Signed-off-by: Besar Wicaksono <bwicaksono@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-hwpm/+/3325216
Reviewed-by: Yifei Wan <ywan@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Vasuki Shankar <vasukis@nvidia.com>
This commit is contained in:
Besar Wicaksono
2025-03-24 22:00:33 +00:00
committed by mobile promotions
parent 8b415ed149
commit a4b7ab4486
5 changed files with 45 additions and 0 deletions

View File

@@ -105,6 +105,9 @@ enum tegra_hwpm_ip_enum {
TEGRA_HWPM_IP_UCF_SCB, TEGRA_HWPM_IP_UCF_SCB,
TEGRA_HWPM_IP_CPU, TEGRA_HWPM_IP_CPU,
TEGRA_HWPM_IP_NVTHERM, TEGRA_HWPM_IP_NVTHERM,
TEGRA_HWPM_IP_CSN, /* CSN instance 0-31 */
TEGRA_HWPM_IP_CSN_EXT_0, /* CSN (extended) instance 32-63 */
TEGRA_HWPM_IP_CSNH,
TERGA_HWPM_NUM_IPS TERGA_HWPM_NUM_IPS
}; };
@@ -154,6 +157,9 @@ static inline const char *tegra_hwpm_ip_string(enum tegra_hwpm_ip_enum ip_enum)
[TEGRA_HWPM_IP_UCF_SCB] = "ucf_scb", [TEGRA_HWPM_IP_UCF_SCB] = "ucf_scb",
[TEGRA_HWPM_IP_CPU] = "cpu", [TEGRA_HWPM_IP_CPU] = "cpu",
[TEGRA_HWPM_IP_NVTHERM] = "nvtherm", [TEGRA_HWPM_IP_NVTHERM] = "nvtherm",
[TEGRA_HWPM_IP_CSN] = "csn",
[TEGRA_HWPM_IP_CSN_EXT_0] = "csn_ext_0",
[TEGRA_HWPM_IP_CSNH] = "csnh",
[TERGA_HWPM_NUM_IPS] = "unknown", [TERGA_HWPM_NUM_IPS] = "unknown",
}; };
@@ -210,6 +216,9 @@ enum tegra_hwpm_resource_enum {
TEGRA_HWPM_RESOURCE_UCF_SCB, TEGRA_HWPM_RESOURCE_UCF_SCB,
TEGRA_HWPM_RESOURCE_CPU, TEGRA_HWPM_RESOURCE_CPU,
TEGRA_HWPM_RESOURCE_NVTHERM, TEGRA_HWPM_RESOURCE_NVTHERM,
TEGRA_HWPM_RESOURCE_CSN, /* CSN instance 0-31 */
TEGRA_HWPM_RESOURCE_CSN_EXT_0, /* CSN (extended) instance 32-63 */
TEGRA_HWPM_RESOURCE_CSNH,
TERGA_HWPM_NUM_RESOURCES TERGA_HWPM_NUM_RESOURCES
}; };

View File

@@ -150,6 +150,15 @@ static u32 tegra_hwpm_translate_soc_hwpm_ip(struct tegra_soc_hwpm *hwpm,
case TEGRA_SOC_HWPM_IP_NVTHERM: case TEGRA_SOC_HWPM_IP_NVTHERM:
ip_enum_idx = TEGRA_HWPM_IP_NVTHERM; ip_enum_idx = TEGRA_HWPM_IP_NVTHERM;
break; break;
case TEGRA_SOC_HWPM_IP_CSN:
ip_enum_idx = TEGRA_HWPM_IP_CSN;
break;
case TEGRA_SOC_HWPM_IP_CSN_EXT_0:
ip_enum_idx = TEGRA_HWPM_IP_CSN_EXT_0;
break;
case TEGRA_SOC_HWPM_IP_CSNH:
ip_enum_idx = TEGRA_HWPM_IP_CSNH;
break;
default: default:
tegra_hwpm_err(hwpm, tegra_hwpm_err(hwpm,
"Queried enum tegra_soc_hwpm_ip %d is invalid", "Queried enum tegra_soc_hwpm_ip %d is invalid",
@@ -318,6 +327,15 @@ u32 tegra_hwpm_translate_soc_hwpm_resource(struct tegra_soc_hwpm *hwpm,
case TEGRA_SOC_HWPM_RESOURCE_NVTHERM: case TEGRA_SOC_HWPM_RESOURCE_NVTHERM:
res_enum_idx = TEGRA_HWPM_RESOURCE_NVTHERM; res_enum_idx = TEGRA_HWPM_RESOURCE_NVTHERM;
break; break;
case TEGRA_SOC_HWPM_RESOURCE_CSN:
res_enum_idx = TEGRA_HWPM_RESOURCE_CSN;
break;
case TEGRA_SOC_HWPM_RESOURCE_CSN_EXT_0:
res_enum_idx = TEGRA_HWPM_RESOURCE_CSN_EXT_0;
break;
case TEGRA_SOC_HWPM_RESOURCE_CSNH:
res_enum_idx = TEGRA_HWPM_RESOURCE_CSNH;
break;
default: default:
tegra_hwpm_err(hwpm, tegra_hwpm_err(hwpm,
"Queried enum tegra_soc_hwpm_resource %d is invalid", "Queried enum tegra_soc_hwpm_resource %d is invalid",

View File

@@ -63,6 +63,9 @@ enum tegra_soc_hwpm_ip {
TEGRA_SOC_HWPM_IP_UCF_SCB, TEGRA_SOC_HWPM_IP_UCF_SCB,
TEGRA_SOC_HWPM_IP_CPU, TEGRA_SOC_HWPM_IP_CPU,
TEGRA_SOC_HWPM_IP_NVTHERM, TEGRA_SOC_HWPM_IP_NVTHERM,
TEGRA_SOC_HWPM_IP_CSN, /* CSN instance 0-31 */
TEGRA_SOC_HWPM_IP_CSN_EXT_0, /* CSN (extended) instance 32-63 */
TEGRA_SOC_HWPM_IP_CSNH,
TERGA_SOC_HWPM_NUM_IPS TERGA_SOC_HWPM_NUM_IPS
}; };
@@ -151,6 +154,9 @@ enum tegra_soc_hwpm_resource {
TEGRA_SOC_HWPM_RESOURCE_UCF_SCB, TEGRA_SOC_HWPM_RESOURCE_UCF_SCB,
TEGRA_SOC_HWPM_RESOURCE_CPU, TEGRA_SOC_HWPM_RESOURCE_CPU,
TEGRA_SOC_HWPM_RESOURCE_NVTHERM, TEGRA_SOC_HWPM_RESOURCE_NVTHERM,
TEGRA_SOC_HWPM_RESOURCE_CSN, /* CSN instance 0-31 */
TEGRA_SOC_HWPM_RESOURCE_CSN_EXT_0, /* CSN (extended) instance 32-63 */
TEGRA_SOC_HWPM_RESOURCE_CSNH,
TERGA_SOC_HWPM_NUM_RESOURCES TERGA_SOC_HWPM_NUM_RESOURCES
}; };

View File

@@ -74,6 +74,9 @@ typedef enum {
NV_SOC_HWPM_IP_UCF_SCB, NV_SOC_HWPM_IP_UCF_SCB,
NV_SOC_HWPM_IP_CPU, NV_SOC_HWPM_IP_CPU,
NV_SOC_HWPM_IP_NVTHERM, NV_SOC_HWPM_IP_NVTHERM,
NV_SOC_HWPM_IP_CSN, /* CSN instance 0-31 */
NV_SOC_HWPM_IP_CSN_EXT_0, /* CSN (extended) instance 32-63 */
NV_SOC_HWPM_IP_CSNH,
NV_SOC_HWPM_NUM_IPS NV_SOC_HWPM_NUM_IPS
} nv_soc_hwpm_ip; } nv_soc_hwpm_ip;
@@ -137,6 +140,9 @@ typedef enum {
NV_SOC_HWPM_RESOURCE_UCF_SCB, NV_SOC_HWPM_RESOURCE_UCF_SCB,
NV_SOC_HWPM_RESOURCE_CPU, NV_SOC_HWPM_RESOURCE_CPU,
NV_SOC_HWPM_RESOURCE_NVTHERM, NV_SOC_HWPM_RESOURCE_NVTHERM,
NV_SOC_HWPM_RESOURCE_CSN, /* CSN instance 0-31 */
NV_SOC_HWPM_RESOURCE_CSN_EXT_0, /* CSN (extended) instance 32-63 */
NV_SOC_HWPM_RESOURCE_CSNH,
NV_SOC_HWPM_NUM_RESOURCES NV_SOC_HWPM_NUM_RESOURCES
} nv_soc_hwpm_resource; } nv_soc_hwpm_resource;

View File

@@ -124,6 +124,12 @@ static uint32_t get_ip_max_instances(
switch (ip) { switch (ip) {
case NV_SOC_HWPM_IP_NVTHERM: case NV_SOC_HWPM_IP_NVTHERM:
return 1; return 1;
case NV_SOC_HWPM_IP_CSN:
return 32;
case NV_SOC_HWPM_IP_CSN_EXT_0:
return 10;
case NV_SOC_HWPM_IP_CSNH:
return 7;
default: default:
break; break;
} }