blob: 0fb7cf714f2c33d1b069fca8b1814beae2b9002a [file] [log] [blame]
/*
* Copyright (c) 2019 MediaTek Inc.
* Author: Dennis YC Hsieh <dennis-yc.hsieh@mediatek.com>
*
* 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.
*
* 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 _DT_BINDINGS_GCE_MT6785_H
#define _DT_BINDINGS_GCE_MT6785_H
/* assign timeout 0 also means default */
#define CMDQ_NO_TIMEOUT 0xffffffff
#define CMDQ_TIMEOUT_DEFAULT 1000
/* GCE thread priority */
#define CMDQ_THR_PRIO_LOWEST 0
#define CMDQ_THR_PRIO_1 1
#define CMDQ_THR_PRIO_2 2
#define CMDQ_THR_PRIO_3 3
#define CMDQ_THR_PRIO_4 4
#define CMDQ_THR_PRIO_5 5
#define CMDQ_THR_PRIO_6 6
#define CMDQ_THR_PRIO_HIGHEST 7
/* CPR count in 32bit register */
#define GCE_CPR_COUNT 1312
/* GCE subsys table */
#define SUBSYS_1300XXXX 0
#define SUBSYS_1400XXXX 1
#define SUBSYS_1401XXXX 2
#define SUBSYS_1402XXXX 3
#define SUBSYS_1502XXXX 4
#define SUBSYS_1880XXXX 5
#define SUBSYS_1881XXXX 6
#define SUBSYS_1882XXXX 7
#define SUBSYS_1883XXXX 8
#define SUBSYS_1884XXXX 9
#define SUBSYS_1000XXXX 10
#define SUBSYS_1001XXXX 11
#define SUBSYS_1002XXXX 12
#define SUBSYS_1003XXXX 13
#define SUBSYS_1004XXXX 14
#define SUBSYS_1005XXXX 15
#define SUBSYS_1020XXXX 16
#define SUBSYS_1028XXXX 17
#define SUBSYS_1700XXXX 18
#define SUBSYS_1701XXXX 19
#define SUBSYS_1702XXXX 20
#define SUBSYS_1703XXXX 21
#define SUBSYS_1800XXXX 22
#define SUBSYS_1801XXXX 23
#define SUBSYS_1802XXXX 24
#define SUBSYS_1804XXXX 25
#define SUBSYS_1805XXXX 26
#define SUBSYS_1808XXXX 27
#define SUBSYS_180aXXXX 28
#define SUBSYS_180bXXXX 29
/* GCE hardware events */
#define CMDQ_EVENT_DISP_RDMA0_SOF 0
#define CMDQ_EVENT_DISP_RDMA1_SOF 1
#define CMDQ_EVENT_MDP_RDMA0_SOF 2
#define CMDQ_EVENT_MDP_RDMA1_SOF 3
#define CMDQ_EVENT_MDP_RSZ0_SOF 4
#define CMDQ_EVENT_MDP_RSZ1_SOF 5
#define CMDQ_EVENT_MDP_TDSHP_SOF 6
#define CMDQ_EVENT_MDP_WROT0_SOF 7
#define CMDQ_EVENT_MDP_WROT1_SOF 8
#define CMDQ_EVENT_DISP_OVL0_SOF 9
#define CMDQ_EVENT_DISP_2L_OVL0_SOF 10
#define CMDQ_EVENT_DISP_2L_OVL1_SOF 11
#define CMDQ_EVENT_DISP_WDMA0_SOF 12
#define CMDQ_EVENT_DISP_COLOR0_SOF 13
#define CMDQ_EVENT_DISP_CCORR0_SOF 14
#define CMDQ_EVENT_DISP_AAL0_SOF 15
#define CMDQ_EVENT_DISP_GAMMA0_SOF 16
#define CMDQ_EVENT_DISP_DITHER0_SOF 17
#define CMDQ_EVENT_DISP_PWM0_SOF 18
#define CMDQ_EVENT_DISP_DSI0_SOF 19
#define CMDQ_EVENT_DISP_DPI0_SOF 20
#define CMDQ_EVENT_DISP_POSTMASK0_SOF 21
#define CMDQ_EVENT_DISP_RSZ0_SOF 22
#define CMDQ_EVENT_MDP_AAL_SOF 23
#define CMDQ_EVENT_MDP_CCORR_SOF 24
#define CMDQ_EVENT_DISP_DBI0_SOF 25
#define CMDQ_EVENT_ISP_RELAY_SOF 26
#define CMDQ_EVENT_IPU_RELAY_SOF 27
#define CMDQ_EVENT_DISP_RDMA0_EOF 28
#define CMDQ_EVENT_DISP_RDMA1_EOF 29
#define CMDQ_EVENT_MDP_RDMA0_EOF 30
#define CMDQ_EVENT_MDP_RDMA1_EOF 31
#define CMDQ_EVENT_MDP_RSZ0_EOF 32
#define CMDQ_EVENT_MDP_RSZ1_EOF 33
#define CMDQ_EVENT_MDP_TDSHP_EOF 34
#define CMDQ_EVENT_MDP_WROT0_W_EOF 35
#define CMDQ_EVENT_MDP_WROT1_W_EOF 36
#define CMDQ_EVENT_DISP_OVL0_EOF 37
#define CMDQ_EVENT_DISP_2L_OVL0_EOF 38
#define CMDQ_EVENT_DISP_2L_OVL1_EOF 39
#define CMDQ_EVENT_DISP_WDMA0_EOF 40
#define CMDQ_EVENT_DISP_COLOR0_EOF 41
#define CMDQ_EVENT_DISP_CCORR0_EOF 42
#define CMDQ_EVENT_DISP_AAL0_EOF 43
#define CMDQ_EVENT_DISP_GAMMA0_EOF 44
#define CMDQ_EVENT_DISP_DITHER0_EOF 45
#define CMDQ_EVENT_DISP_DSI0_EOF 46
#define CMDQ_EVENT_DISP_DPI0_EOF 47
#define CMDQ_EVENT_DISP_RSZ0_EOF 49
#define CMDQ_EVENT_MDP_AAL_FRAME_DONE 50
#define CMDQ_EVENT_MDP_CCORR_FRAME_DONE 51
#define CMDQ_EVENT_DISP_POSTMASK0_FRAME_DONE 52
#define CMDQ_EVENT_MUTEX0_STREAM_EOF 130
#define CMDQ_EVENT_MUTEX1_STREAM_EOF 131
#define CMDQ_EVENT_MUTEX2_STREAM_EOF 132
#define CMDQ_EVENT_MUTEX3_STREAM_EOF 133
#define CMDQ_EVENT_MUTEX4_STREAM_EOF 134
#define CMDQ_EVENT_MUTEX5_STREAM_EOF 135
#define CMDQ_EVENT_MUTEX6_STREAM_EOF 136
#define CMDQ_EVENT_MUTEX7_STREAM_EOF 137
#define CMDQ_EVENT_MUTEX8_STREAM_EOF 138
#define CMDQ_EVENT_MUTEX9_STREAM_EOF 139
#define CMDQ_EVENT_MUTEX10_STREAM_EOF 140
#define CMDQ_EVENT_MUTEX11_STREAM_EOF 141
#define CMDQ_EVENT_DISP_RDMA0_UNDERRUN 142
#define CMDQ_EVENT_DISP_RDMA1_UNDERRUN 143
#define CMDQ_EVENT_DISP_RDMA2_UNDERRUN 144
#define CMDQ_EVENT_DISP_RDMA3_UNDERRUN 145
#define CMDQ_EVENT_DSI0_TE 146
#define CMDQ_EVENT_DSI0_IRQ_EVENT 147
#define CMDQ_EVENT_DSI0_DONE_EVENT 148
#define CMDQ_EVENT_DISP_POSTMASK0_FRAME_RST_DONE_PULSE 150
#define CMDQ_EVENT_DISP_WDMA0_RST_DONE 151
#define CMDQ_EVENT_MDP_WROT0_RST_DONE 153
#define CMDQ_EVENT_MDP_RDMA0_RST_DONE 154
#define CMDQ_EVENT_DISP_OVL0_RST_DONE 155
#define CMDQ_EVENT_DISP_OVL0_2L_RST_DONE 156
#define CMDQ_EVENT_DISP_OVL1_2L_RST_DONE 157
#define CMDQ_EVENT_DIP_CQ_THREAD0_EOF 257
#define CMDQ_EVENT_DIP_CQ_THREAD1_EOF 258
#define CMDQ_EVENT_DIP_CQ_THREAD2_EOF 259
#define CMDQ_EVENT_DIP_CQ_THREAD3_EOF 260
#define CMDQ_EVENT_DIP_CQ_THREAD4_EOF 261
#define CMDQ_EVENT_DIP_CQ_THREAD5_EOF 262
#define CMDQ_EVENT_DIP_CQ_THREAD6_EOF 263
#define CMDQ_EVENT_DIP_CQ_THREAD7_EOF 264
#define CMDQ_EVENT_DIP_CQ_THREAD8_EOF 265
#define CMDQ_EVENT_DIP_CQ_THREAD9_EOF 266
#define CMDQ_EVENT_DIP_CQ_THREAD10_EOF 267
#define CMDQ_EVENT_DIP_CQ_THREAD11_EOF 268
#define CMDQ_EVENT_DIP_CQ_THREAD12_EOF 269
#define CMDQ_EVENT_DIP_CQ_THREAD13_EOF 270
#define CMDQ_EVENT_DIP_CQ_THREAD14_EOF 271
#define CMDQ_EVENT_DIP_CQ_THREAD15_EOF 272
#define CMDQ_EVENT_DIP_CQ_THREAD16_EOF 273
#define CMDQ_EVENT_DIP_CQ_THREAD17_EOF 274
#define CMDQ_EVENT_DIP_CQ_THREAD18_EOF 275
#define CMDQ_EVENT_AMD_FRAME_DONE 276
#define CMDQ_EVENT_DVE_EOF 277
#define CMDQ_EVENT_WMF_EOF 278
#define CMDQ_EVENT_RSC_EOF 279
#define CMDQ_EVENT_MFB_DONE 280
#define CMDQ_EVENT_WPE_A_EOF 281
#define CMDQ_EVENT_WPE_B_FRAME_DONE 282
#define CMDQ_EVENT_OCC_DONE 283
#define CMDQ_EVENT_VENC_EOF 289
#define CMDQ_EVENT_VENC_CMDQ_PAUSE_DONE 290
#define CMDQ_EVENT_JPEG_ENC_EOF 291
#define CMDQ_EVENT_VENC_MB_DONE 292
#define CMDQ_EVENT_VENC_128BYTE_CNT_DONE 293
#define CMDQ_EVENT_ISP_FRAME_DONE_A 321
#define CMDQ_EVENT_ISP_FRAME_DONE_B 322
#define CMDQ_EVENT_ISP_CAMSV_0_PASS1_DONE 323
#define CMDQ_EVENT_ISP_CAMSV_1_PASS1_DONE 324
#define CMDQ_EVENT_ISP_CAMSV_2_PASS1_DONE 325
#define CMDQ_EVENT_ISP_TSF_DONE 326
#define CMDQ_EVENT_SENINF_0_FIFO_FULL 327
#define CMDQ_EVENT_SENINF_1_FIFO_FULL 328
#define CMDQ_EVENT_SENINF_2_FIFO_FULL 329
#define CMDQ_EVENT_SENINF_3_FIFO_FULL 330
#define CMDQ_EVENT_SENINF_4_FIFO_FULL 331
#define CMDQ_EVENT_SENINF_5_FIFO_FULL 332
#define CMDQ_EVENT_SENINF_6_FIFO_FULL 333
#define CMDQ_EVENT_SENINF_7_FIFO_FULL 334
#define CMDQ_EVENT_APU_GCE_CORE0_EVENT_0 353
#define CMDQ_EVENT_APU_GCE_CORE0_EVENT_1 354
#define CMDQ_EVENT_APU_GCE_CORE0_EVENT_2 355
#define CMDQ_EVENT_APU_GCE_CORE0_EVENT_3 356
#define CMDQ_EVENT_APU_GCE_CORE1_EVENT_0 385
#define CMDQ_EVENT_APU_GCE_CORE1_EVENT_1 386
#define CMDQ_EVENT_APU_GCE_CORE1_EVENT_2 387
#define CMDQ_EVENT_APU_GCE_CORE1_EVENT_3 388
#define CMDQ_EVENT_VDEC_EVENT_0 416
#define CMDQ_EVENT_VDEC_EVENT_1 417
#define CMDQ_EVENT_VDEC_EVENT_2 418
#define CMDQ_EVENT_VDEC_EVENT_3 419
#define CMDQ_EVENT_VDEC_EVENT_4 420
#define CMDQ_EVENT_VDEC_EVENT_5 421
#define CMDQ_EVENT_VDEC_EVENT_6 422
#define CMDQ_EVENT_VDEC_EVENT_7 423
#define CMDQ_EVENT_VDEC_EVENT_8 424
#define CMDQ_EVENT_VDEC_EVENT_9 425
#define CMDQ_EVENT_VDEC_EVENT_10 426
#define CMDQ_EVENT_VDEC_EVENT_11 427
#define CMDQ_EVENT_VDEC_EVENT_12 428
#define CMDQ_EVENT_VDEC_EVENT_13 429
#define CMDQ_EVENT_VDEC_EVENT_14 430
#define CMDQ_EVENT_VDEC_EVENT_15 431
#define CMDQ_EVENT_DSI0_TE_INFRA 898
/* CMDQ sw tokens
* Following definitions are gce sw token which may use by clients
* event operation API.
* Note that token 512 to 639 may set secure
*/
/* end of hw event and begin of sw token */
#define CMDQ_MAX_HW_EVENT 512
/* Config thread notify trigger thread */
#define CMDQ_SYNC_TOKEN_CONFIG_DIRTY 640
/* Trigger thread notify config thread */
#define CMDQ_SYNC_TOKEN_STREAM_EOF 641
/* Block Trigger thread until the ESD check finishes. */
#define CMDQ_SYNC_TOKEN_ESD_EOF 642
#define CMDQ_SYNC_TOKEN_STREAM_BLOCK 643
/* check CABC setup finish */
#define CMDQ_SYNC_TOKEN_CABC_EOF 644
/* Notify normal CMDQ there are some secure task done
* MUST NOT CHANGE, this token sync with secure world
*/
#define CMDQ_SYNC_SECURE_THR_EOF 647
/* CMDQ use sw token */
#define CMDQ_SYNC_TOKEN_USER_0 649
#define CMDQ_SYNC_TOKEN_USER_1 650
#define CMDQ_SYNC_TOKEN_POLL_MONITOR 651
#define CMDQ_SYNC_TOKEN_TPR_LOCK 652
/* ISP sw token */
#define CMDQ_SYNC_TOKEN_MSS 665
#define CMDQ_SYNC_TOKEN_MSF 666
/* GPR access tokens (for HW register backup)
* There are 15 32-bit GPR, 3 GPR form a set
* (64-bit for address, 32-bit for value)
* MUST NOT CHANGE, these tokens sync with MDP
*/
#define CMDQ_SYNC_TOKEN_GPR_SET_0 700
#define CMDQ_SYNC_TOKEN_GPR_SET_1 701
#define CMDQ_SYNC_TOKEN_GPR_SET_2 702
#define CMDQ_SYNC_TOKEN_GPR_SET_3 703
#define CMDQ_SYNC_TOKEN_GPR_SET_4 704
/* Resource lock event to control resource in GCE thread */
#define CMDQ_SYNC_RESOURCE_WROT0 710
#define CMDQ_SYNC_RESOURCE_WROT1 711
/* event for gpr timer, used in sleep and poll with timeout */
#define CMDQ_TOKEN_GPR_TIMER_R0 994
#define CMDQ_TOKEN_GPR_TIMER_R1 995
#define CMDQ_TOKEN_GPR_TIMER_R2 996
#define CMDQ_TOKEN_GPR_TIMER_R3 997
#define CMDQ_TOKEN_GPR_TIMER_R4 998
#define CMDQ_TOKEN_GPR_TIMER_R5 999
#define CMDQ_TOKEN_GPR_TIMER_R6 1000
#define CMDQ_TOKEN_GPR_TIMER_R7 1001
#define CMDQ_TOKEN_GPR_TIMER_R8 1002
#define CMDQ_TOKEN_GPR_TIMER_R9 1003
#define CMDQ_TOKEN_GPR_TIMER_R10 1004
#define CMDQ_TOKEN_GPR_TIMER_R11 1005
#define CMDQ_TOKEN_GPR_TIMER_R12 1006
#define CMDQ_TOKEN_GPR_TIMER_R13 1007
#define CMDQ_TOKEN_GPR_TIMER_R14 1008
#define CMDQ_TOKEN_GPR_TIMER_R15 1009
#define CMDQ_EVENT_MAX 0x3FF
/* CMDQ sw tokens END */
#endif