From 315d8c6caa3a149b83c9894e94da852a50310c2d Mon Sep 17 00:00:00 2001 From: Lakshmanan M Date: Thu, 8 Sep 2016 22:50:59 +0530 Subject: gpu: nvgpu: Add pmgr support This CL covers the following implementation, 1) Power Sensor Table parsing. 2) Power Topology Table parsing. 3) Add debugfs interface to get the current power(mW), current(mA) and voltage(uV) information from PMU. 4) Power Policy Table Parsing 5) Implement PMU boardobj interface for pmgr module. 6) Over current protection. JIRA DNVGPU-47 Change-Id: I620f4470aa704f1cc920e03947831440fbb0eb05 Signed-off-by: Lakshmanan M Reviewed-on: http://git-master/r/1217176 (cherry picked from commit ed56743c2ac8dc325c75f85a82271d2d5ed8d96a) Reviewed-on: http://git-master/r/1241952 Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/gk20a/gk20a.h | 3 +++ drivers/gpu/nvgpu/gk20a/pmu_gk20a.h | 4 ++++ 2 files changed, 7 insertions(+) (limited to 'drivers/gpu/nvgpu/gk20a') diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h index 58e69cbe..22a9ce4c 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/gk20a.h @@ -57,9 +57,11 @@ struct acr_desc; #ifdef CONFIG_ARCH_TEGRA_18x_SOC #include "clk/clk.h" #include "perf/perf.h" +#include "pmgr/pmgr.h" #endif #include "gm206/bios_gm206.h" + /* PTIMER_REF_FREQ_HZ corresponds to a period of 32 nanoseconds. 32 ns is the resolution of ptimer. */ #define PTIMER_REF_FREQ_HZ 31250000 @@ -784,6 +786,7 @@ struct gk20a { #ifdef CONFIG_ARCH_TEGRA_18x_SOC struct clk_pmupstate clk_pmu; struct perf_pmupstate perf_pmu; + struct pmgr_pmupstate pmgr_pmu; #endif #ifdef CONFIG_DEBUG_FS diff --git a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h index b28fd597..d6d57880 100644 --- a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h @@ -26,6 +26,7 @@ #include "pmuif/gpmuifboardobj.h" #include "pmuif/gpmuifclk.h" #include "pmuif/gpmuifperf.h" +#include "pmuif/gpmuifpmgr.h" /* defined by pmu hw spec */ #define GK20A_PMU_VA_SIZE (512 * 1024 * 1024) @@ -179,6 +180,7 @@ struct pmu_ucode_desc_v1 { #define PMU_UNIT_RC (0x1F) #define PMU_UNIT_FECS_MEM_OVERRIDE (0x1E) #define PMU_UNIT_CLK (0x0D) +#define PMU_UNIT_PMGR (0x18) #define PMU_UNIT_END (0x23) @@ -358,6 +360,7 @@ struct pmu_cmd { struct nv_pmu_boardobj_cmd boardobj; struct nv_pmu_perf_cmd perf; struct nv_pmu_clk_cmd clk; + struct nv_pmu_pmgr_cmd pmgr; } cmd; }; @@ -373,6 +376,7 @@ struct pmu_msg { struct nv_pmu_boardobj_msg boardobj; struct nv_pmu_perf_msg perf; struct nv_pmu_clk_msg clk; + struct nv_pmu_pmgr_msg pmgr; } msg; }; -- cgit v1.2.2