Files
linux-hwpm/tegra-soc-hwpm-hw.h
Vedashree Vidwans 0cb6f6b48f tegra: hwpm: t234: add generated hw headers
- Generate HWPM hw headers using register generator tool.
- Add required hw headers to include/hw/ path
- Update driver code to replace static hw defines with hw header
definitions.
- Remove unused static hw defines.

THWPM-39

Change-Id: I57566d51657bb6b22c4b581acd257f1871438adf
Signed-off-by: Vedashree Vidwans <vvidwans@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2552741
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2021-07-12 23:35:58 -07:00

107 lines
3.7 KiB
C

/*
* tegra-soc-hwpm-hw.h:
* This header contains HW aperture and register info for the Tegra SOC HWPM
* driver.
*
* Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License,
* version 2, as published by the Free Software Foundation.
*
* This program is distributed in the hope it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef TEGRA_SOC_HWPM_HW_H
#define TEGRA_SOC_HWPM_HW_H
#include <linux/types.h>
#include "include/hw/t234/hw_addr_map_soc_hwpm.h"
#include "include/hw/t234/hw_pmasys_soc_hwpm.h"
#include "include/hw/t234/hw_pmmsys_soc_hwpm.h"
/* FIXME: Move enum to DT include file? */
enum tegra_soc_hwpm_dt_aperture {
TEGRA_SOC_HWPM_INVALID_DT = -1,
/* PERFMONs */
TEGRA_SOC_HWPM_VI0_PERFMON_DT = 0,
TEGRA_SOC_HWPM_FIRST_PERFMON_DT = TEGRA_SOC_HWPM_VI0_PERFMON_DT,
TEGRA_SOC_HWPM_VI1_PERFMON_DT = TEGRA_SOC_HWPM_FIRST_PERFMON_DT + 1,
TEGRA_SOC_HWPM_ISP0_PERFMON_DT,
TEGRA_SOC_HWPM_VICA0_PERFMON_DT,
TEGRA_SOC_HWPM_OFAA0_PERFMON_DT,
TEGRA_SOC_HWPM_PVAV0_PERFMON_DT,
TEGRA_SOC_HWPM_PVAV1_PERFMON_DT,
TEGRA_SOC_HWPM_PVAC0_PERFMON_DT,
TEGRA_SOC_HWPM_NVDLAB0_PERFMON_DT,
TEGRA_SOC_HWPM_NVDLAB1_PERFMON_DT,
TEGRA_SOC_HWPM_NVDISPLAY0_PERFMON_DT,
TEGRA_SOC_HWPM_SYS0_PERFMON_DT,
TEGRA_SOC_HWPM_MGBE0_PERFMON_DT,
TEGRA_SOC_HWPM_MGBE1_PERFMON_DT,
TEGRA_SOC_HWPM_MGBE2_PERFMON_DT,
TEGRA_SOC_HWPM_MGBE3_PERFMON_DT,
TEGRA_SOC_HWPM_SCF0_PERFMON_DT,
TEGRA_SOC_HWPM_NVDECA0_PERFMON_DT,
TEGRA_SOC_HWPM_NVENCA0_PERFMON_DT,
TEGRA_SOC_HWPM_MSSNVLHSH0_PERFMON_DT,
TEGRA_SOC_HWPM_PCIE0_PERFMON_DT,
TEGRA_SOC_HWPM_PCIE1_PERFMON_DT,
TEGRA_SOC_HWPM_PCIE2_PERFMON_DT,
TEGRA_SOC_HWPM_PCIE3_PERFMON_DT,
TEGRA_SOC_HWPM_PCIE4_PERFMON_DT,
TEGRA_SOC_HWPM_PCIE5_PERFMON_DT,
TEGRA_SOC_HWPM_PCIE6_PERFMON_DT,
TEGRA_SOC_HWPM_PCIE7_PERFMON_DT,
TEGRA_SOC_HWPM_PCIE8_PERFMON_DT,
TEGRA_SOC_HWPM_PCIE9_PERFMON_DT,
TEGRA_SOC_HWPM_PCIE10_PERFMON_DT,
TEGRA_SOC_HWPM_MSSCHANNELPARTA0_PERFMON_DT,
TEGRA_SOC_HWPM_MSSCHANNELPARTA1_PERFMON_DT,
TEGRA_SOC_HWPM_MSSCHANNELPARTA2_PERFMON_DT,
TEGRA_SOC_HWPM_MSSCHANNELPARTA3_PERFMON_DT,
TEGRA_SOC_HWPM_MSSCHANNELPARTB0_PERFMON_DT,
TEGRA_SOC_HWPM_MSSCHANNELPARTB1_PERFMON_DT,
TEGRA_SOC_HWPM_MSSCHANNELPARTB2_PERFMON_DT,
TEGRA_SOC_HWPM_MSSCHANNELPARTB3_PERFMON_DT,
TEGRA_SOC_HWPM_MSSCHANNELPARTC0_PERFMON_DT,
TEGRA_SOC_HWPM_MSSCHANNELPARTC1_PERFMON_DT,
TEGRA_SOC_HWPM_MSSCHANNELPARTC2_PERFMON_DT,
TEGRA_SOC_HWPM_MSSCHANNELPARTC3_PERFMON_DT,
TEGRA_SOC_HWPM_MSSCHANNELPARTD0_PERFMON_DT,
TEGRA_SOC_HWPM_MSSCHANNELPARTD1_PERFMON_DT,
TEGRA_SOC_HWPM_MSSCHANNELPARTD2_PERFMON_DT,
TEGRA_SOC_HWPM_MSSCHANNELPARTD3_PERFMON_DT,
TEGRA_SOC_HWPM_MSSHUB0_PERFMON_DT,
TEGRA_SOC_HWPM_MSSHUB1_PERFMON_DT,
TEGRA_SOC_HWPM_MSSMCFCLIENT0_PERFMON_DT,
TEGRA_SOC_HWPM_MSSMCFMEM0_PERFMON_DT,
TEGRA_SOC_HWPM_MSSMCFMEM1_PERFMON_DT,
TEGRA_SOC_HWPM_LAST_PERFMON_DT = TEGRA_SOC_HWPM_MSSMCFMEM1_PERFMON_DT,
/* PMA */
TEGRA_SOC_HWPM_PMA_DT = TEGRA_SOC_HWPM_LAST_PERFMON_DT + 1,
/* RTR */
TEGRA_SOC_HWPM_RTR_DT,
TEGRA_SOC_HWPM_NUM_DT_APERTURES
};
#define IS_PERFMON(idx) (((idx) >= TEGRA_SOC_HWPM_FIRST_PERFMON_DT) && \
((idx) <= TEGRA_SOC_HWPM_LAST_PERFMON_DT))
/* RPG_PM Aperture */
#define PERFMON_BASE(ip_idx) (addr_map_rpg_pm_base_r() + \
((u32)(ip_idx)) * pmmsys_perdomain_offset_v())
#define PERFMON_LIMIT(ip_idx) (PERFMON_BASE((ip_idx) + 1) - 1)
#endif /* TEGRA_SOC_HWPM_HW_H */