• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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