97 lines
2.8 KiB
C
97 lines
2.8 KiB
C
|
/* Copyright (c) 2012-2013, The Linux Foundation. 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 version 2 and
|
||
|
* only version 2 as published by the Free Software Foundation.
|
||
|
*
|
||
|
* 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 _ARCH_ARM_MACH_KGSL_H
|
||
|
#define _ARCH_ARM_MACH_KGSL_H
|
||
|
|
||
|
/* Clock flags to show which clocks should be controled by a given platform */
|
||
|
#define KGSL_CLK_SRC 0x00000001
|
||
|
#define KGSL_CLK_CORE 0x00000002
|
||
|
#define KGSL_CLK_IFACE 0x00000004
|
||
|
#define KGSL_CLK_MEM 0x00000008
|
||
|
#define KGSL_CLK_MEM_IFACE 0x00000010
|
||
|
#define KGSL_CLK_AXI 0x00000020
|
||
|
#define KGSL_CLK_ALT_MEM_IFACE 0x00000040
|
||
|
|
||
|
#define KGSL_MAX_PWRLEVELS 10
|
||
|
|
||
|
#define KGSL_CONVERT_TO_MBPS(val) \
|
||
|
(val*1000*1000U)
|
||
|
|
||
|
#define KGSL_3D0_REG_MEMORY "kgsl_3d0_reg_memory"
|
||
|
#define KGSL_3D0_SHADER_MEMORY "kgsl_3d0_shader_memory"
|
||
|
#define KGSL_3D0_IRQ "kgsl_3d0_irq"
|
||
|
#define KGSL_2D0_REG_MEMORY "kgsl_2d0_reg_memory"
|
||
|
#define KGSL_2D0_IRQ "kgsl_2d0_irq"
|
||
|
#define KGSL_2D1_REG_MEMORY "kgsl_2d1_reg_memory"
|
||
|
#define KGSL_2D1_IRQ "kgsl_2d1_irq"
|
||
|
|
||
|
#define ADRENO_CHIPID(_co, _ma, _mi, _pa) \
|
||
|
((((_co) & 0xFF) << 24) | \
|
||
|
(((_ma) & 0xFF) << 16) | \
|
||
|
(((_mi) & 0xFF) << 8) | \
|
||
|
((_pa) & 0xFF))
|
||
|
|
||
|
enum kgsl_iommu_context_id {
|
||
|
KGSL_IOMMU_CONTEXT_USER = 0,
|
||
|
KGSL_IOMMU_CONTEXT_PRIV = 1,
|
||
|
};
|
||
|
|
||
|
struct kgsl_iommu_ctx {
|
||
|
const char *iommu_ctx_name;
|
||
|
enum kgsl_iommu_context_id ctx_id;
|
||
|
};
|
||
|
|
||
|
/*
|
||
|
* struct kgsl_device_iommu_data - Struct holding iommu context data obtained
|
||
|
* from dtsi file
|
||
|
* @iommu_ctxs: Pointer to array of struct hoding context name and id
|
||
|
* @iommu_ctx_count: Number of contexts defined in the dtsi file
|
||
|
* @iommu_halt_enable: Indicated if smmu halt h/w feature is supported
|
||
|
* @physstart: Start of iommu registers physical address
|
||
|
* @physend: End of iommu registers physical address
|
||
|
*/
|
||
|
struct kgsl_device_iommu_data {
|
||
|
const struct kgsl_iommu_ctx *iommu_ctxs;
|
||
|
int iommu_ctx_count;
|
||
|
int iommu_halt_enable;
|
||
|
unsigned int physstart;
|
||
|
unsigned int physend;
|
||
|
};
|
||
|
|
||
|
struct kgsl_pwrlevel {
|
||
|
unsigned int gpu_freq;
|
||
|
unsigned int bus_freq;
|
||
|
unsigned int io_fraction;
|
||
|
};
|
||
|
|
||
|
struct kgsl_device_platform_data {
|
||
|
struct kgsl_pwrlevel pwrlevel[KGSL_MAX_PWRLEVELS];
|
||
|
int init_level;
|
||
|
int num_levels;
|
||
|
int (*set_grp_async)(void);
|
||
|
unsigned int idle_timeout;
|
||
|
bool strtstp_sleepwake;
|
||
|
unsigned int clk_map;
|
||
|
unsigned int idle_needed;
|
||
|
unsigned int step_mul;
|
||
|
struct msm_bus_scale_pdata *bus_scale_table;
|
||
|
struct kgsl_device_iommu_data *iommu_data;
|
||
|
int iommu_count;
|
||
|
struct msm_dcvs_core_info *core_info;
|
||
|
struct coresight_device *csdev;
|
||
|
struct coresight_platform_data *coresight_pdata;
|
||
|
unsigned int chipid;
|
||
|
};
|
||
|
|
||
|
#endif
|