1 /* 2 * 3 * SPDX-License-Identifier: GPL-2.0 4 * 5 * Copyright (C) 2011-2018 ARM or its affiliates 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation; version 2. 10 * This program is distributed in the hope that it will be useful, but 11 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 12 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 13 * for more details. 14 * You should have received a copy of the GNU General Public License along 15 * with this program; if not, write to the Free Software Foundation, Inc., 16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 * 18 */ 19 20 #ifndef _FW_INTERFACE_H_ 21 #define _FW_INTERFACE_H_ 22 23 #include <linux/videodev2.h> 24 25 /* fw-interface isp control interface */ 26 int fw_intf_isp_init( uint32_t hw_isp_addr ); 27 int fw_intf_is_isp_started(void); 28 void fw_intf_isp_deinit( void ); 29 int fw_intf_isp_start( void ); 30 void fw_intf_isp_stop( void ); 31 int fw_intf_isp_set_current_ctx_id( uint32_t ctx_id ); 32 int fw_intf_isp_get_current_ctx_id( uint32_t ctx_id ); 33 int fw_intf_isp_get_sensor_info( uint32_t ctx_id, isp_v4l2_sensor_info *sensor_info ); 34 int fw_intf_isp_get_sensor_preset( uint32_t ctx_id ); 35 int fw_intf_isp_set_sensor_preset( uint32_t ctx_id, uint32_t preset ); 36 37 //calibration 38 uint32_t fw_calibration_update( uint32_t ctx_id ); 39 40 /* fw-interface per-stream control interface */ 41 int fw_intf_stream_start( uint32_t ctx_id, isp_v4l2_stream_type_t streamType ); 42 void fw_intf_stream_stop( uint32_t ctx_id, isp_v4l2_stream_type_t streamType, int stream_on_count ); 43 void fw_intf_stream_pause( uint32_t ctx_id, isp_v4l2_stream_type_t streamType, uint8_t bPause ); 44 45 /* fw-interface sensor hw stream control interface */ 46 int fw_intf_sensor_pause( uint32_t ctx_id ); 47 int fw_intf_sensor_resume( uint32_t ctx_id ); 48 49 /* fw-interface per-stream config interface */ 50 int fw_intf_stream_set_resolution( uint32_t ctx_id, const isp_v4l2_sensor_info *sensor_info, 51 isp_v4l2_stream_type_t streamType, uint32_t * width, uint32_t * height ); 52 int fw_intf_stream_set_output_format( uint32_t ctx_id, isp_v4l2_stream_type_t streamType, uint32_t format ); 53 54 /* fw-interface isp config interface */ 55 bool fw_intf_validate_control( uint32_t id ); 56 int fw_intf_set_test_pattern( uint32_t ctx_id, int val ); 57 int fw_intf_set_test_pattern_type( uint32_t ctx_id, int val ); 58 int fw_intf_set_af_refocus( uint32_t ctx_id, int val ); 59 int fw_intf_set_af_roi( uint32_t ctx_id, int val ); 60 int fw_intf_set_brightness( uint32_t ctx_id, int val ); 61 int fw_intf_set_contrast( uint32_t ctx_id, int val ); 62 int fw_intf_set_saturation( uint32_t ctx_id, int val ); 63 int fw_intf_set_hue( uint32_t ctx_id, int val ); 64 int fw_intf_set_sharpness( uint32_t ctx_id, int val ); 65 int fw_intf_set_color_fx( uint32_t ctx_id, int val ); 66 int fw_intf_set_hflip( uint32_t ctx_id, int val ); 67 int fw_intf_set_vflip( uint32_t ctx_id, int val ); 68 int fw_intf_set_autogain( uint32_t ctx_id, int val ); 69 int fw_intf_set_gain( uint32_t ctx_id, int val ); 70 int fw_intf_set_exposure_auto( uint32_t ctx_id, int val ); 71 int fw_intf_get_exposure_auto( uint32_t ctx_id); 72 int fw_intf_set_exposure( uint32_t ctx_id, int val ); 73 int fw_intf_get_exposure( uint32_t ctx_id ); 74 int fw_intf_set_variable_frame_rate( uint32_t ctx_id, int val ); 75 int fw_intf_set_white_balance_auto( uint32_t ctx_id, int val ); 76 int fw_intf_get_white_balance_auto( uint32_t ctx_id ); 77 int fw_intf_set_white_balance( uint32_t ctx_id, int val ); 78 int fw_intf_set_focus_auto( uint32_t ctx_id, int val ); 79 int fw_intf_set_focus( uint32_t ctx_id, int val ); 80 int fw_intf_set_output_fr_on_off( uint32_t ctx_id, uint32_t ctrl_val ); 81 int fw_intf_set_output_ds1_on_off( uint32_t ctx_id, uint32_t ctrl_val ); 82 int fw_intf_set_custom_sensor_wdr_mode( uint32_t ctx_id, uint32_t ctrl_val ); 83 int fw_intf_set_custom_sensor_exposure( uint32_t ctx_id, uint32_t ctrl_val ); 84 int fw_intf_set_custom_sensor_fps( uint32_t ctx_id, uint32_t ctrl_val ); 85 int fw_intf_set_custom_snr_manual(uint32_t ctx_id, uint32_t ctrl_val); 86 int fw_intf_set_custom_snr_strength(uint32_t ctx_id, uint32_t ctrl_val); 87 int fw_intf_set_custom_tnr_manual(uint32_t ctx_id, uint32_t ctrl_val); 88 int fw_intf_set_custom_tnr_offset(uint32_t ctx_id, uint32_t ctrl_val); 89 int fw_intf_set_custom_fr_fps(uint32_t ctx_id, uint32_t ctrl_val); 90 int fw_intf_set_custom_ds1_fps(uint32_t ctx_id, uint32_t ctrl_val); 91 int fw_intf_set_custom_sensor_testpattern(uint32_t ctx_id, uint32_t ctrl_val); 92 int fw_intf_set_customer_sensor_ir_cut(uint32_t ctx_id, uint32_t ctrl_val); 93 int fw_intf_set_customer_ae_zone_weight(uint32_t ctx_id, unsigned long ctrl_val); 94 int fw_intf_set_customer_awb_zone_weight(uint32_t ctx_id, unsigned long ctrl_val); 95 int fw_intf_set_customer_manual_exposure( uint32_t ctx_id, int val ); 96 int fw_intf_set_customer_sensor_integration_time(uint32_t ctx_id, uint32_t ctrl_val); 97 int fw_intf_set_customer_sensor_analog_gain(uint32_t ctx_id, uint32_t ctrl_val); 98 int fw_intf_set_customer_isp_digital_gain(uint32_t ctx_id, uint32_t ctrl_val); 99 int fw_intf_set_customer_stop_sensor_update(uint32_t ctx_id, uint32_t ctrl_val); 100 int fw_intf_set_ae_compensation( uint32_t ctx_id, int val ); 101 int fw_intf_set_customer_sensor_digital_gain(uint32_t ctx_id, uint32_t ctrl_val); 102 int fw_intf_set_customer_awb_red_gain(uint32_t ctx_id, uint32_t ctrl_val); 103 int fw_intf_set_customer_awb_blue_gain(uint32_t ctx_id, uint32_t ctrl_val); 104 int fw_intf_set_customer_max_integration_time(uint32_t ctx_id, uint32_t ctrl_val); 105 int fw_intf_set_customer_temper_mode(uint32_t ctx_id, uint32_t ctrl_val); 106 int fw_intf_set_customer_sensor_mode(uint32_t ctx_id, uint32_t ctrl_val); 107 int fw_intf_get_customer_sensor_mode( uint32_t ctx_id ); 108 int fw_intf_set_customer_antiflicker(uint32_t ctx_id, uint32_t ctrl_val); 109 int fw_intf_get_customer_antiflicker( uint32_t ctx_id ); 110 int fw_intf_get_ae_compensation( uint32_t ctx_id ); 111 int fw_intf_get_custom_snr_manual(uint32_t ctx_id); 112 int fw_intf_get_custom_snr_strength(uint32_t ctx_id); 113 int fw_intf_get_custom_tnr_manual(uint32_t ctx_id); 114 int fw_intf_get_custom_tnr_offset(uint32_t ctx_id); 115 int fw_intf_get_custom_temper_mode(uint32_t ctx_id); 116 int fw_intf_set_customer_defog_mode(uint32_t ctx_id, uint32_t ctrl_val); 117 int fw_intf_set_customer_defog_ratio(uint32_t ctx_id, uint32_t ctrl_val); 118 119 #endif 120