95 lines
2.9 KiB
C
95 lines
2.9 KiB
C
/* arch/arm/mach-exynos/cal_bts.h
|
|
*
|
|
* Copyright (c) 2015 Samsung Electronics Co., Ltd.
|
|
* http://www.samsung.com/
|
|
*
|
|
* EXYNOS - BTS CAL code.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
* published by the Free Software Foundation.
|
|
*/
|
|
|
|
#ifndef __BTSCAL_H__
|
|
#define __BTSCAL_H__
|
|
|
|
#include <linux/io.h>
|
|
#include <linux/debugfs.h>
|
|
|
|
/* for BTS Through SYSTEM Register */
|
|
#define EXYNOS8895_PA_CP 0x14A80000
|
|
#define EXYNOS8895_PA_DPU0 0x15010000
|
|
#define EXYNOS8895_PA_DPU1 0x15020000
|
|
#define EXYNOS8895_PA_DPU2 0x15030000
|
|
#define EXYNOS8895_PA_CAM0 0x15040000
|
|
#define EXYNOS8895_PA_CAM1 0x15050000
|
|
#define EXYNOS8895_PA_ISPLP 0x15060000
|
|
#define EXYNOS8895_PA_SRDZ 0x15070000
|
|
#define EXYNOS8895_PA_IVA 0x15080000
|
|
#define EXYNOS8895_PA_DSP 0x15090000
|
|
#define EXYNOS8895_PA_VPU 0x150a0000
|
|
#define EXYNOS8895_PA_MFC0 0x150b0000
|
|
#define EXYNOS8895_PA_MFC1 0x150c0000
|
|
#define EXYNOS8895_PA_G2D0 0x150d0000
|
|
#define EXYNOS8895_PA_G2D1 0x150e0000
|
|
#define EXYNOS8895_PA_G2D2 0x150f0000
|
|
#define EXYNOS8895_PA_FSYS0 0x15100000
|
|
#define EXYNOS8895_PA_PDMA 0x15120000
|
|
#define EXYNOS8895_PA_SPDMA 0x15130000
|
|
#define EXYNOS8895_PA_ABOX 0x15140000
|
|
#define EXYNOS8895_PA_VTS 0x15150000
|
|
#define EXYNOS8895_PA_FSYS1 0x15400000
|
|
#define EXYNOS8895_PA_GNSS 0x15410000
|
|
#define EXYNOS8895_PA_ALIVE 0x15420000
|
|
#define EXYNOS8895_PA_G3D0 0x14A40000
|
|
#define EXYNOS8895_PA_G3D1 0x14A50000
|
|
#define EXYNOS8895_PA_G3D2 0x14A60000
|
|
#define EXYNOS8895_PA_G3D3 0x14A70000
|
|
|
|
#define EXYNOS8895_PA_ACEMUX_SYSREG_CORE 0x15832800
|
|
#define EXYNOS8895_PA_SCI 0x15800000
|
|
#define EXYNOS8895_PA_SCI_IRPS0 0x14a94000
|
|
#define EXYNOS8895_PA_SCI_IRPS1 0x14aa4000
|
|
#define EXYNOS8895_PA_SMC0 0x16030000
|
|
#define EXYNOS8895_PA_SMC1 0x16130000
|
|
#define EXYNOS8895_PA_SMC2 0x16230000
|
|
#define EXYNOS8895_PA_SMC3 0x16330000
|
|
|
|
|
|
#define EXYNOS8895_PA_SN_IRPS0 0x14A92000
|
|
#define EXYNOS8895_PA_SN_IRPS1 0x14AA2000
|
|
#define EXYNOS8895_PA_SN_BUSC_M0 0x15162000
|
|
#define EXYNOS8895_PA_SN_BUSC_M1 0x15172000
|
|
#define EXYNOS8895_PA_SN_BUSC_M2 0x15182000
|
|
#define EXYNOS8895_PA_SN_BUSC_M3 0x15192000
|
|
|
|
#define BTS_MAX_MO 0xffff
|
|
|
|
struct bts_status {
|
|
unsigned int priority;
|
|
bool disable;
|
|
bool bypass_en;
|
|
bool timeout_en;
|
|
unsigned int rmo;
|
|
unsigned int wmo;
|
|
unsigned int full_rmo;
|
|
unsigned int full_wmo;
|
|
unsigned int busy_rmo;
|
|
unsigned int busy_wmo;
|
|
unsigned int max_rmo;
|
|
unsigned int max_wmo;
|
|
unsigned int timeout;
|
|
};
|
|
|
|
void bts_setqos(void __iomem *base, struct bts_status *stat);
|
|
void bts_showqos(void __iomem *base, struct seq_file *buf);
|
|
void bts_trex_init(void __iomem *base);
|
|
void bts_set_qmax(void __iomem *base, unsigned int rmo, unsigned int wmo);
|
|
void bts_set_tq(void __iomem *base, unsigned int tq);
|
|
void bts_set_qbusy(void __iomem *base, unsigned int qbusy);
|
|
void bts_set_qfull(void __iomem *base, unsigned int qfull_low,
|
|
unsigned int qfull_high);
|
|
|
|
|
|
#endif
|