cam: Add actuator standalone diver for berlin

-To eliminate the resonance noise during system vibrator vibrating, set actuator to
specified DAC position(480 on GT9772), then the resonance noise can be obviously improved.
To achieve the conbination between vibrator and camera AF actuator,we implemnte:
- Actuator separately control during camera power off.
- Actuator policy to avoid vibrating disturb normal camera AF.
- reinitialize when the safe_pos parameter is manually configured.

Change-Id: I8f674eb441e8382f4de77acbca27179f8302139e
Signed-off-by: wangshuo18 <wangshuo18@lenovo.com>
Reviewed-on: https://gerrit.mot.com/1928778
Reviewed-by: Shuo Wang <wangsh18@motorola.com>
Tested-by: Jira Key
Reviewed-by: Long Cheng <chengl1@motorola.com>
SME-Granted: SME Approvals Granted
SLTApproved: Slta Waiver
Reviewed-by: Zhenxin Xi <xizx@motorola.com>
Submit-Approved: Jira Key
This commit is contained in:
wangshuo18 2021-04-21 11:25:02 +08:00 • committed by zhaoji1
commit b7b5e8bc55

View file

@ -51,6 +51,7 @@ typedef enum {
typedef enum {
MOT_DEVICE_NIO,
MOT_DEVICE_BERLNA,
MOT_DEVICE_BERLIN,
MOT_DEVICE_NUM,
} mot_dev_type;
@ -207,6 +208,23 @@ static const mot_dev_info mot_dev_list[MOT_DEVICE_NUM] = {
},
},
},
{
.dev_type = MOT_DEVICE_BERLIN,
.actuator_num = 1,
.dev_name = "berlin",
.actuator_info = {
[0] = {
.actuator_type = MOT_ACTUATOR_GT9772,
.dac_pos = 480,
.cci_addr = 0x0c,
.cci_dev = 0x01,
.cci_master = 0x1,
.regulator_list = {"ldo7", "ldo5"},
.regulator_volt_uv = {1800000, 2800000},
.park_lens_needed = true,
},
},
},
};
static uint32_t mot_device_index = MOT_DEVICE_NUM;
@ -881,7 +899,8 @@ static ssize_t mot_actuator_safe_pos_store(struct device *dev,
}
lens_safe_pos_dac = input;
//reinitialize when the safe_pos parameter is manually configured.
runtime_inited = false;
retval = count;
exit:
return retval;