13d0407baSopenharmony_ci/* SPDX-License-Identifier: ((GPL-2.0+ WITH Linux-syscall-note) OR MIT) 23d0407baSopenharmony_ci * 33d0407baSopenharmony_ci * Copyright (C) 2019 Rockchip Electronics Co., Ltd. 43d0407baSopenharmony_ci */ 53d0407baSopenharmony_ci 63d0407baSopenharmony_ci#ifndef _UAPI_RKCIF_CONFIG_H 73d0407baSopenharmony_ci#define _UAPI_RKCIF_CONFIG_H 83d0407baSopenharmony_ci 93d0407baSopenharmony_ci#include <linux/types.h> 103d0407baSopenharmony_ci#include <linux/v4l2-controls.h> 113d0407baSopenharmony_ci 123d0407baSopenharmony_ci#define RKCIF_API_VERSION KERNEL_VERSION(0, 1, 0xa) 133d0407baSopenharmony_ci 143d0407baSopenharmony_ci#define RKCIF_CMD_GET_CSI_MEMORY_MODE _IOR('V', BASE_VIDIOC_PRIVATE + 0, int) 153d0407baSopenharmony_ci 163d0407baSopenharmony_ci#define RKCIF_CMD_SET_CSI_MEMORY_MODE _IOW('V', BASE_VIDIOC_PRIVATE + 1, int) 173d0407baSopenharmony_ci 183d0407baSopenharmony_ci#define RKCIF_CMD_GET_SCALE_BLC _IOR('V', BASE_VIDIOC_PRIVATE + 2, struct bayer_blc) 193d0407baSopenharmony_ci 203d0407baSopenharmony_ci#define RKCIF_CMD_SET_SCALE_BLC _IOW('V', BASE_VIDIOC_PRIVATE + 3, struct bayer_blc) 213d0407baSopenharmony_ci 223d0407baSopenharmony_ci/* cif memory mode 233d0407baSopenharmony_ci * 0: raw12/raw10/raw8 8bit memory compact 243d0407baSopenharmony_ci * 1: raw12/raw10 16bit memory one pixel 253d0407baSopenharmony_ci * low align for rv1126/rv1109/rk356x 263d0407baSopenharmony_ci * |15|14|13|12|11|10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0| 273d0407baSopenharmony_ci * | -| -| -| -|11|10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0| 283d0407baSopenharmony_ci * 2: raw12/raw10 16bit memory one pixel 293d0407baSopenharmony_ci * high align for rv1126/rv1109/rk356x 303d0407baSopenharmony_ci * |15|14|13|12|11|10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0| 313d0407baSopenharmony_ci * |11|10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0| -| -| -| -| 323d0407baSopenharmony_ci * 333d0407baSopenharmony_ci * note: rv1109/rv1126/rk356x dvp only support uncompact mode, 343d0407baSopenharmony_ci * and can be set low align or high align 353d0407baSopenharmony_ci */ 363d0407baSopenharmony_ci 373d0407baSopenharmony_cienum cif_csi_lvds_memory { 383d0407baSopenharmony_ci CSI_LVDS_MEM_COMPACT = 0, 393d0407baSopenharmony_ci CSI_LVDS_MEM_WORD_LOW_ALIGN = 1, 403d0407baSopenharmony_ci CSI_LVDS_MEM_WORD_HIGH_ALIGN = 2, 413d0407baSopenharmony_ci}; 423d0407baSopenharmony_ci 433d0407baSopenharmony_ci/* black level for scale image 443d0407baSopenharmony_ci * The sequence of pattern00~03 is the same as the output of sensor bayer 453d0407baSopenharmony_ci */ 463d0407baSopenharmony_ci 473d0407baSopenharmony_cistruct bayer_blc { 483d0407baSopenharmony_ci u8 pattern00; 493d0407baSopenharmony_ci u8 pattern01; 503d0407baSopenharmony_ci u8 pattern02; 513d0407baSopenharmony_ci u8 pattern03; 523d0407baSopenharmony_ci}; 533d0407baSopenharmony_ci#endif 54