blob: 1adc50d38e9d9c216770d86cdf2025425215dd5a [file] [log] [blame]
/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Copyright (c) 2019-2020, The Linux Foundation. All rights reserved.
*/
#ifndef __HFI_IO_COMMON_H__
#define __HFI_IO_COMMON_H__
#include <linux/io.h>
#define VBIF_BASE_OFFS 0x00080000
#define CPU_BASE_OFFS 0x000C0000
#define CPU_CS_BASE_OFFS (CPU_BASE_OFFS + 0x00012000)
#define CPU_IC_BASE_OFFS (CPU_BASE_OFFS + 0x0001F000)
#define CPU_CS_A2HSOFTINT (CPU_CS_BASE_OFFS + 0x18)
#define CPU_CS_A2HSOFTINTCLR (CPU_CS_BASE_OFFS + 0x1C)
#define CPU_CS_VMIMSG (CPU_CS_BASE_OFFS + 0x34)
#define CPU_CS_VMIMSGAG0 (CPU_CS_BASE_OFFS + 0x38)
#define CPU_CS_VMIMSGAG1 (CPU_CS_BASE_OFFS + 0x3C)
#define CPU_CS_SCIACMD (CPU_CS_BASE_OFFS + 0x48)
/* HFI_CTRL_STATUS */
#define CPU_CS_SCIACMDARG0 (CPU_CS_BASE_OFFS + 0x4C)
#define CPU_CS_SCIACMDARG0_HFI_CTRL_ERROR_STATUS_BMSK 0xfe
#define CPU_CS_SCIACMDARG0_HFI_CTRL_PC_READY 0x100
#define CPU_CS_SCIACMDARG0_HFI_CTRL_INIT_IDLE_MSG_BMSK 0x40000000
/* HFI_QTBL_INFO */
#define CPU_CS_SCIACMDARG1 (CPU_CS_BASE_OFFS + 0x50)
/* HFI_QTBL_ADDR */
#define CPU_CS_SCIACMDARG2 (CPU_CS_BASE_OFFS + 0x54)
/* HFI_VERSION_INFO */
#define CPU_CS_SCIACMDARG3 (CPU_CS_BASE_OFFS + 0x58)
/* SFR_ADDR */
#define CPU_CS_SCIBCMD (CPU_CS_BASE_OFFS + 0x5C)
/* MMAP_ADDR */
#define CPU_CS_SCIBCMDARG0 (CPU_CS_BASE_OFFS + 0x60)
/* UC_REGION_ADDR */
#define CPU_CS_SCIBARG1 (CPU_CS_BASE_OFFS + 0x64)
/* UC_REGION_ADDR */
#define CPU_CS_SCIBARG2 (CPU_CS_BASE_OFFS + 0x68)
#define CPU_IC_SOFTINT (CPU_IC_BASE_OFFS + 0x18)
#define CPU_IC_SOFTINT_H2A_SHFT 0xF
/*
* --------------------------------------------------------------------------
* MODULE: wrapper
* --------------------------------------------------------------------------
*/
#define WRAPPER_BASE_OFFS 0x000E0000
#define WRAPPER_INTR_STATUS (WRAPPER_BASE_OFFS + 0x0C)
#define WRAPPER_INTR_STATUS_A2HWD_BMSK 0x10
#define WRAPPER_INTR_STATUS_A2H_BMSK 0x4
#define WRAPPER_INTR_MASK (WRAPPER_BASE_OFFS + 0x10)
#define WRAPPER_INTR_MASK_A2HWD_BMSK 0x10
#define WRAPPER_INTR_MASK_A2HVCODEC_BMSK 0x8
#define WRAPPER_INTR_MASK_A2HCPU_BMSK 0x4
#define WRAPPER_INTR_CLEAR (WRAPPER_BASE_OFFS + 0x14)
#define WRAPPER_CPU_CLOCK_CONFIG (WRAPPER_BASE_OFFS + 0x2000)
#define WRAPPER_CPU_CGC_DIS (WRAPPER_BASE_OFFS + 0x2010)
#define WRAPPER_CPU_STATUS (WRAPPER_BASE_OFFS + 0x2014)
#define CTRL_INIT CPU_CS_SCIACMD
#define CTRL_STATUS CPU_CS_SCIACMDARG0
#define CTRL_ERROR_STATUS__M \
CPU_CS_SCIACMDARG0_HFI_CTRL_ERROR_STATUS_BMSK
#define CTRL_INIT_IDLE_MSG_BMSK \
CPU_CS_SCIACMDARG0_HFI_CTRL_INIT_IDLE_MSG_BMSK
#define CTRL_STATUS_PC_READY \
CPU_CS_SCIACMDARG0_HFI_CTRL_PC_READY
#define QTBL_INFO CPU_CS_SCIACMDARG1
#define QTBL_ADDR CPU_CS_SCIACMDARG2
#define VERSION_INFO CPU_CS_SCIACMDARG3
#define SFR_ADDR CPU_CS_SCIBCMD
#define MMAP_ADDR CPU_CS_SCIBCMDARG0
#define UC_REGION_ADDR CPU_CS_SCIBARG1
#define UC_REGION_SIZE CPU_CS_SCIBARG2
/* HFI_DSP_QTBL_ADDR
* 31:3 - HFI_DSP_QTBL_ADDR
* 4-byte aligned Address
*/
#define HFI_DSP_QTBL_ADDR CPU_CS_VMIMSG
/* HFI_DSP_UC_REGION_ADDR
* 31:20 - HFI_DSP_UC_REGION_ADDR
* 1MB aligned address.
* Uncached Region start Address. This region covers
* HFI DSP QTable,
* HFI DSP Queue Headers,
* HFI DSP Queues,
*/
#define HFI_DSP_UC_REGION_ADDR CPU_CS_VMIMSGAG0
/* HFI_DSP_UC_REGION_SIZE
* 31:20 - HFI_DSP_UC_REGION_SIZE
* Multiples of 1MB.
* Size of the DSP_UC_REGION Uncached Region
*/
#define HFI_DSP_UC_REGION_SIZE CPU_CS_VMIMSGAG1
/*
* --------------------------------------------------------------------------
* MODULE: vcodec noc error log registers
* --------------------------------------------------------------------------
*/
#define VCODEC_CORE0_VIDEO_NOC_BASE_OFFS 0x00004000
#define CVP_NOC_BASE_OFFS 0x0000C000
#define VCODEC_COREX_VIDEO_NOC_ERR_SWID_LOW_OFFS 0x0500
#define VCODEC_COREX_VIDEO_NOC_ERR_SWID_HIGH_OFFS 0x0504
#define VCODEC_COREX_VIDEO_NOC_ERR_MAINCTL_LOW_OFFS 0x0508
#define VCODEC_COREX_VIDEO_NOC_ERR_ERRVLD_LOW_OFFS 0x0510
#define VCODEC_COREX_VIDEO_NOC_ERR_ERRCLR_LOW_OFFS 0x0518
#define VCODEC_COREX_VIDEO_NOC_ERR_ERRLOG0_LOW_OFFS 0x0520
#define VCODEC_COREX_VIDEO_NOC_ERR_ERRLOG0_HIGH_OFFS 0x0524
#define VCODEC_COREX_VIDEO_NOC_ERR_ERRLOG1_LOW_OFFS 0x0528
#define VCODEC_COREX_VIDEO_NOC_ERR_ERRLOG1_HIGH_OFFS 0x052C
#define VCODEC_COREX_VIDEO_NOC_ERR_ERRLOG2_LOW_OFFS 0x0530
#define VCODEC_COREX_VIDEO_NOC_ERR_ERRLOG2_HIGH_OFFS 0x0534
#define VCODEC_COREX_VIDEO_NOC_ERR_ERRLOG3_LOW_OFFS 0x0538
#define VCODEC_COREX_VIDEO_NOC_ERR_ERRLOG3_HIGH_OFFS 0x053C
#endif