72 lines
		
	
	
	
		
			2.4 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			72 lines
		
	
	
	
		
			2.4 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
|   | /*
 | ||
|  |  * include/media/as3645a.h | ||
|  |  * | ||
|  |  * Copyright (C) 2008-2011 Nokia Corporation | ||
|  |  * | ||
|  |  * Contact: Laurent Pinchart <laurent.pinchart@ideasonboard.com> | ||
|  |  * | ||
|  |  * This program is free software; you can redistribute it and/or | ||
|  |  * modify it under the terms of the GNU General Public License | ||
|  |  * version 2 as published by the Free Software Foundation. | ||
|  |  * | ||
|  |  * This program is distributed in the hope that it will be useful, but | ||
|  |  * WITHOUT ANY WARRANTY; without even the implied warranty of | ||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||
|  |  * General Public License for more details. | ||
|  |  * | ||
|  |  * You should have received a copy of the GNU General Public License | ||
|  |  * along with this program; if not, write to the Free Software | ||
|  |  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA | ||
|  |  * 02110-1301 USA | ||
|  |  * | ||
|  |  */ | ||
|  | 
 | ||
|  | #ifndef __AS3645A_H__
 | ||
|  | #define __AS3645A_H__
 | ||
|  | 
 | ||
|  | #include <media/v4l2-subdev.h>
 | ||
|  | 
 | ||
|  | #define AS3645A_NAME				"as3645a"
 | ||
|  | #define AS3645A_I2C_ADDR			(0x60 >> 1) /* W:0x60, R:0x61 */
 | ||
|  | 
 | ||
|  | #define AS3645A_FLASH_TIMEOUT_MIN		100000	/* us */
 | ||
|  | #define AS3645A_FLASH_TIMEOUT_MAX		850000
 | ||
|  | #define AS3645A_FLASH_TIMEOUT_STEP		50000
 | ||
|  | 
 | ||
|  | #define AS3645A_FLASH_INTENSITY_MIN		200	/* mA */
 | ||
|  | #define AS3645A_FLASH_INTENSITY_MAX_1LED	500
 | ||
|  | #define AS3645A_FLASH_INTENSITY_MAX_2LEDS	400
 | ||
|  | #define AS3645A_FLASH_INTENSITY_STEP		20
 | ||
|  | 
 | ||
|  | #define AS3645A_TORCH_INTENSITY_MIN		20	/* mA */
 | ||
|  | #define AS3645A_TORCH_INTENSITY_MAX		160
 | ||
|  | #define AS3645A_TORCH_INTENSITY_STEP		20
 | ||
|  | 
 | ||
|  | #define AS3645A_INDICATOR_INTENSITY_MIN		0	/* uA */
 | ||
|  | #define AS3645A_INDICATOR_INTENSITY_MAX		10000
 | ||
|  | #define AS3645A_INDICATOR_INTENSITY_STEP	2500
 | ||
|  | 
 | ||
|  | /*
 | ||
|  |  * as3645a_platform_data - Flash controller platform data | ||
|  |  * @set_power:	Set power callback | ||
|  |  * @vref:	VREF offset (0=0V, 1=+0.3V, 2=-0.3V, 3=+0.6V) | ||
|  |  * @peak:	Inductor peak current limit (0=1.25A, 1=1.5A, 2=1.75A, 3=2.0A) | ||
|  |  * @ext_strobe:	True if external flash strobe can be used | ||
|  |  * @flash_max_current:	Max flash current (mA, <= AS3645A_FLASH_INTENSITY_MAX) | ||
|  |  * @torch_max_current:	Max torch current (mA, >= AS3645A_TORCH_INTENSITY_MAX) | ||
|  |  * @timeout_max:	Max flash timeout (us, <= AS3645A_FLASH_TIMEOUT_MAX) | ||
|  |  */ | ||
|  | struct as3645a_platform_data { | ||
|  | 	int (*set_power)(struct v4l2_subdev *subdev, int on); | ||
|  | 	unsigned int vref; | ||
|  | 	unsigned int peak; | ||
|  | 	bool ext_strobe; | ||
|  | 
 | ||
|  | 	/* Flash and torch currents and timeout limits */ | ||
|  | 	unsigned int flash_max_current; | ||
|  | 	unsigned int torch_max_current; | ||
|  | 	unsigned int timeout_max; | ||
|  | }; | ||
|  | 
 | ||
|  | #endif /* __AS3645A_H__ */
 |