File Index
Files and directories
Sign in
FILE

mtk_jpeg_enc_hw.h

File preview with syntax highlighting.

linux-6.19.14/drivers/media/platform/mediatek/jpeg/mtk_jpeg_enc_hw.h C
 1/* SPDX-License-Identifier: GPL-2.0-only */
 2/*
 3 * Copyright (c) 2019 MediaTek Inc.
 4 * Author: Xia Jiang <xia.jiang@mediatek.com>
 5 *
 6 */
 7
 8#ifndef _MTK_JPEG_ENC_HW_H
 9#define _MTK_JPEG_ENC_HW_H
10
11#include <media/videobuf2-core.h>
12
13#include "mtk_jpeg_core.h"
14
15#define JPEG_ENC_INT_STATUS_DONE	BIT(0)
16#define JPEG_ENC_INT_STATUS_MASK_ALLIRQ	0x13
17
18#define JPEG_ENC_DST_ADDR_OFFSET_MASK	GENMASK(3, 0)
19
20#define JPEG_ENC_CTRL_YUV_FORMAT_MASK	0x18
21#define JPEG_ENC_CTRL_RESTART_EN_BIT	BIT(10)
22#define JPEG_ENC_CTRL_FILE_FORMAT_BIT	BIT(5)
23#define JPEG_ENC_CTRL_INT_EN_BIT	BIT(2)
24#define JPEG_ENC_CTRL_ENABLE_BIT	BIT(0)
25#define JPEG_ENC_RESET_BIT		BIT(0)
26
27#define JPEG_ENC_YUV_FORMAT_YUYV	0
28#define JPEG_ENC_YUV_FORMAT_YVYU	1
29#define JPEG_ENC_YUV_FORMAT_NV12	2
30#define JEPG_ENC_YUV_FORMAT_NV21	3
31
32#define JPEG_ENC_QUALITY_Q60		0x0
33#define JPEG_ENC_QUALITY_Q80		0x1
34#define JPEG_ENC_QUALITY_Q90		0x2
35#define JPEG_ENC_QUALITY_Q95		0x3
36#define JPEG_ENC_QUALITY_Q39		0x4
37#define JPEG_ENC_QUALITY_Q68		0x5
38#define JPEG_ENC_QUALITY_Q84		0x6
39#define JPEG_ENC_QUALITY_Q92		0x7
40#define JPEG_ENC_QUALITY_Q48		0x8
41#define JPEG_ENC_QUALITY_Q74		0xa
42#define JPEG_ENC_QUALITY_Q87		0xb
43#define JPEG_ENC_QUALITY_Q34		0xc
44#define JPEG_ENC_QUALITY_Q64		0xe
45#define JPEG_ENC_QUALITY_Q82		0xf
46#define JPEG_ENC_QUALITY_Q97		0x10
47
48#define JPEG_ENC_RSTB			0x100
49#define JPEG_ENC_CTRL			0x104
50#define JPEG_ENC_QUALITY		0x108
51#define JPEG_ENC_BLK_NUM		0x10C
52#define JPEG_ENC_BLK_CNT		0x110
53#define JPEG_ENC_INT_STS		0x11c
54#define JPEG_ENC_DST_ADDR0		0x120
55#define JPEG_ENC_DMA_ADDR0		0x124
56#define JPEG_ENC_STALL_ADDR0		0x128
57#define JPEG_ENC_OFFSET_ADDR		0x138
58#define JPEG_ENC_RST_MCU_NUM		0x150
59#define JPEG_ENC_IMG_SIZE		0x154
60#define JPEG_ENC_DEBUG_INFO0		0x160
61#define JPEG_ENC_DEBUG_INFO1		0x164
62#define JPEG_ENC_TOTAL_CYCLE		0x168
63#define JPEG_ENC_BYTE_OFFSET_MASK	0x16c
64#define JPEG_ENC_SRC_LUMA_ADDR		0x170
65#define JPEG_ENC_SRC_CHROMA_ADDR	0x174
66#define JPEG_ENC_STRIDE			0x178
67#define JPEG_ENC_IMG_STRIDE		0x17c
68#define JPEG_ENC_DCM_CTRL		0x300
69#define JPEG_ENC_CODEC_SEL		0x314
70#define JPEG_ENC_ULTRA_THRES		0x318
71#define JPEG_ENC_SRC_LUMA_ADDR_EXT      0x584
72#define JPEG_ENC_SRC_CHRO_ADDR_EXT      0x588
73#define JPEG_ENC_Q_TBL_ADDR_EXT         0x58C
74#define JPEG_ENC_DEST_ADDR0_EXT         0x590
75#define JPEG_ENC_STALL_ADDR0_EXT        0x594
76
77/**
78 * struct mtk_jpeg_enc_qlt - JPEG encoder quality data
79 * @quality_param:	quality value
80 * @hardware_value:	hardware value of quality
81 */
82struct mtk_jpeg_enc_qlt {
83	u8	quality_param;
84	u8	hardware_value;
85};
86
87void mtk_jpeg_enc_reset(void __iomem *base);
88u32 mtk_jpeg_enc_get_file_size(void __iomem *base, bool support_34bit);
89void mtk_jpeg_enc_start(void __iomem *enc_reg_base);
90void mtk_jpeg_set_enc_src(struct mtk_jpeg_ctx *ctx,  void __iomem *base,
91			  struct vb2_buffer *src_buf);
92void mtk_jpeg_set_enc_dst(struct mtk_jpeg_ctx *ctx, void __iomem *base,
93			  struct vb2_buffer *dst_buf);
94void mtk_jpeg_set_enc_params(struct mtk_jpeg_ctx *ctx,  void __iomem *base);
95
96#endif /* _MTK_JPEG_ENC_HW_H */
~/ Read-only file preview.