blob: 903be7d6fdccd6bad58d1c9d309e15cefe60a001 [file] [log] [blame]
/*
* drivers/amlogic/media/common/vpu/vpu_reg.h
*
* Copyright (C) 2017 Amlogic, Inc. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that 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.
*
*/
#ifndef __VPU_REG_H__
#define __VPU_REG_H__
#include <linux/amlogic/iomap.h>
#include "vpu.h"
/*extern void __iomem *reg_base_aobus;*/
/*extern void __iomem *reg_base_cbus;*/
/* ********************************
* register define
* *********************************
*/
#define AO_RTI_GEN_PWR_SLEEP0 (0x03a << 2)
#define AO_RTI_GEN_PWR_ISO0 (0x03b << 2)
/* HHI bus */
#define HHI_GP1_PLL_CNTL 0x16
#define HHI_GP1_PLL_CNTL2 0x17
#define HHI_GP1_PLL_CNTL3 0x18
#define HHI_GP1_PLL_CNTL4 0x19
#define HHI_MEM_PD_REG0 0x40
#define HHI_VPU_MEM_PD_REG0 0x41
#define HHI_VPU_MEM_PD_REG1 0x42
#define HHI_VPU_MEM_PD_REG2 0x4d
#define HHI_VPU_MEM_PD_REG3 0x4e
#define HHI_VPU_MEM_PD_REG4 0x4c
#define HHI_VPU_MEM_PD_REG3_SM1 0x43
#define HHI_VPU_MEM_PD_REG4_SM1 0x44
#define HHI_VPU_CLKC_CNTL 0x6d
#define HHI_VPU_CLK_CNTL 0x6f
#define HHI_VPU_CLKB_CNTL 0x83
#define HHI_VAPBCLK_CNTL 0x7d
/* cbus */
#define RESET0_REGISTER 0x1101
#define RESET1_REGISTER 0x1102
#define RESET2_REGISTER 0x1103
#define RESET3_REGISTER 0x1104
#define RESET4_REGISTER 0x1105
#define RESET5_REGISTER 0x1106
#define RESET6_REGISTER 0x1107
#define RESET7_REGISTER 0x1108
#define RESET0_MASK 0x1110
#define RESET1_MASK 0x1111
#define RESET2_MASK 0x1112
#define RESET3_MASK 0x1113
#define RESET4_MASK 0x1114
#define RESET5_MASK 0x1115
#define RESET6_MASK 0x1116
#define RESET7_MASK 0x1118
#define RESET0_LEVEL 0x1120
#define RESET1_LEVEL 0x1121
#define RESET2_LEVEL 0x1122
#define RESET3_LEVEL 0x1123
#define RESET4_LEVEL 0x1124
#define RESET5_LEVEL 0x1125
#define RESET6_LEVEL 0x1126
#define RESET7_LEVEL 0x1127
#define RESET0_REGISTER_TXLX 0x0401
#define RESET1_REGISTER_TXLX 0x0402
#define RESET2_REGISTER_TXLX 0x0403
#define RESET3_REGISTER_TXLX 0x0404
#define RESET4_REGISTER_TXLX 0x0405
#define RESET5_REGISTER_TXLX 0x0406
#define RESET6_REGISTER_TXLX 0x0407
#define RESET7_REGISTER_TXLX 0x0408
#define RESET0_MASK_TXLX 0x0410
#define RESET1_MASK_TXLX 0x0411
#define RESET2_MASK_TXLX 0x0412
#define RESET3_MASK_TXLX 0x0413
#define RESET4_MASK_TXLX 0x0414
#define RESET5_MASK_TXLX 0x0415
#define RESET6_MASK_TXLX 0x0416
#define RESET7_MASK_TXLX 0x0418
#define RESET0_LEVEL_TXLX 0x0420
#define RESET1_LEVEL_TXLX 0x0421
#define RESET2_LEVEL_TXLX 0x0422
#define RESET3_LEVEL_TXLX 0x0423
#define RESET4_LEVEL_TXLX 0x0424
#define RESET5_LEVEL_TXLX 0x0425
#define RESET6_LEVEL_TXLX 0x0426
#define RESET7_LEVEL_TXLX 0x0427
/* vpu clk gate */
/* hiu_bus */
#define HHI_GCLK_OTHER 0x54
/* vcbus */
#define VPU_CLK_GATE 0x2723
#define VDIN0_OFFSET 0x00
#define VDIN1_OFFSET 0x80
#define VDIN_COM_GCLK_CTRL 0x121b
#define VDIN_COM_GCLK_CTRL2 0x1270
#define VDIN0_COM_GCLK_CTRL (VDIN0_OFFSET + VDIN_COM_GCLK_CTRL)
#define VDIN0_COM_GCLK_CTRL2 (VDIN0_OFFSET + VDIN_COM_GCLK_CTRL2)
#define VDIN1_COM_GCLK_CTRL (VDIN1_OFFSET + VDIN_COM_GCLK_CTRL)
#define VDIN1_COM_GCLK_CTRL2 (VDIN1_OFFSET + VDIN_COM_GCLK_CTRL2)
#define DI_CLKG_CTRL 0x1718
#define VPP_GCLK_CTRL0 0x1d72
#define VPP_GCLK_CTRL1 0x1d73
#define VPP_SC_GCLK_CTRL 0x1d74
#define VPP_SRSCL_GCLK_CTRL 0x1d77
#define VPP_OSDSR_GCLK_CTRL 0x1d78
#define VPP_XVYCC_GCLK_CTRL 0x1d79
#define DOLBY_TV_CLKGATE_CTRL 0x33f1
#define DOLBY_CORE1_CLKGATE_CTRL 0x33f2
#define DOLBY_CORE2A_CLKGATE_CTRL 0x3432
#define DOLBY_CORE3_CLKGATE_CTRL 0x36f0
#define VPU_RDARB_MODE_L1C1 0x2790
#define VPU_RDARB_MODE_L1C2 0x2799
#define VPU_RDARB_MODE_L2C1 0x279d
#define VPU_WRARB_MODE_L2C1 0x27a2
extern unsigned int vpu_hiu_read(unsigned int _reg);
extern void vpu_hiu_write(unsigned int _reg, unsigned int _value);
extern void vpu_hiu_setb(unsigned int _reg, unsigned int _value,
unsigned int _start, unsigned int _len);
extern unsigned int vpu_hiu_getb(unsigned int _reg,
unsigned int _start, unsigned int _len);
extern void vpu_hiu_set_mask(unsigned int _reg, unsigned int _mask);
extern void vpu_hiu_clr_mask(unsigned int _reg, unsigned int _mask);
extern unsigned int vpu_vcbus_read(unsigned int _reg);
extern void vpu_vcbus_write(unsigned int _reg, unsigned int _value);
extern void vpu_vcbus_setb(unsigned int _reg, unsigned int _value,
unsigned int _start, unsigned int _len);
extern unsigned int vpu_vcbus_getb(unsigned int _reg,
unsigned int _start, unsigned int _len);
extern void vpu_vcbus_set_mask(unsigned int _reg, unsigned int _mask);
extern void vpu_vcbus_clr_mask(unsigned int _reg, unsigned int _mask);
extern unsigned int vpu_ao_read(unsigned int _reg);
extern void vpu_ao_write(unsigned int _reg, unsigned int _value);
extern void vpu_ao_setb(unsigned int _reg, unsigned int _value,
unsigned int _start, unsigned int _len);
extern unsigned int vpu_cbus_read(unsigned int _reg);
extern void vpu_cbus_write(unsigned int _reg, unsigned int _value);
extern void vpu_cbus_setb(unsigned int _reg, unsigned int _value,
unsigned int _start, unsigned int _len);
extern void vpu_cbus_set_mask(unsigned int _reg, unsigned int _mask);
extern void vpu_cbus_clr_mask(unsigned int _reg, unsigned int _mask);
#endif