Hi,

On  5.06.2016 22:07, Pavel Machek wrote:
Add userspace API definitions.

Signed-off-by: Pavel Machek <pa...@ucw.cz>

diff --git a/include/uapi/linux/v4l2-controls.h 
b/include/uapi/linux/v4l2-controls.h
index b6a357a..23011cc 100644
--- a/include/uapi/linux/v4l2-controls.h
+++ b/include/uapi/linux/v4l2-controls.h
@@ -974,4 +975,9 @@ enum v4l2_detect_md_mode {
  #define V4L2_CID_DETECT_MD_THRESHOLD_GRID     (V4L2_CID_DETECT_CLASS_BASE + 3)
  #define V4L2_CID_DETECT_MD_REGION_GRID                
(V4L2_CID_DETECT_CLASS_BASE + 4)

+/* Control IDs specific to the AD5820 driver as defined by V4L2 */
+#define V4L2_CID_FOCUS_AD5820_BASE     (V4L2_CTRL_CLASS_CAMERA | 0x10af)
+#define V4L2_CID_FOCUS_AD5820_RAMP_TIME        (V4L2_CID_FOCUS_AD5820_BASE+0)
+#define V4L2_CID_FOCUS_AD5820_RAMP_MODE        (V4L2_CID_FOCUS_AD5820_BASE+1)
+
  #endif


Sakari, what about adding those as standard camera controls? It seems ad5820 is not the only VCM driver to implement "antiringing" controls, http://rohmfs.rohm.com/en/products/databook/datasheet/ic/motor/mobile_module/bu64241gwz-e.pdf is another example I found by quick search.

What about:

#define V4L2_CID_FOCUS_STEP_MODE xxx
enum v4l2_cid_focus_step_mode {
V4L2_CID_FOCUS_STEP_MODE_DIRECT,
V4L2_CID_FOCUS_STEP_MODE_LINEAR,
V4L2_CID_FOCUS_STEP_MODE_AUTO
};
#define V4L2_CID_FOCUS_STEP_TIME xxx+1

Also, how the userspace(or the kernel) is notified by v4l that there is an event? The point is - I think it is a good idea to notify when VCM has completed its movement, we can start a timer based on the current position, mode, step time etc and notify after the pre-calculated movement time.

Here ftp://ftp.analog.com/pub/evalcd/AD5820_v1_0/AD5820_Quickstart.pdf can be found the modes/timings description for ad5820 along with the equations needed to calculate timings etc.

Ivo



Reply via email to