Lines Matching refs:motor

53 static int motor_dev_parse_dt(struct motor_dev *motor)  in motor_dev_parse_dt()  argument
55 struct device_node *node = motor->dev->of_node; in motor_dev_parse_dt()
59 motor->pwm = devm_pwm_get(motor->dev, NULL); in motor_dev_parse_dt()
60 if (IS_ERR(motor->pwm)) { in motor_dev_parse_dt()
61 error = PTR_ERR(motor->pwm); in motor_dev_parse_dt()
63 dev_err(motor->dev, "Failed to request PWM device: %d\n", error); in motor_dev_parse_dt()
66 if (motor->pwm && motor->pwm->args.period != 0) { in motor_dev_parse_dt()
67 motor->pwm_state.period = motor->pwm->args.period; in motor_dev_parse_dt()
68 motor->pwm_state.polarity = motor->pwm->args.polarity; in motor_dev_parse_dt()
70 motor->pwm_state.period = PWM_PERIOD_DEF; in motor_dev_parse_dt()
71 motor->pwm_state.polarity = 0; in motor_dev_parse_dt()
74 &motor->module_index); in motor_dev_parse_dt()
76 &motor->module_facing); in motor_dev_parse_dt()
78 dev_err(motor->dev, in motor_dev_parse_dt()
88 struct motor_dev *motor = container_of(ctrl->handler, in motor_s_ctrl() local
93 motor->pwm_state.enabled = true; in motor_s_ctrl()
94 motor->pwm_state.duty_cycle = in motor_s_ctrl()
95 div64_u64((u64)motor->pwm_state.period * ctrl->val, IRIS_MAX_LOG); in motor_s_ctrl()
96 pwm_apply_state(motor->pwm, &motor->pwm_state); in motor_s_ctrl()
97 dev_dbg(motor->dev, "iris, ctrl->val %d, pwm duty %lld, period %lld, polarity %d\n", in motor_s_ctrl()
99 motor->pwm_state.duty_cycle, in motor_s_ctrl()
100 motor->pwm_state.period, in motor_s_ctrl()
101 motor->pwm_state.polarity); in motor_s_ctrl()
104 dev_err(motor->dev, "not support cmd %d\n", ctrl->id); in motor_s_ctrl()
127 static int motor_initialize_controls(struct motor_dev *motor) in motor_initialize_controls() argument
132 handler = &motor->ctrl_handler; in motor_initialize_controls()
136 handler->lock = &motor->mutex; in motor_initialize_controls()
142 dev_err(motor->dev, in motor_initialize_controls()
147 motor->sd.ctrl_handler = handler; in motor_initialize_controls()
159 struct motor_dev *motor; in motor_dev_probe() local
167 motor = devm_kzalloc(&pdev->dev, sizeof(*motor), GFP_KERNEL); in motor_dev_probe()
168 if (!motor) in motor_dev_probe()
170 motor->dev = &pdev->dev; in motor_dev_probe()
171 dev_set_name(motor->dev, "motor"); in motor_dev_probe()
172 dev_set_drvdata(motor->dev, motor); in motor_dev_probe()
173 if (motor_dev_parse_dt(motor)) { in motor_dev_probe()
174 dev_err(motor->dev, "parse dt error\n"); in motor_dev_probe()
177 mutex_init(&motor->mutex); in motor_dev_probe()
178 v4l2_subdev_init(&motor->sd, &motor_subdev_ops); in motor_dev_probe()
179 motor->sd.owner = pdev->dev.driver->owner; in motor_dev_probe()
180 motor->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE; in motor_dev_probe()
181 motor->sd.dev = &pdev->dev; in motor_dev_probe()
182 v4l2_set_subdevdata(&motor->sd, pdev); in motor_dev_probe()
183 platform_set_drvdata(pdev, &motor->sd); in motor_dev_probe()
184 motor_initialize_controls(motor); in motor_dev_probe()
187 ret = media_entity_pads_init(&motor->sd.entity, 0, NULL); in motor_dev_probe()
190 sd = &motor->sd; in motor_dev_probe()
195 if (strcmp(motor->module_facing, "back") == 0) in motor_dev_probe()
200 motor->module_index, facing, in motor_dev_probe()
206 dev_info(motor->dev, "gpio motor driver probe success\n"); in motor_dev_probe()
209 v4l2_ctrl_handler_free(&motor->ctrl_handler); in motor_dev_probe()
210 v4l2_device_unregister_subdev(&motor->sd); in motor_dev_probe()
211 media_entity_cleanup(&motor->sd.entity); in motor_dev_probe()
218 struct motor_dev *motor; in motor_dev_remove() local
221 motor = v4l2_get_subdevdata(sd); in motor_dev_remove()
226 v4l2_ctrl_handler_free(&motor->ctrl_handler); in motor_dev_remove()
227 media_entity_cleanup(&motor->sd.entity); in motor_dev_remove()