18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
28c2ecf20Sopenharmony_ci/**************************************************************************
38c2ecf20Sopenharmony_ci *
48c2ecf20Sopenharmony_ci * Copyright (c) (2005-2007) Imagination Technologies Limited.
58c2ecf20Sopenharmony_ci * Copyright (c) 2007, Intel Corporation.
68c2ecf20Sopenharmony_ci * All Rights Reserved.
78c2ecf20Sopenharmony_ci *
88c2ecf20Sopenharmony_ci **************************************************************************/
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ci#ifndef _PSB_REG_H_
118c2ecf20Sopenharmony_ci#define _PSB_REG_H_
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ci#define PSB_CR_CLKGATECTL		0x0000
148c2ecf20Sopenharmony_ci#define _PSB_C_CLKGATECTL_AUTO_MAN_REG		(1 << 24)
158c2ecf20Sopenharmony_ci#define _PSB_C_CLKGATECTL_USE_CLKG_SHIFT	(20)
168c2ecf20Sopenharmony_ci#define _PSB_C_CLKGATECTL_USE_CLKG_MASK		(0x3 << 20)
178c2ecf20Sopenharmony_ci#define _PSB_C_CLKGATECTL_DPM_CLKG_SHIFT	(16)
188c2ecf20Sopenharmony_ci#define _PSB_C_CLKGATECTL_DPM_CLKG_MASK		(0x3 << 16)
198c2ecf20Sopenharmony_ci#define _PSB_C_CLKGATECTL_TA_CLKG_SHIFT		(12)
208c2ecf20Sopenharmony_ci#define _PSB_C_CLKGATECTL_TA_CLKG_MASK		(0x3 << 12)
218c2ecf20Sopenharmony_ci#define _PSB_C_CLKGATECTL_TSP_CLKG_SHIFT	(8)
228c2ecf20Sopenharmony_ci#define _PSB_C_CLKGATECTL_TSP_CLKG_MASK		(0x3 << 8)
238c2ecf20Sopenharmony_ci#define _PSB_C_CLKGATECTL_ISP_CLKG_SHIFT	(4)
248c2ecf20Sopenharmony_ci#define _PSB_C_CLKGATECTL_ISP_CLKG_MASK		(0x3 << 4)
258c2ecf20Sopenharmony_ci#define _PSB_C_CLKGATECTL_2D_CLKG_SHIFT		(0)
268c2ecf20Sopenharmony_ci#define _PSB_C_CLKGATECTL_2D_CLKG_MASK		(0x3 << 0)
278c2ecf20Sopenharmony_ci#define _PSB_C_CLKGATECTL_CLKG_ENABLED		(0)
288c2ecf20Sopenharmony_ci#define _PSB_C_CLKGATECTL_CLKG_DISABLED		(1)
298c2ecf20Sopenharmony_ci#define _PSB_C_CLKGATECTL_CLKG_AUTO		(2)
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci#define PSB_CR_CORE_ID			0x0010
328c2ecf20Sopenharmony_ci#define _PSB_CC_ID_ID_SHIFT			(16)
338c2ecf20Sopenharmony_ci#define _PSB_CC_ID_ID_MASK			(0xFFFF << 16)
348c2ecf20Sopenharmony_ci#define _PSB_CC_ID_CONFIG_SHIFT			(0)
358c2ecf20Sopenharmony_ci#define _PSB_CC_ID_CONFIG_MASK			(0xFFFF << 0)
368c2ecf20Sopenharmony_ci
378c2ecf20Sopenharmony_ci#define PSB_CR_CORE_REVISION		0x0014
388c2ecf20Sopenharmony_ci#define _PSB_CC_REVISION_DESIGNER_SHIFT		(24)
398c2ecf20Sopenharmony_ci#define _PSB_CC_REVISION_DESIGNER_MASK		(0xFF << 24)
408c2ecf20Sopenharmony_ci#define _PSB_CC_REVISION_MAJOR_SHIFT		(16)
418c2ecf20Sopenharmony_ci#define _PSB_CC_REVISION_MAJOR_MASK		(0xFF << 16)
428c2ecf20Sopenharmony_ci#define _PSB_CC_REVISION_MINOR_SHIFT		(8)
438c2ecf20Sopenharmony_ci#define _PSB_CC_REVISION_MINOR_MASK		(0xFF << 8)
448c2ecf20Sopenharmony_ci#define _PSB_CC_REVISION_MAINTENANCE_SHIFT	(0)
458c2ecf20Sopenharmony_ci#define _PSB_CC_REVISION_MAINTENANCE_MASK	(0xFF << 0)
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ci#define PSB_CR_DESIGNER_REV_FIELD1	0x0018
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_ci#define PSB_CR_SOFT_RESET		0x0080
508c2ecf20Sopenharmony_ci#define _PSB_CS_RESET_TSP_RESET		(1 << 6)
518c2ecf20Sopenharmony_ci#define _PSB_CS_RESET_ISP_RESET		(1 << 5)
528c2ecf20Sopenharmony_ci#define _PSB_CS_RESET_USE_RESET		(1 << 4)
538c2ecf20Sopenharmony_ci#define _PSB_CS_RESET_TA_RESET		(1 << 3)
548c2ecf20Sopenharmony_ci#define _PSB_CS_RESET_DPM_RESET		(1 << 2)
558c2ecf20Sopenharmony_ci#define _PSB_CS_RESET_TWOD_RESET	(1 << 1)
568c2ecf20Sopenharmony_ci#define _PSB_CS_RESET_BIF_RESET			(1 << 0)
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_ci#define PSB_CR_DESIGNER_REV_FIELD2	0x001C
598c2ecf20Sopenharmony_ci
608c2ecf20Sopenharmony_ci#define PSB_CR_EVENT_HOST_ENABLE2	0x0110
618c2ecf20Sopenharmony_ci
628c2ecf20Sopenharmony_ci#define PSB_CR_EVENT_STATUS2		0x0118
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ci#define PSB_CR_EVENT_HOST_CLEAR2	0x0114
658c2ecf20Sopenharmony_ci#define _PSB_CE2_BIF_REQUESTER_FAULT		(1 << 4)
668c2ecf20Sopenharmony_ci
678c2ecf20Sopenharmony_ci#define PSB_CR_EVENT_STATUS		0x012C
688c2ecf20Sopenharmony_ci
698c2ecf20Sopenharmony_ci#define PSB_CR_EVENT_HOST_ENABLE	0x0130
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ci#define PSB_CR_EVENT_HOST_CLEAR		0x0134
728c2ecf20Sopenharmony_ci#define _PSB_CE_MASTER_INTERRUPT		(1 << 31)
738c2ecf20Sopenharmony_ci#define _PSB_CE_TA_DPM_FAULT			(1 << 28)
748c2ecf20Sopenharmony_ci#define _PSB_CE_TWOD_COMPLETE			(1 << 27)
758c2ecf20Sopenharmony_ci#define _PSB_CE_DPM_OUT_OF_MEMORY_ZLS		(1 << 25)
768c2ecf20Sopenharmony_ci#define _PSB_CE_DPM_TA_MEM_FREE			(1 << 24)
778c2ecf20Sopenharmony_ci#define _PSB_CE_PIXELBE_END_RENDER		(1 << 18)
788c2ecf20Sopenharmony_ci#define _PSB_CE_SW_EVENT			(1 << 14)
798c2ecf20Sopenharmony_ci#define _PSB_CE_TA_FINISHED			(1 << 13)
808c2ecf20Sopenharmony_ci#define _PSB_CE_TA_TERMINATE			(1 << 12)
818c2ecf20Sopenharmony_ci#define _PSB_CE_DPM_REACHED_MEM_THRESH		(1 << 3)
828c2ecf20Sopenharmony_ci#define _PSB_CE_DPM_OUT_OF_MEMORY_GBL		(1 << 2)
838c2ecf20Sopenharmony_ci#define _PSB_CE_DPM_OUT_OF_MEMORY_MT		(1 << 1)
848c2ecf20Sopenharmony_ci#define _PSB_CE_DPM_3D_MEM_FREE			(1 << 0)
858c2ecf20Sopenharmony_ci
868c2ecf20Sopenharmony_ci
878c2ecf20Sopenharmony_ci#define PSB_USE_OFFSET_MASK		0x0007FFFF
888c2ecf20Sopenharmony_ci#define PSB_USE_OFFSET_SIZE		(PSB_USE_OFFSET_MASK + 1)
898c2ecf20Sopenharmony_ci#define PSB_CR_USE_CODE_BASE0		0x0A0C
908c2ecf20Sopenharmony_ci#define PSB_CR_USE_CODE_BASE1		0x0A10
918c2ecf20Sopenharmony_ci#define PSB_CR_USE_CODE_BASE2		0x0A14
928c2ecf20Sopenharmony_ci#define PSB_CR_USE_CODE_BASE3		0x0A18
938c2ecf20Sopenharmony_ci#define PSB_CR_USE_CODE_BASE4		0x0A1C
948c2ecf20Sopenharmony_ci#define PSB_CR_USE_CODE_BASE5		0x0A20
958c2ecf20Sopenharmony_ci#define PSB_CR_USE_CODE_BASE6		0x0A24
968c2ecf20Sopenharmony_ci#define PSB_CR_USE_CODE_BASE7		0x0A28
978c2ecf20Sopenharmony_ci#define PSB_CR_USE_CODE_BASE8		0x0A2C
988c2ecf20Sopenharmony_ci#define PSB_CR_USE_CODE_BASE9		0x0A30
998c2ecf20Sopenharmony_ci#define PSB_CR_USE_CODE_BASE10		0x0A34
1008c2ecf20Sopenharmony_ci#define PSB_CR_USE_CODE_BASE11		0x0A38
1018c2ecf20Sopenharmony_ci#define PSB_CR_USE_CODE_BASE12		0x0A3C
1028c2ecf20Sopenharmony_ci#define PSB_CR_USE_CODE_BASE13		0x0A40
1038c2ecf20Sopenharmony_ci#define PSB_CR_USE_CODE_BASE14		0x0A44
1048c2ecf20Sopenharmony_ci#define PSB_CR_USE_CODE_BASE15		0x0A48
1058c2ecf20Sopenharmony_ci#define PSB_CR_USE_CODE_BASE(_i)	(0x0A0C + ((_i) << 2))
1068c2ecf20Sopenharmony_ci#define _PSB_CUC_BASE_DM_SHIFT			(25)
1078c2ecf20Sopenharmony_ci#define _PSB_CUC_BASE_DM_MASK			(0x3 << 25)
1088c2ecf20Sopenharmony_ci#define _PSB_CUC_BASE_ADDR_SHIFT		(0)	/* 1024-bit aligned address? */
1098c2ecf20Sopenharmony_ci#define _PSB_CUC_BASE_ADDR_ALIGNSHIFT		(7)
1108c2ecf20Sopenharmony_ci#define _PSB_CUC_BASE_ADDR_MASK			(0x1FFFFFF << 0)
1118c2ecf20Sopenharmony_ci#define _PSB_CUC_DM_VERTEX			(0)
1128c2ecf20Sopenharmony_ci#define _PSB_CUC_DM_PIXEL			(1)
1138c2ecf20Sopenharmony_ci#define _PSB_CUC_DM_RESERVED			(2)
1148c2ecf20Sopenharmony_ci#define _PSB_CUC_DM_EDM				(3)
1158c2ecf20Sopenharmony_ci
1168c2ecf20Sopenharmony_ci#define PSB_CR_PDS_EXEC_BASE		0x0AB8
1178c2ecf20Sopenharmony_ci#define _PSB_CR_PDS_EXEC_BASE_ADDR_SHIFT	(20)	/* 1MB aligned address */
1188c2ecf20Sopenharmony_ci#define _PSB_CR_PDS_EXEC_BASE_ADDR_ALIGNSHIFT	(20)
1198c2ecf20Sopenharmony_ci
1208c2ecf20Sopenharmony_ci#define PSB_CR_EVENT_KICKER		0x0AC4
1218c2ecf20Sopenharmony_ci#define _PSB_CE_KICKER_ADDRESS_SHIFT		(4)	/* 128-bit aligned address */
1228c2ecf20Sopenharmony_ci
1238c2ecf20Sopenharmony_ci#define PSB_CR_EVENT_KICK		0x0AC8
1248c2ecf20Sopenharmony_ci#define _PSB_CE_KICK_NOW			(1 << 0)
1258c2ecf20Sopenharmony_ci
1268c2ecf20Sopenharmony_ci#define PSB_CR_BIF_DIR_LIST_BASE1	0x0C38
1278c2ecf20Sopenharmony_ci
1288c2ecf20Sopenharmony_ci#define PSB_CR_BIF_CTRL			0x0C00
1298c2ecf20Sopenharmony_ci#define _PSB_CB_CTRL_CLEAR_FAULT		(1 << 4)
1308c2ecf20Sopenharmony_ci#define _PSB_CB_CTRL_INVALDC			(1 << 3)
1318c2ecf20Sopenharmony_ci#define _PSB_CB_CTRL_FLUSH			(1 << 2)
1328c2ecf20Sopenharmony_ci
1338c2ecf20Sopenharmony_ci#define PSB_CR_BIF_INT_STAT		0x0C04
1348c2ecf20Sopenharmony_ci
1358c2ecf20Sopenharmony_ci#define PSB_CR_BIF_FAULT		0x0C08
1368c2ecf20Sopenharmony_ci#define _PSB_CBI_STAT_PF_N_RW			(1 << 14)
1378c2ecf20Sopenharmony_ci#define _PSB_CBI_STAT_FAULT_SHIFT		(0)
1388c2ecf20Sopenharmony_ci#define _PSB_CBI_STAT_FAULT_MASK		(0x3FFF << 0)
1398c2ecf20Sopenharmony_ci#define _PSB_CBI_STAT_FAULT_CACHE		(1 << 1)
1408c2ecf20Sopenharmony_ci#define _PSB_CBI_STAT_FAULT_TA			(1 << 2)
1418c2ecf20Sopenharmony_ci#define _PSB_CBI_STAT_FAULT_VDM			(1 << 3)
1428c2ecf20Sopenharmony_ci#define _PSB_CBI_STAT_FAULT_2D			(1 << 4)
1438c2ecf20Sopenharmony_ci#define _PSB_CBI_STAT_FAULT_PBE			(1 << 5)
1448c2ecf20Sopenharmony_ci#define _PSB_CBI_STAT_FAULT_TSP			(1 << 6)
1458c2ecf20Sopenharmony_ci#define _PSB_CBI_STAT_FAULT_ISP			(1 << 7)
1468c2ecf20Sopenharmony_ci#define _PSB_CBI_STAT_FAULT_USSEPDS		(1 << 8)
1478c2ecf20Sopenharmony_ci#define _PSB_CBI_STAT_FAULT_HOST		(1 << 9)
1488c2ecf20Sopenharmony_ci
1498c2ecf20Sopenharmony_ci#define PSB_CR_BIF_BANK0		0x0C78
1508c2ecf20Sopenharmony_ci#define PSB_CR_BIF_BANK1		0x0C7C
1518c2ecf20Sopenharmony_ci#define PSB_CR_BIF_DIR_LIST_BASE0	0x0C84
1528c2ecf20Sopenharmony_ci#define PSB_CR_BIF_TWOD_REQ_BASE	0x0C88
1538c2ecf20Sopenharmony_ci#define PSB_CR_BIF_3D_REQ_BASE		0x0CAC
1548c2ecf20Sopenharmony_ci
1558c2ecf20Sopenharmony_ci#define PSB_CR_2D_SOCIF			0x0E18
1568c2ecf20Sopenharmony_ci#define _PSB_C2_SOCIF_FREESPACE_SHIFT		(0)
1578c2ecf20Sopenharmony_ci#define _PSB_C2_SOCIF_FREESPACE_MASK		(0xFF << 0)
1588c2ecf20Sopenharmony_ci#define _PSB_C2_SOCIF_EMPTY			(0x80 << 0)
1598c2ecf20Sopenharmony_ci
1608c2ecf20Sopenharmony_ci#define PSB_CR_2D_BLIT_STATUS		0x0E04
1618c2ecf20Sopenharmony_ci#define _PSB_C2B_STATUS_BUSY			(1 << 24)
1628c2ecf20Sopenharmony_ci#define _PSB_C2B_STATUS_COMPLETE_SHIFT		(0)
1638c2ecf20Sopenharmony_ci#define _PSB_C2B_STATUS_COMPLETE_MASK		(0xFFFFFF << 0)
1648c2ecf20Sopenharmony_ci
1658c2ecf20Sopenharmony_ci/*
1668c2ecf20Sopenharmony_ci * 2D defs.
1678c2ecf20Sopenharmony_ci */
1688c2ecf20Sopenharmony_ci
1698c2ecf20Sopenharmony_ci/*
1708c2ecf20Sopenharmony_ci * 2D Slave Port Data : Block Header's Object Type
1718c2ecf20Sopenharmony_ci */
1728c2ecf20Sopenharmony_ci
1738c2ecf20Sopenharmony_ci#define	PSB_2D_CLIP_BH			(0x00000000)
1748c2ecf20Sopenharmony_ci#define	PSB_2D_PAT_BH			(0x10000000)
1758c2ecf20Sopenharmony_ci#define	PSB_2D_CTRL_BH			(0x20000000)
1768c2ecf20Sopenharmony_ci#define	PSB_2D_SRC_OFF_BH		(0x30000000)
1778c2ecf20Sopenharmony_ci#define	PSB_2D_MASK_OFF_BH		(0x40000000)
1788c2ecf20Sopenharmony_ci#define	PSB_2D_RESERVED1_BH		(0x50000000)
1798c2ecf20Sopenharmony_ci#define	PSB_2D_RESERVED2_BH		(0x60000000)
1808c2ecf20Sopenharmony_ci#define	PSB_2D_FENCE_BH			(0x70000000)
1818c2ecf20Sopenharmony_ci#define	PSB_2D_BLIT_BH			(0x80000000)
1828c2ecf20Sopenharmony_ci#define	PSB_2D_SRC_SURF_BH		(0x90000000)
1838c2ecf20Sopenharmony_ci#define	PSB_2D_DST_SURF_BH		(0xA0000000)
1848c2ecf20Sopenharmony_ci#define	PSB_2D_PAT_SURF_BH		(0xB0000000)
1858c2ecf20Sopenharmony_ci#define	PSB_2D_SRC_PAL_BH		(0xC0000000)
1868c2ecf20Sopenharmony_ci#define	PSB_2D_PAT_PAL_BH		(0xD0000000)
1878c2ecf20Sopenharmony_ci#define	PSB_2D_MASK_SURF_BH		(0xE0000000)
1888c2ecf20Sopenharmony_ci#define	PSB_2D_FLUSH_BH			(0xF0000000)
1898c2ecf20Sopenharmony_ci
1908c2ecf20Sopenharmony_ci/*
1918c2ecf20Sopenharmony_ci * Clip Definition block (PSB_2D_CLIP_BH)
1928c2ecf20Sopenharmony_ci */
1938c2ecf20Sopenharmony_ci#define PSB_2D_CLIPCOUNT_MAX		(1)
1948c2ecf20Sopenharmony_ci#define PSB_2D_CLIPCOUNT_MASK		(0x00000000)
1958c2ecf20Sopenharmony_ci#define PSB_2D_CLIPCOUNT_CLRMASK	(0xFFFFFFFF)
1968c2ecf20Sopenharmony_ci#define PSB_2D_CLIPCOUNT_SHIFT		(0)
1978c2ecf20Sopenharmony_ci/* clip rectangle min & max */
1988c2ecf20Sopenharmony_ci#define PSB_2D_CLIP_XMAX_MASK		(0x00FFF000)
1998c2ecf20Sopenharmony_ci#define PSB_2D_CLIP_XMAX_CLRMASK	(0xFF000FFF)
2008c2ecf20Sopenharmony_ci#define PSB_2D_CLIP_XMAX_SHIFT		(12)
2018c2ecf20Sopenharmony_ci#define PSB_2D_CLIP_XMIN_MASK		(0x00000FFF)
2028c2ecf20Sopenharmony_ci#define PSB_2D_CLIP_XMIN_CLRMASK	(0x00FFF000)
2038c2ecf20Sopenharmony_ci#define PSB_2D_CLIP_XMIN_SHIFT		(0)
2048c2ecf20Sopenharmony_ci/* clip rectangle offset */
2058c2ecf20Sopenharmony_ci#define PSB_2D_CLIP_YMAX_MASK		(0x00FFF000)
2068c2ecf20Sopenharmony_ci#define PSB_2D_CLIP_YMAX_CLRMASK	(0xFF000FFF)
2078c2ecf20Sopenharmony_ci#define PSB_2D_CLIP_YMAX_SHIFT		(12)
2088c2ecf20Sopenharmony_ci#define PSB_2D_CLIP_YMIN_MASK		(0x00000FFF)
2098c2ecf20Sopenharmony_ci#define PSB_2D_CLIP_YMIN_CLRMASK	(0x00FFF000)
2108c2ecf20Sopenharmony_ci#define PSB_2D_CLIP_YMIN_SHIFT		(0)
2118c2ecf20Sopenharmony_ci
2128c2ecf20Sopenharmony_ci/*
2138c2ecf20Sopenharmony_ci * Pattern Control (PSB_2D_PAT_BH)
2148c2ecf20Sopenharmony_ci */
2158c2ecf20Sopenharmony_ci#define PSB_2D_PAT_HEIGHT_MASK		(0x0000001F)
2168c2ecf20Sopenharmony_ci#define PSB_2D_PAT_HEIGHT_SHIFT		(0)
2178c2ecf20Sopenharmony_ci#define PSB_2D_PAT_WIDTH_MASK		(0x000003E0)
2188c2ecf20Sopenharmony_ci#define PSB_2D_PAT_WIDTH_SHIFT		(5)
2198c2ecf20Sopenharmony_ci#define PSB_2D_PAT_YSTART_MASK		(0x00007C00)
2208c2ecf20Sopenharmony_ci#define PSB_2D_PAT_YSTART_SHIFT		(10)
2218c2ecf20Sopenharmony_ci#define PSB_2D_PAT_XSTART_MASK		(0x000F8000)
2228c2ecf20Sopenharmony_ci#define PSB_2D_PAT_XSTART_SHIFT		(15)
2238c2ecf20Sopenharmony_ci
2248c2ecf20Sopenharmony_ci/*
2258c2ecf20Sopenharmony_ci * 2D Control block (PSB_2D_CTRL_BH)
2268c2ecf20Sopenharmony_ci */
2278c2ecf20Sopenharmony_ci/* Present Flags */
2288c2ecf20Sopenharmony_ci#define PSB_2D_SRCCK_CTRL		(0x00000001)
2298c2ecf20Sopenharmony_ci#define PSB_2D_DSTCK_CTRL		(0x00000002)
2308c2ecf20Sopenharmony_ci#define PSB_2D_ALPHA_CTRL		(0x00000004)
2318c2ecf20Sopenharmony_ci/* Colour Key Colour (SRC/DST)*/
2328c2ecf20Sopenharmony_ci#define PSB_2D_CK_COL_MASK		(0xFFFFFFFF)
2338c2ecf20Sopenharmony_ci#define PSB_2D_CK_COL_CLRMASK		(0x00000000)
2348c2ecf20Sopenharmony_ci#define PSB_2D_CK_COL_SHIFT		(0)
2358c2ecf20Sopenharmony_ci/* Colour Key Mask (SRC/DST)*/
2368c2ecf20Sopenharmony_ci#define PSB_2D_CK_MASK_MASK		(0xFFFFFFFF)
2378c2ecf20Sopenharmony_ci#define PSB_2D_CK_MASK_CLRMASK		(0x00000000)
2388c2ecf20Sopenharmony_ci#define PSB_2D_CK_MASK_SHIFT		(0)
2398c2ecf20Sopenharmony_ci/* Alpha Control (Alpha/RGB)*/
2408c2ecf20Sopenharmony_ci#define PSB_2D_GBLALPHA_MASK		(0x000FF000)
2418c2ecf20Sopenharmony_ci#define PSB_2D_GBLALPHA_CLRMASK		(0xFFF00FFF)
2428c2ecf20Sopenharmony_ci#define PSB_2D_GBLALPHA_SHIFT		(12)
2438c2ecf20Sopenharmony_ci#define PSB_2D_SRCALPHA_OP_MASK		(0x00700000)
2448c2ecf20Sopenharmony_ci#define PSB_2D_SRCALPHA_OP_CLRMASK	(0xFF8FFFFF)
2458c2ecf20Sopenharmony_ci#define PSB_2D_SRCALPHA_OP_SHIFT	(20)
2468c2ecf20Sopenharmony_ci#define PSB_2D_SRCALPHA_OP_ONE		(0x00000000)
2478c2ecf20Sopenharmony_ci#define PSB_2D_SRCALPHA_OP_SRC		(0x00100000)
2488c2ecf20Sopenharmony_ci#define PSB_2D_SRCALPHA_OP_DST		(0x00200000)
2498c2ecf20Sopenharmony_ci#define PSB_2D_SRCALPHA_OP_SG		(0x00300000)
2508c2ecf20Sopenharmony_ci#define PSB_2D_SRCALPHA_OP_DG		(0x00400000)
2518c2ecf20Sopenharmony_ci#define PSB_2D_SRCALPHA_OP_GBL		(0x00500000)
2528c2ecf20Sopenharmony_ci#define PSB_2D_SRCALPHA_OP_ZERO		(0x00600000)
2538c2ecf20Sopenharmony_ci#define PSB_2D_SRCALPHA_INVERT		(0x00800000)
2548c2ecf20Sopenharmony_ci#define PSB_2D_SRCALPHA_INVERT_CLR	(0xFF7FFFFF)
2558c2ecf20Sopenharmony_ci#define PSB_2D_DSTALPHA_OP_MASK		(0x07000000)
2568c2ecf20Sopenharmony_ci#define PSB_2D_DSTALPHA_OP_CLRMASK	(0xF8FFFFFF)
2578c2ecf20Sopenharmony_ci#define PSB_2D_DSTALPHA_OP_SHIFT	(24)
2588c2ecf20Sopenharmony_ci#define PSB_2D_DSTALPHA_OP_ONE		(0x00000000)
2598c2ecf20Sopenharmony_ci#define PSB_2D_DSTALPHA_OP_SRC		(0x01000000)
2608c2ecf20Sopenharmony_ci#define PSB_2D_DSTALPHA_OP_DST		(0x02000000)
2618c2ecf20Sopenharmony_ci#define PSB_2D_DSTALPHA_OP_SG		(0x03000000)
2628c2ecf20Sopenharmony_ci#define PSB_2D_DSTALPHA_OP_DG		(0x04000000)
2638c2ecf20Sopenharmony_ci#define PSB_2D_DSTALPHA_OP_GBL		(0x05000000)
2648c2ecf20Sopenharmony_ci#define PSB_2D_DSTALPHA_OP_ZERO		(0x06000000)
2658c2ecf20Sopenharmony_ci#define PSB_2D_DSTALPHA_INVERT		(0x08000000)
2668c2ecf20Sopenharmony_ci#define PSB_2D_DSTALPHA_INVERT_CLR	(0xF7FFFFFF)
2678c2ecf20Sopenharmony_ci
2688c2ecf20Sopenharmony_ci#define PSB_2D_PRE_MULTIPLICATION_ENABLE	(0x10000000)
2698c2ecf20Sopenharmony_ci#define PSB_2D_PRE_MULTIPLICATION_CLRMASK	(0xEFFFFFFF)
2708c2ecf20Sopenharmony_ci#define PSB_2D_ZERO_SOURCE_ALPHA_ENABLE		(0x20000000)
2718c2ecf20Sopenharmony_ci#define PSB_2D_ZERO_SOURCE_ALPHA_CLRMASK	(0xDFFFFFFF)
2728c2ecf20Sopenharmony_ci
2738c2ecf20Sopenharmony_ci/*
2748c2ecf20Sopenharmony_ci *Source Offset (PSB_2D_SRC_OFF_BH)
2758c2ecf20Sopenharmony_ci */
2768c2ecf20Sopenharmony_ci#define PSB_2D_SRCOFF_XSTART_MASK	((0x00000FFF) << 12)
2778c2ecf20Sopenharmony_ci#define PSB_2D_SRCOFF_XSTART_SHIFT	(12)
2788c2ecf20Sopenharmony_ci#define PSB_2D_SRCOFF_YSTART_MASK	(0x00000FFF)
2798c2ecf20Sopenharmony_ci#define PSB_2D_SRCOFF_YSTART_SHIFT	(0)
2808c2ecf20Sopenharmony_ci
2818c2ecf20Sopenharmony_ci/*
2828c2ecf20Sopenharmony_ci * Mask Offset (PSB_2D_MASK_OFF_BH)
2838c2ecf20Sopenharmony_ci */
2848c2ecf20Sopenharmony_ci#define PSB_2D_MASKOFF_XSTART_MASK	((0x00000FFF) << 12)
2858c2ecf20Sopenharmony_ci#define PSB_2D_MASKOFF_XSTART_SHIFT	(12)
2868c2ecf20Sopenharmony_ci#define PSB_2D_MASKOFF_YSTART_MASK	(0x00000FFF)
2878c2ecf20Sopenharmony_ci#define PSB_2D_MASKOFF_YSTART_SHIFT	(0)
2888c2ecf20Sopenharmony_ci
2898c2ecf20Sopenharmony_ci/*
2908c2ecf20Sopenharmony_ci * 2D Fence (see PSB_2D_FENCE_BH): bits 0:27 are ignored
2918c2ecf20Sopenharmony_ci */
2928c2ecf20Sopenharmony_ci
2938c2ecf20Sopenharmony_ci/*
2948c2ecf20Sopenharmony_ci *Blit Rectangle (PSB_2D_BLIT_BH)
2958c2ecf20Sopenharmony_ci */
2968c2ecf20Sopenharmony_ci
2978c2ecf20Sopenharmony_ci#define PSB_2D_ROT_MASK			(3 << 25)
2988c2ecf20Sopenharmony_ci#define PSB_2D_ROT_CLRMASK		(~PSB_2D_ROT_MASK)
2998c2ecf20Sopenharmony_ci#define PSB_2D_ROT_NONE			(0 << 25)
3008c2ecf20Sopenharmony_ci#define PSB_2D_ROT_90DEGS		(1 << 25)
3018c2ecf20Sopenharmony_ci#define PSB_2D_ROT_180DEGS		(2 << 25)
3028c2ecf20Sopenharmony_ci#define PSB_2D_ROT_270DEGS		(3 << 25)
3038c2ecf20Sopenharmony_ci
3048c2ecf20Sopenharmony_ci#define PSB_2D_COPYORDER_MASK		(3 << 23)
3058c2ecf20Sopenharmony_ci#define PSB_2D_COPYORDER_CLRMASK	(~PSB_2D_COPYORDER_MASK)
3068c2ecf20Sopenharmony_ci#define PSB_2D_COPYORDER_TL2BR		(0 << 23)
3078c2ecf20Sopenharmony_ci#define PSB_2D_COPYORDER_BR2TL		(1 << 23)
3088c2ecf20Sopenharmony_ci#define PSB_2D_COPYORDER_TR2BL		(2 << 23)
3098c2ecf20Sopenharmony_ci#define PSB_2D_COPYORDER_BL2TR		(3 << 23)
3108c2ecf20Sopenharmony_ci
3118c2ecf20Sopenharmony_ci#define PSB_2D_DSTCK_CLRMASK		(0xFF9FFFFF)
3128c2ecf20Sopenharmony_ci#define PSB_2D_DSTCK_DISABLE		(0x00000000)
3138c2ecf20Sopenharmony_ci#define PSB_2D_DSTCK_PASS		(0x00200000)
3148c2ecf20Sopenharmony_ci#define PSB_2D_DSTCK_REJECT		(0x00400000)
3158c2ecf20Sopenharmony_ci
3168c2ecf20Sopenharmony_ci#define PSB_2D_SRCCK_CLRMASK		(0xFFE7FFFF)
3178c2ecf20Sopenharmony_ci#define PSB_2D_SRCCK_DISABLE		(0x00000000)
3188c2ecf20Sopenharmony_ci#define PSB_2D_SRCCK_PASS		(0x00080000)
3198c2ecf20Sopenharmony_ci#define PSB_2D_SRCCK_REJECT		(0x00100000)
3208c2ecf20Sopenharmony_ci
3218c2ecf20Sopenharmony_ci#define PSB_2D_CLIP_ENABLE		(0x00040000)
3228c2ecf20Sopenharmony_ci
3238c2ecf20Sopenharmony_ci#define PSB_2D_ALPHA_ENABLE		(0x00020000)
3248c2ecf20Sopenharmony_ci
3258c2ecf20Sopenharmony_ci#define PSB_2D_PAT_CLRMASK		(0xFFFEFFFF)
3268c2ecf20Sopenharmony_ci#define PSB_2D_PAT_MASK			(0x00010000)
3278c2ecf20Sopenharmony_ci#define PSB_2D_USE_PAT			(0x00010000)
3288c2ecf20Sopenharmony_ci#define PSB_2D_USE_FILL			(0x00000000)
3298c2ecf20Sopenharmony_ci/*
3308c2ecf20Sopenharmony_ci * Tungsten Graphics note on rop codes: If rop A and rop B are
3318c2ecf20Sopenharmony_ci * identical, the mask surface will not be read and need not be
3328c2ecf20Sopenharmony_ci * set up.
3338c2ecf20Sopenharmony_ci */
3348c2ecf20Sopenharmony_ci
3358c2ecf20Sopenharmony_ci#define PSB_2D_ROP3B_MASK		(0x0000FF00)
3368c2ecf20Sopenharmony_ci#define PSB_2D_ROP3B_CLRMASK		(0xFFFF00FF)
3378c2ecf20Sopenharmony_ci#define PSB_2D_ROP3B_SHIFT		(8)
3388c2ecf20Sopenharmony_ci/* rop code A */
3398c2ecf20Sopenharmony_ci#define PSB_2D_ROP3A_MASK		(0x000000FF)
3408c2ecf20Sopenharmony_ci#define PSB_2D_ROP3A_CLRMASK		(0xFFFFFF00)
3418c2ecf20Sopenharmony_ci#define PSB_2D_ROP3A_SHIFT		(0)
3428c2ecf20Sopenharmony_ci
3438c2ecf20Sopenharmony_ci#define PSB_2D_ROP4_MASK		(0x0000FFFF)
3448c2ecf20Sopenharmony_ci/*
3458c2ecf20Sopenharmony_ci *	DWORD0:	(Only pass if Pattern control == Use Fill Colour)
3468c2ecf20Sopenharmony_ci *	Fill Colour RGBA8888
3478c2ecf20Sopenharmony_ci */
3488c2ecf20Sopenharmony_ci#define PSB_2D_FILLCOLOUR_MASK		(0xFFFFFFFF)
3498c2ecf20Sopenharmony_ci#define PSB_2D_FILLCOLOUR_SHIFT		(0)
3508c2ecf20Sopenharmony_ci/*
3518c2ecf20Sopenharmony_ci *	DWORD1: (Always Present)
3528c2ecf20Sopenharmony_ci *	X Start (Dest)
3538c2ecf20Sopenharmony_ci *	Y Start (Dest)
3548c2ecf20Sopenharmony_ci */
3558c2ecf20Sopenharmony_ci#define PSB_2D_DST_XSTART_MASK		(0x00FFF000)
3568c2ecf20Sopenharmony_ci#define PSB_2D_DST_XSTART_CLRMASK	(0xFF000FFF)
3578c2ecf20Sopenharmony_ci#define PSB_2D_DST_XSTART_SHIFT		(12)
3588c2ecf20Sopenharmony_ci#define PSB_2D_DST_YSTART_MASK		(0x00000FFF)
3598c2ecf20Sopenharmony_ci#define PSB_2D_DST_YSTART_CLRMASK	(0xFFFFF000)
3608c2ecf20Sopenharmony_ci#define PSB_2D_DST_YSTART_SHIFT		(0)
3618c2ecf20Sopenharmony_ci/*
3628c2ecf20Sopenharmony_ci *	DWORD2: (Always Present)
3638c2ecf20Sopenharmony_ci *	X Size (Dest)
3648c2ecf20Sopenharmony_ci *	Y Size (Dest)
3658c2ecf20Sopenharmony_ci */
3668c2ecf20Sopenharmony_ci#define PSB_2D_DST_XSIZE_MASK		(0x00FFF000)
3678c2ecf20Sopenharmony_ci#define PSB_2D_DST_XSIZE_CLRMASK	(0xFF000FFF)
3688c2ecf20Sopenharmony_ci#define PSB_2D_DST_XSIZE_SHIFT		(12)
3698c2ecf20Sopenharmony_ci#define PSB_2D_DST_YSIZE_MASK		(0x00000FFF)
3708c2ecf20Sopenharmony_ci#define PSB_2D_DST_YSIZE_CLRMASK	(0xFFFFF000)
3718c2ecf20Sopenharmony_ci#define PSB_2D_DST_YSIZE_SHIFT		(0)
3728c2ecf20Sopenharmony_ci
3738c2ecf20Sopenharmony_ci/*
3748c2ecf20Sopenharmony_ci * Source Surface (PSB_2D_SRC_SURF_BH)
3758c2ecf20Sopenharmony_ci */
3768c2ecf20Sopenharmony_ci/*
3778c2ecf20Sopenharmony_ci * WORD 0
3788c2ecf20Sopenharmony_ci */
3798c2ecf20Sopenharmony_ci
3808c2ecf20Sopenharmony_ci#define PSB_2D_SRC_FORMAT_MASK		(0x00078000)
3818c2ecf20Sopenharmony_ci#define PSB_2D_SRC_1_PAL		(0x00000000)
3828c2ecf20Sopenharmony_ci#define PSB_2D_SRC_2_PAL		(0x00008000)
3838c2ecf20Sopenharmony_ci#define PSB_2D_SRC_4_PAL		(0x00010000)
3848c2ecf20Sopenharmony_ci#define PSB_2D_SRC_8_PAL		(0x00018000)
3858c2ecf20Sopenharmony_ci#define PSB_2D_SRC_8_ALPHA		(0x00020000)
3868c2ecf20Sopenharmony_ci#define PSB_2D_SRC_4_ALPHA		(0x00028000)
3878c2ecf20Sopenharmony_ci#define PSB_2D_SRC_332RGB		(0x00030000)
3888c2ecf20Sopenharmony_ci#define PSB_2D_SRC_4444ARGB		(0x00038000)
3898c2ecf20Sopenharmony_ci#define PSB_2D_SRC_555RGB		(0x00040000)
3908c2ecf20Sopenharmony_ci#define PSB_2D_SRC_1555ARGB		(0x00048000)
3918c2ecf20Sopenharmony_ci#define PSB_2D_SRC_565RGB		(0x00050000)
3928c2ecf20Sopenharmony_ci#define PSB_2D_SRC_0888ARGB		(0x00058000)
3938c2ecf20Sopenharmony_ci#define PSB_2D_SRC_8888ARGB		(0x00060000)
3948c2ecf20Sopenharmony_ci#define PSB_2D_SRC_8888UYVY		(0x00068000)
3958c2ecf20Sopenharmony_ci#define PSB_2D_SRC_RESERVED		(0x00070000)
3968c2ecf20Sopenharmony_ci#define PSB_2D_SRC_1555ARGB_LOOKUP	(0x00078000)
3978c2ecf20Sopenharmony_ci
3988c2ecf20Sopenharmony_ci
3998c2ecf20Sopenharmony_ci#define PSB_2D_SRC_STRIDE_MASK		(0x00007FFF)
4008c2ecf20Sopenharmony_ci#define PSB_2D_SRC_STRIDE_CLRMASK	(0xFFFF8000)
4018c2ecf20Sopenharmony_ci#define PSB_2D_SRC_STRIDE_SHIFT		(0)
4028c2ecf20Sopenharmony_ci/*
4038c2ecf20Sopenharmony_ci *  WORD 1 - Base Address
4048c2ecf20Sopenharmony_ci */
4058c2ecf20Sopenharmony_ci#define PSB_2D_SRC_ADDR_MASK		(0x0FFFFFFC)
4068c2ecf20Sopenharmony_ci#define PSB_2D_SRC_ADDR_CLRMASK		(0x00000003)
4078c2ecf20Sopenharmony_ci#define PSB_2D_SRC_ADDR_SHIFT		(2)
4088c2ecf20Sopenharmony_ci#define PSB_2D_SRC_ADDR_ALIGNSHIFT	(2)
4098c2ecf20Sopenharmony_ci
4108c2ecf20Sopenharmony_ci/*
4118c2ecf20Sopenharmony_ci * Pattern Surface (PSB_2D_PAT_SURF_BH)
4128c2ecf20Sopenharmony_ci */
4138c2ecf20Sopenharmony_ci/*
4148c2ecf20Sopenharmony_ci *  WORD 0
4158c2ecf20Sopenharmony_ci */
4168c2ecf20Sopenharmony_ci
4178c2ecf20Sopenharmony_ci#define PSB_2D_PAT_FORMAT_MASK		(0x00078000)
4188c2ecf20Sopenharmony_ci#define PSB_2D_PAT_1_PAL		(0x00000000)
4198c2ecf20Sopenharmony_ci#define PSB_2D_PAT_2_PAL		(0x00008000)
4208c2ecf20Sopenharmony_ci#define PSB_2D_PAT_4_PAL		(0x00010000)
4218c2ecf20Sopenharmony_ci#define PSB_2D_PAT_8_PAL		(0x00018000)
4228c2ecf20Sopenharmony_ci#define PSB_2D_PAT_8_ALPHA		(0x00020000)
4238c2ecf20Sopenharmony_ci#define PSB_2D_PAT_4_ALPHA		(0x00028000)
4248c2ecf20Sopenharmony_ci#define PSB_2D_PAT_332RGB		(0x00030000)
4258c2ecf20Sopenharmony_ci#define PSB_2D_PAT_4444ARGB		(0x00038000)
4268c2ecf20Sopenharmony_ci#define PSB_2D_PAT_555RGB		(0x00040000)
4278c2ecf20Sopenharmony_ci#define PSB_2D_PAT_1555ARGB		(0x00048000)
4288c2ecf20Sopenharmony_ci#define PSB_2D_PAT_565RGB		(0x00050000)
4298c2ecf20Sopenharmony_ci#define PSB_2D_PAT_0888ARGB		(0x00058000)
4308c2ecf20Sopenharmony_ci#define PSB_2D_PAT_8888ARGB		(0x00060000)
4318c2ecf20Sopenharmony_ci
4328c2ecf20Sopenharmony_ci#define PSB_2D_PAT_STRIDE_MASK		(0x00007FFF)
4338c2ecf20Sopenharmony_ci#define PSB_2D_PAT_STRIDE_CLRMASK	(0xFFFF8000)
4348c2ecf20Sopenharmony_ci#define PSB_2D_PAT_STRIDE_SHIFT		(0)
4358c2ecf20Sopenharmony_ci/*
4368c2ecf20Sopenharmony_ci *  WORD 1 - Base Address
4378c2ecf20Sopenharmony_ci */
4388c2ecf20Sopenharmony_ci#define PSB_2D_PAT_ADDR_MASK		(0x0FFFFFFC)
4398c2ecf20Sopenharmony_ci#define PSB_2D_PAT_ADDR_CLRMASK		(0x00000003)
4408c2ecf20Sopenharmony_ci#define PSB_2D_PAT_ADDR_SHIFT		(2)
4418c2ecf20Sopenharmony_ci#define PSB_2D_PAT_ADDR_ALIGNSHIFT	(2)
4428c2ecf20Sopenharmony_ci
4438c2ecf20Sopenharmony_ci/*
4448c2ecf20Sopenharmony_ci * Destination Surface (PSB_2D_DST_SURF_BH)
4458c2ecf20Sopenharmony_ci */
4468c2ecf20Sopenharmony_ci/*
4478c2ecf20Sopenharmony_ci * WORD 0
4488c2ecf20Sopenharmony_ci */
4498c2ecf20Sopenharmony_ci
4508c2ecf20Sopenharmony_ci#define PSB_2D_DST_FORMAT_MASK		(0x00078000)
4518c2ecf20Sopenharmony_ci#define PSB_2D_DST_332RGB		(0x00030000)
4528c2ecf20Sopenharmony_ci#define PSB_2D_DST_4444ARGB		(0x00038000)
4538c2ecf20Sopenharmony_ci#define PSB_2D_DST_555RGB		(0x00040000)
4548c2ecf20Sopenharmony_ci#define PSB_2D_DST_1555ARGB		(0x00048000)
4558c2ecf20Sopenharmony_ci#define PSB_2D_DST_565RGB		(0x00050000)
4568c2ecf20Sopenharmony_ci#define PSB_2D_DST_0888ARGB		(0x00058000)
4578c2ecf20Sopenharmony_ci#define PSB_2D_DST_8888ARGB		(0x00060000)
4588c2ecf20Sopenharmony_ci#define PSB_2D_DST_8888AYUV		(0x00070000)
4598c2ecf20Sopenharmony_ci
4608c2ecf20Sopenharmony_ci#define PSB_2D_DST_STRIDE_MASK		(0x00007FFF)
4618c2ecf20Sopenharmony_ci#define PSB_2D_DST_STRIDE_CLRMASK	(0xFFFF8000)
4628c2ecf20Sopenharmony_ci#define PSB_2D_DST_STRIDE_SHIFT		(0)
4638c2ecf20Sopenharmony_ci/*
4648c2ecf20Sopenharmony_ci * WORD 1 - Base Address
4658c2ecf20Sopenharmony_ci */
4668c2ecf20Sopenharmony_ci#define PSB_2D_DST_ADDR_MASK		(0x0FFFFFFC)
4678c2ecf20Sopenharmony_ci#define PSB_2D_DST_ADDR_CLRMASK		(0x00000003)
4688c2ecf20Sopenharmony_ci#define PSB_2D_DST_ADDR_SHIFT		(2)
4698c2ecf20Sopenharmony_ci#define PSB_2D_DST_ADDR_ALIGNSHIFT	(2)
4708c2ecf20Sopenharmony_ci
4718c2ecf20Sopenharmony_ci/*
4728c2ecf20Sopenharmony_ci * Mask Surface (PSB_2D_MASK_SURF_BH)
4738c2ecf20Sopenharmony_ci */
4748c2ecf20Sopenharmony_ci/*
4758c2ecf20Sopenharmony_ci * WORD 0
4768c2ecf20Sopenharmony_ci */
4778c2ecf20Sopenharmony_ci#define PSB_2D_MASK_STRIDE_MASK		(0x00007FFF)
4788c2ecf20Sopenharmony_ci#define PSB_2D_MASK_STRIDE_CLRMASK	(0xFFFF8000)
4798c2ecf20Sopenharmony_ci#define PSB_2D_MASK_STRIDE_SHIFT	(0)
4808c2ecf20Sopenharmony_ci/*
4818c2ecf20Sopenharmony_ci *  WORD 1 - Base Address
4828c2ecf20Sopenharmony_ci */
4838c2ecf20Sopenharmony_ci#define PSB_2D_MASK_ADDR_MASK		(0x0FFFFFFC)
4848c2ecf20Sopenharmony_ci#define PSB_2D_MASK_ADDR_CLRMASK	(0x00000003)
4858c2ecf20Sopenharmony_ci#define PSB_2D_MASK_ADDR_SHIFT		(2)
4868c2ecf20Sopenharmony_ci#define PSB_2D_MASK_ADDR_ALIGNSHIFT	(2)
4878c2ecf20Sopenharmony_ci
4888c2ecf20Sopenharmony_ci/*
4898c2ecf20Sopenharmony_ci * Source Palette (PSB_2D_SRC_PAL_BH)
4908c2ecf20Sopenharmony_ci */
4918c2ecf20Sopenharmony_ci
4928c2ecf20Sopenharmony_ci#define PSB_2D_SRCPAL_ADDR_SHIFT	(0)
4938c2ecf20Sopenharmony_ci#define PSB_2D_SRCPAL_ADDR_CLRMASK	(0xF0000007)
4948c2ecf20Sopenharmony_ci#define PSB_2D_SRCPAL_ADDR_MASK		(0x0FFFFFF8)
4958c2ecf20Sopenharmony_ci#define PSB_2D_SRCPAL_BYTEALIGN		(1024)
4968c2ecf20Sopenharmony_ci
4978c2ecf20Sopenharmony_ci/*
4988c2ecf20Sopenharmony_ci * Pattern Palette (PSB_2D_PAT_PAL_BH)
4998c2ecf20Sopenharmony_ci */
5008c2ecf20Sopenharmony_ci
5018c2ecf20Sopenharmony_ci#define PSB_2D_PATPAL_ADDR_SHIFT	(0)
5028c2ecf20Sopenharmony_ci#define PSB_2D_PATPAL_ADDR_CLRMASK	(0xF0000007)
5038c2ecf20Sopenharmony_ci#define PSB_2D_PATPAL_ADDR_MASK		(0x0FFFFFF8)
5048c2ecf20Sopenharmony_ci#define PSB_2D_PATPAL_BYTEALIGN		(1024)
5058c2ecf20Sopenharmony_ci
5068c2ecf20Sopenharmony_ci/*
5078c2ecf20Sopenharmony_ci * Rop3 Codes (2 LS bytes)
5088c2ecf20Sopenharmony_ci */
5098c2ecf20Sopenharmony_ci
5108c2ecf20Sopenharmony_ci#define PSB_2D_ROP3_SRCCOPY		(0xCCCC)
5118c2ecf20Sopenharmony_ci#define PSB_2D_ROP3_PATCOPY		(0xF0F0)
5128c2ecf20Sopenharmony_ci#define PSB_2D_ROP3_WHITENESS		(0xFFFF)
5138c2ecf20Sopenharmony_ci#define PSB_2D_ROP3_BLACKNESS		(0x0000)
5148c2ecf20Sopenharmony_ci#define PSB_2D_ROP3_SRC			(0xCC)
5158c2ecf20Sopenharmony_ci#define PSB_2D_ROP3_PAT			(0xF0)
5168c2ecf20Sopenharmony_ci#define PSB_2D_ROP3_DST			(0xAA)
5178c2ecf20Sopenharmony_ci
5188c2ecf20Sopenharmony_ci/*
5198c2ecf20Sopenharmony_ci * Sizes.
5208c2ecf20Sopenharmony_ci */
5218c2ecf20Sopenharmony_ci
5228c2ecf20Sopenharmony_ci#define PSB_SCENE_HW_COOKIE_SIZE	16
5238c2ecf20Sopenharmony_ci#define PSB_TA_MEM_HW_COOKIE_SIZE	16
5248c2ecf20Sopenharmony_ci
5258c2ecf20Sopenharmony_ci/*
5268c2ecf20Sopenharmony_ci * Scene stuff.
5278c2ecf20Sopenharmony_ci */
5288c2ecf20Sopenharmony_ci
5298c2ecf20Sopenharmony_ci#define PSB_NUM_HW_SCENES		2
5308c2ecf20Sopenharmony_ci
5318c2ecf20Sopenharmony_ci/*
5328c2ecf20Sopenharmony_ci * Scheduler completion actions.
5338c2ecf20Sopenharmony_ci */
5348c2ecf20Sopenharmony_ci
5358c2ecf20Sopenharmony_ci#define PSB_RASTER_BLOCK		0
5368c2ecf20Sopenharmony_ci#define PSB_RASTER			1
5378c2ecf20Sopenharmony_ci#define PSB_RETURN			2
5388c2ecf20Sopenharmony_ci#define PSB_TA				3
5398c2ecf20Sopenharmony_ci
5408c2ecf20Sopenharmony_ci/* Power management */
5418c2ecf20Sopenharmony_ci#define PSB_PUNIT_PORT			0x04
5428c2ecf20Sopenharmony_ci#define PSB_OSPMBA			0x78
5438c2ecf20Sopenharmony_ci#define PSB_APMBA			0x7a
5448c2ecf20Sopenharmony_ci#define PSB_APM_CMD			0x0
5458c2ecf20Sopenharmony_ci#define PSB_APM_STS			0x04
5468c2ecf20Sopenharmony_ci#define PSB_PWRGT_VID_ENC_MASK		0x30
5478c2ecf20Sopenharmony_ci#define PSB_PWRGT_VID_DEC_MASK		0xc
5488c2ecf20Sopenharmony_ci#define PSB_PWRGT_GL3_MASK		0xc0
5498c2ecf20Sopenharmony_ci
5508c2ecf20Sopenharmony_ci#define PSB_PM_SSC			0x20
5518c2ecf20Sopenharmony_ci#define PSB_PM_SSS			0x30
5528c2ecf20Sopenharmony_ci#define PSB_PWRGT_DISPLAY_MASK		0xc /*on a different BA than video/gfx*/
5538c2ecf20Sopenharmony_ci#define MDFLD_PWRGT_DISPLAY_A_CNTR	0x0000000c
5548c2ecf20Sopenharmony_ci#define MDFLD_PWRGT_DISPLAY_B_CNTR	0x0000c000
5558c2ecf20Sopenharmony_ci#define MDFLD_PWRGT_DISPLAY_C_CNTR	0x00030000
5568c2ecf20Sopenharmony_ci#define MDFLD_PWRGT_DISP_MIPI_CNTR	0x000c0000
5578c2ecf20Sopenharmony_ci#define MDFLD_PWRGT_DISPLAY_CNTR    (MDFLD_PWRGT_DISPLAY_A_CNTR | MDFLD_PWRGT_DISPLAY_B_CNTR | MDFLD_PWRGT_DISPLAY_C_CNTR | MDFLD_PWRGT_DISP_MIPI_CNTR) /* 0x000fc00c */
5588c2ecf20Sopenharmony_ci/* Display SSS register bits are different in A0 vs. B0 */
5598c2ecf20Sopenharmony_ci#define PSB_PWRGT_GFX_MASK		0x3
5608c2ecf20Sopenharmony_ci#define MDFLD_PWRGT_DISPLAY_A_STS	0x000000c0
5618c2ecf20Sopenharmony_ci#define MDFLD_PWRGT_DISPLAY_B_STS	0x00000300
5628c2ecf20Sopenharmony_ci#define MDFLD_PWRGT_DISPLAY_C_STS	0x00000c00
5638c2ecf20Sopenharmony_ci#define PSB_PWRGT_GFX_MASK_B0		0xc3
5648c2ecf20Sopenharmony_ci#define MDFLD_PWRGT_DISPLAY_A_STS_B0	0x0000000c
5658c2ecf20Sopenharmony_ci#define MDFLD_PWRGT_DISPLAY_B_STS_B0	0x0000c000
5668c2ecf20Sopenharmony_ci#define MDFLD_PWRGT_DISPLAY_C_STS_B0	0x00030000
5678c2ecf20Sopenharmony_ci#define MDFLD_PWRGT_DISP_MIPI_STS	0x000c0000
5688c2ecf20Sopenharmony_ci#define MDFLD_PWRGT_DISPLAY_STS_A0    (MDFLD_PWRGT_DISPLAY_A_STS | MDFLD_PWRGT_DISPLAY_B_STS | MDFLD_PWRGT_DISPLAY_C_STS | MDFLD_PWRGT_DISP_MIPI_STS) /* 0x000fc00c */
5698c2ecf20Sopenharmony_ci#define MDFLD_PWRGT_DISPLAY_STS_B0    (MDFLD_PWRGT_DISPLAY_A_STS_B0 | MDFLD_PWRGT_DISPLAY_B_STS_B0 | MDFLD_PWRGT_DISPLAY_C_STS_B0 | MDFLD_PWRGT_DISP_MIPI_STS) /* 0x000fc00c */
5708c2ecf20Sopenharmony_ci#endif
571