hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/drivers/media/platform/coda/coda_regs.h
....@@ -1,14 +1,10 @@
1
+/* SPDX-License-Identifier: GPL-2.0-or-later */
12 /*
23 * linux/drivers/media/platform/coda/coda_regs.h
34 *
45 * Copyright (C) 2012 Vista Silicon SL
56 * Javier Martin <javier.martin@vista-silicon.com>
67 * Xavier Duret
7
- *
8
- * This program is free software; you can redistribute it and/or modify
9
- * it under the terms of the GNU General Public License as published by
10
- * the Free Software Foundation; either version 2 of the License, or
11
- * (at your option) any later version.
128 */
139
1410 #ifndef _REGS_CODA_H_
....@@ -181,7 +177,7 @@
181177 #define CODA_RET_DEC_SEQ_FRATE_DR 0x1e8
182178 #define CODA_RET_DEC_SEQ_JPG_PARA 0x1e4
183179 #define CODA_RET_DEC_SEQ_JPG_THUMB_IND 0x1e8
184
-#define CODA9_RET_DEC_SEQ_HEADER_REPORT 0x1ec
180
+#define CODA7_RET_DEC_SEQ_HEADER_REPORT 0x1ec
185181
186182 /* Decoder Picture Run */
187183 #define CODA_CMD_DEC_PIC_ROT_MODE 0x180
....@@ -346,6 +342,24 @@
346342 #define CODA_CMD_ENC_SEQ_JPG_THUMB_SIZE 0x1a4
347343 #define CODA_CMD_ENC_SEQ_JPG_THUMB_OFFSET 0x1a8
348344
345
+/* Encoder Parameter Change */
346
+#define CODA_CMD_ENC_PARAM_CHANGE_ENABLE 0x180
347
+#define CODA_PARAM_CHANGE_RC_GOP BIT(0)
348
+#define CODA_PARAM_CHANGE_RC_INTRA_QP BIT(1)
349
+#define CODA_PARAM_CHANGE_RC_BITRATE BIT(2)
350
+#define CODA_PARAM_CHANGE_RC_FRAME_RATE BIT(3)
351
+#define CODA_PARAM_CHANGE_INTRA_MB_NUM BIT(4)
352
+#define CODA_PARAM_CHANGE_SLICE_MODE BIT(5)
353
+#define CODA_PARAM_CHANGE_HEC_MODE BIT(6)
354
+#define CODA_CMD_ENC_PARAM_RC_GOP 0x184
355
+#define CODA_CMD_ENC_PARAM_RC_INTRA_QP 0x188
356
+#define CODA_CMD_ENC_PARAM_RC_BITRATE 0x18c
357
+#define CODA_CMD_ENC_PARAM_RC_FRAME_RATE 0x190
358
+#define CODA_CMD_ENC_PARAM_INTRA_MB_NUM 0x194
359
+#define CODA_CMD_ENC_PARAM_SLICE_MODE 0x198
360
+#define CODA_CMD_ENC_PARAM_HEC_MODE 0x19c
361
+#define CODA_RET_ENC_PARAM_CHANGE_SUCCESS 0x1c0
362
+
349363 /* Encoder Picture Run */
350364 #define CODA9_CMD_ENC_PIC_SRC_INDEX 0x180
351365 #define CODA9_CMD_ENC_PIC_SRC_STRIDE 0x184
....@@ -437,11 +451,20 @@
437451 #define CODA9_CMD_FIRMWARE_CODE_REV 0x1c4
438452
439453 #define CODA9_GDMA_BASE 0x1000
454
+#define CODA9_GDI_CONTROL (CODA9_GDMA_BASE + 0x034)
455
+#define CODA9_GDI_PIC_INIT_HOST (CODA9_GDMA_BASE + 0x038)
456
+#define CODA9_GDI_STATUS (CODA9_GDMA_BASE + 0x080)
440457 #define CODA9_GDI_WPROT_ERR_CLR (CODA9_GDMA_BASE + 0x0a0)
441458 #define CODA9_GDI_WPROT_RGN_EN (CODA9_GDMA_BASE + 0x0ac)
442459
443460 #define CODA9_GDI_BUS_CTRL (CODA9_GDMA_BASE + 0x0f0)
444461 #define CODA9_GDI_BUS_STATUS (CODA9_GDMA_BASE + 0x0f4)
462
+
463
+#define CODA9_GDI_INFO_CONTROL (CODA9_GDMA_BASE + 0x400)
464
+#define CODA9_GDI_INFO_PIC_SIZE (CODA9_GDMA_BASE + 0x404)
465
+#define CODA9_GDI_INFO_BASE_Y (CODA9_GDMA_BASE + 0x408)
466
+#define CODA9_GDI_INFO_BASE_CB (CODA9_GDMA_BASE + 0x40c)
467
+#define CODA9_GDI_INFO_BASE_CR (CODA9_GDMA_BASE + 0x410)
445468
446469 #define CODA9_GDI_XY2_CAS_0 (CODA9_GDMA_BASE + 0x800)
447470 #define CODA9_GDI_XY2_CAS_F (CODA9_GDMA_BASE + 0x83c)
....@@ -463,4 +486,78 @@
463486 #define CODA9_GDI_RBC2_AXI_1F (CODA9_GDMA_BASE + 0x91c)
464487 #define CODA9_GDI_TILEDBUF_BASE (CODA9_GDMA_BASE + 0x920)
465488
489
+#define CODA9_JPEG_BASE 0x3000
490
+#define CODA9_REG_JPEG_PIC_START (CODA9_JPEG_BASE + 0x000)
491
+#define CODA9_REG_JPEG_PIC_STATUS (CODA9_JPEG_BASE + 0x004)
492
+#define CODA9_JPEG_STATUS_OVERFLOW BIT(3)
493
+#define CODA9_JPEG_STATUS_BBC_INT BIT(2)
494
+#define CODA9_JPEG_STATUS_ERROR BIT(1)
495
+#define CODA9_JPEG_STATUS_DONE BIT(0)
496
+#define CODA9_REG_JPEG_PIC_ERRMB (CODA9_JPEG_BASE + 0x008)
497
+#define CODA9_JPEG_ERRMB_RESTART_IDX_MASK (0xf << 24)
498
+#define CODA9_JPEG_ERRMB_MCU_POS_X_MASK (0xfff << 12)
499
+#define CODA9_JPEG_ERRMB_MCU_POS_Y_MASK 0xfff
500
+#define CODA9_REG_JPEG_PIC_CTRL (CODA9_JPEG_BASE + 0x010)
501
+#define CODA9_JPEG_PIC_CTRL_USER_HUFFMAN_EN BIT(6)
502
+#define CODA9_JPEG_PIC_CTRL_TC_DIRECTION BIT(4)
503
+#define CODA9_JPEG_PIC_CTRL_ENCODER_EN BIT(3)
504
+#define CODA9_REG_JPEG_PIC_SIZE (CODA9_JPEG_BASE + 0x014)
505
+#define CODA9_REG_JPEG_MCU_INFO (CODA9_JPEG_BASE + 0x018)
506
+#define CODA9_JPEG_MCU_BLOCK_NUM_OFFSET 16
507
+#define CODA9_JPEG_COMP_NUM_OFFSET 12
508
+#define CODA9_JPEG_COMP0_INFO_OFFSET 8
509
+#define CODA9_JPEG_COMP1_INFO_OFFSET 4
510
+#define CODA9_JPEG_COMP2_INFO_OFFSET 0
511
+#define CODA9_REG_JPEG_ROT_INFO (CODA9_JPEG_BASE + 0x01c)
512
+#define CODA9_JPEG_ROT_MIR_ENABLE BIT(4)
513
+#define CODA9_JPEG_ROT_MIR_MODE_MASK 0xf
514
+#define CODA9_REG_JPEG_SCL_INFO (CODA9_JPEG_BASE + 0x020)
515
+#define CODA9_JPEG_SCL_ENABLE BIT(4)
516
+#define CODA9_JPEG_SCL_HOR_MODE_MASK (0x3 << 2)
517
+#define CODA9_JPEG_SCL_VER_MODE_MASK (0x3 << 0)
518
+#define CODA9_REG_JPEG_IF_INFO (CODA9_JPEG_BASE + 0x024)
519
+#define CODA9_JPEG_SENS_IF_CLR BIT(1)
520
+#define CODA9_JPEG_DISP_IF_CLR BIT(0)
521
+#define CODA9_REG_JPEG_OP_INFO (CODA9_JPEG_BASE + 0x02c)
522
+#define CODA9_JPEG_BUS_REQ_NUM_OFFSET 0
523
+#define CODA9_JPEG_BUS_REQ_NUM_MASK 0x7
524
+#define CODA9_REG_JPEG_DPB_CONFIG (CODA9_JPEG_BASE + 0x030)
525
+#define CODA9_REG_JPEG_DPB_BASE00 (CODA9_JPEG_BASE + 0x040)
526
+#define CODA9_REG_JPEG_HUFF_CTRL (CODA9_JPEG_BASE + 0x080)
527
+#define CODA9_REG_JPEG_HUFF_ADDR (CODA9_JPEG_BASE + 0x084)
528
+#define CODA9_REG_JPEG_HUFF_DATA (CODA9_JPEG_BASE + 0x088)
529
+#define CODA9_REG_JPEG_QMAT_CTRL (CODA9_JPEG_BASE + 0x090)
530
+#define CODA9_REG_JPEG_QMAT_ADDR (CODA9_JPEG_BASE + 0x094)
531
+#define CODA9_REG_JPEG_QMAT_DATA (CODA9_JPEG_BASE + 0x098)
532
+#define CODA9_REG_JPEG_RST_INTVAL (CODA9_JPEG_BASE + 0x0b0)
533
+#define CODA9_REG_JPEG_RST_INDEX (CODA9_JPEG_BASE + 0x0b4)
534
+#define CODA9_REG_JPEG_RST_COUNT (CODA9_JPEG_BASE + 0x0b8)
535
+#define CODA9_REG_JPEG_DPCM_DIFF_Y (CODA9_JPEG_BASE + 0x0f0)
536
+#define CODA9_REG_JPEG_DPCM_DIFF_CB (CODA9_JPEG_BASE + 0x0f4)
537
+#define CODA9_REG_JPEG_DPCM_DIFF_CR (CODA9_JPEG_BASE + 0x0f8)
538
+#define CODA9_REG_JPEG_GBU_CTRL (CODA9_JPEG_BASE + 0x100)
539
+#define CODA9_REG_JPEG_GBU_BT_PTR (CODA9_JPEG_BASE + 0x110)
540
+#define CODA9_REG_JPEG_GBU_WD_PTR (CODA9_JPEG_BASE + 0x114)
541
+#define CODA9_REG_JPEG_GBU_TT_CNT (CODA9_JPEG_BASE + 0x118)
542
+#define CODA9_REG_JPEG_GBU_BBSR (CODA9_JPEG_BASE + 0x140)
543
+#define CODA9_REG_JPEG_GBU_BBER (CODA9_JPEG_BASE + 0x144)
544
+#define CODA9_REG_JPEG_GBU_BBIR (CODA9_JPEG_BASE + 0x148)
545
+#define CODA9_REG_JPEG_GBU_BBHR (CODA9_JPEG_BASE + 0x14c)
546
+#define CODA9_REG_JPEG_GBU_BCNT (CODA9_JPEG_BASE + 0x158)
547
+#define CODA9_REG_JPEG_GBU_FF_RPTR (CODA9_JPEG_BASE + 0x160)
548
+#define CODA9_REG_JPEG_GBU_FF_WPTR (CODA9_JPEG_BASE + 0x164)
549
+#define CODA9_REG_JPEG_BBC_END_ADDR (CODA9_JPEG_BASE + 0x208)
550
+#define CODA9_REG_JPEG_BBC_WR_PTR (CODA9_JPEG_BASE + 0x20c)
551
+#define CODA9_REG_JPEG_BBC_RD_PTR (CODA9_JPEG_BASE + 0x210)
552
+#define CODA9_REG_JPEG_BBC_EXT_ADDR (CODA9_JPEG_BASE + 0x214)
553
+#define CODA9_REG_JPEG_BBC_INT_ADDR (CODA9_JPEG_BASE + 0x218)
554
+#define CODA9_REG_JPEG_BBC_DATA_CNT (CODA9_JPEG_BASE + 0x21c)
555
+#define CODA9_REG_JPEG_BBC_COMMAND (CODA9_JPEG_BASE + 0x220)
556
+#define CODA9_REG_JPEG_BBC_BUSY (CODA9_JPEG_BASE + 0x224)
557
+#define CODA9_REG_JPEG_BBC_CTRL (CODA9_JPEG_BASE + 0x228)
558
+#define CODA9_REG_JPEG_BBC_CUR_POS (CODA9_JPEG_BASE + 0x22c)
559
+#define CODA9_REG_JPEG_BBC_BAS_ADDR (CODA9_JPEG_BASE + 0x230)
560
+#define CODA9_REG_JPEG_BBC_STRM_CTRL (CODA9_JPEG_BASE + 0x234)
561
+#define CODA9_REG_JPEG_BBC_FLUSH_CMD (CODA9_JPEG_BASE + 0x238)
562
+
466563 #endif