Loading Documentation/devicetree/bindings/media/video/msm-cam-cci.txt +739 −335 File changed.Preview size limit exceeded, changes collapsed. Show changes drivers/media/platform/msm/camera/cam_sensor_module/cam_sensor/cam_sensor_core.c +20 −1 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ #include "cam_soc_util.h" #include "cam_trace.h" static void cam_sensor_update_req_mgr( struct cam_sensor_ctrl_t *s_ctrl, struct cam_packet *csl_packet) Loading Loading @@ -962,6 +961,16 @@ int cam_sensor_power_up(struct cam_sensor_ctrl_t *s_ctrl) return -EINVAL; } if (s_ctrl->bob_pwm_switch) { rc = cam_sensor_bob_pwm_mode_switch(soc_info, s_ctrl->bob_reg_index, true); if (rc) { CAM_WARN(CAM_SENSOR, "BoB PWM setup failed rc: %d", rc); rc = 0; } } rc = cam_sensor_core_power_up(power_info, soc_info); if (rc < 0) { CAM_ERR(CAM_SENSOR, "power up the core is failed:%d", rc); Loading Loading @@ -999,6 +1008,16 @@ int cam_sensor_power_down(struct cam_sensor_ctrl_t *s_ctrl) return rc; } if (s_ctrl->bob_pwm_switch) { rc = cam_sensor_bob_pwm_mode_switch(soc_info, s_ctrl->bob_reg_index, false); if (rc) { CAM_WARN(CAM_SENSOR, "BoB PWM setup failed rc: %d", rc); rc = 0; } } camera_io_release(&(s_ctrl->io_master_info)); return rc; Loading drivers/media/platform/msm/camera/cam_sensor_module/cam_sensor/cam_sensor_dev.h +4 −0 Original line number Diff line number Diff line Loading @@ -92,6 +92,8 @@ struct intf_params { * @device_name: Sensor device structure * @streamon_count: Count to hold the number of times stream on called * @streamoff_count: Count to hold the number of times stream off called * @bob_reg_index: Hold to BoB regulator index * @bob_pwm_switch: Boolean flag to switch into PWM mode for BoB regulator */ struct cam_sensor_ctrl_t { struct platform_device *pdev; Loading @@ -113,6 +115,8 @@ struct cam_sensor_ctrl_t { char device_name[20]; uint32_t streamon_count; uint32_t streamoff_count; int bob_reg_index; bool bob_pwm_switch; }; #endif /* _CAM_SENSOR_DEV_H_ */ drivers/media/platform/msm/camera/cam_sensor_module/cam_sensor/cam_sensor_soc.c +29 −1 Original line number Diff line number Diff line /* Copyright (c) 2017, The Linux Foundation. All rights reserved. /* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -104,6 +104,7 @@ int32_t cam_sensor_get_sub_module_index(struct device_node *of_node, static int32_t cam_sensor_driver_get_dt_data(struct cam_sensor_ctrl_t *s_ctrl) { int32_t rc = 0; int i = 0; struct cam_sensor_board_info *sensordata = NULL; struct device_node *of_node = s_ctrl->of_node; struct cam_hw_soc_info *soc_info = &s_ctrl->soc_info; Loading Loading @@ -135,6 +136,33 @@ static int32_t cam_sensor_driver_get_dt_data(struct cam_sensor_ctrl_t *s_ctrl) goto FREE_SENSOR_DATA; } /* Store the index of BoB regulator if it is available */ for (i = 0; i < soc_info->num_rgltr; i++) { if (!strcmp(soc_info->rgltr_name[i], "cam_bob")) { CAM_DBG(CAM_SENSOR, "i: %d cam_bob", i); s_ctrl->bob_reg_index = i; soc_info->rgltr[i] = devm_regulator_get(soc_info->dev, soc_info->rgltr_name[i]); if (IS_ERR_OR_NULL(soc_info->rgltr[i])) { CAM_WARN(CAM_SENSOR, "Regulator: %s get failed", soc_info->rgltr_name[i]); soc_info->rgltr[i] = NULL; } else { if (!of_property_read_bool(of_node, "pwm-switch")) { CAM_DBG(CAM_SENSOR, "No BoB PWM switch param defined"); s_ctrl->bob_pwm_switch = false; } else { s_ctrl->bob_pwm_switch = true; } } } } /* Read subdev info */ rc = cam_sensor_get_sub_module_index(of_node, sensordata); if (rc < 0) { Loading drivers/media/platform/msm/camera/cam_sensor_module/cam_sensor_utils/cam_sensor_util.c +18 −0 Original line number Diff line number Diff line Loading @@ -1218,6 +1218,24 @@ int msm_camera_pinctrl_init( return 0; } int cam_sensor_bob_pwm_mode_switch(struct cam_hw_soc_info *soc_info, int bob_reg_idx, bool flag) { int rc = 0; uint32_t op_current = (flag == true) ? soc_info->rgltr_op_mode[bob_reg_idx] : 0; if (soc_info->rgltr[bob_reg_idx] != NULL) { rc = regulator_set_load(soc_info->rgltr[bob_reg_idx], op_current); if (rc) CAM_WARN(CAM_SENSOR, "BoB PWM SetLoad failed rc: %d", rc); } return rc; } int msm_cam_sensor_handle_reg_gpio(int seq_type, struct msm_camera_gpio_num_info *gpio_num_info, int val) { Loading Loading
Documentation/devicetree/bindings/media/video/msm-cam-cci.txt +739 −335 File changed.Preview size limit exceeded, changes collapsed. Show changes
drivers/media/platform/msm/camera/cam_sensor_module/cam_sensor/cam_sensor_core.c +20 −1 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ #include "cam_soc_util.h" #include "cam_trace.h" static void cam_sensor_update_req_mgr( struct cam_sensor_ctrl_t *s_ctrl, struct cam_packet *csl_packet) Loading Loading @@ -962,6 +961,16 @@ int cam_sensor_power_up(struct cam_sensor_ctrl_t *s_ctrl) return -EINVAL; } if (s_ctrl->bob_pwm_switch) { rc = cam_sensor_bob_pwm_mode_switch(soc_info, s_ctrl->bob_reg_index, true); if (rc) { CAM_WARN(CAM_SENSOR, "BoB PWM setup failed rc: %d", rc); rc = 0; } } rc = cam_sensor_core_power_up(power_info, soc_info); if (rc < 0) { CAM_ERR(CAM_SENSOR, "power up the core is failed:%d", rc); Loading Loading @@ -999,6 +1008,16 @@ int cam_sensor_power_down(struct cam_sensor_ctrl_t *s_ctrl) return rc; } if (s_ctrl->bob_pwm_switch) { rc = cam_sensor_bob_pwm_mode_switch(soc_info, s_ctrl->bob_reg_index, false); if (rc) { CAM_WARN(CAM_SENSOR, "BoB PWM setup failed rc: %d", rc); rc = 0; } } camera_io_release(&(s_ctrl->io_master_info)); return rc; Loading
drivers/media/platform/msm/camera/cam_sensor_module/cam_sensor/cam_sensor_dev.h +4 −0 Original line number Diff line number Diff line Loading @@ -92,6 +92,8 @@ struct intf_params { * @device_name: Sensor device structure * @streamon_count: Count to hold the number of times stream on called * @streamoff_count: Count to hold the number of times stream off called * @bob_reg_index: Hold to BoB regulator index * @bob_pwm_switch: Boolean flag to switch into PWM mode for BoB regulator */ struct cam_sensor_ctrl_t { struct platform_device *pdev; Loading @@ -113,6 +115,8 @@ struct cam_sensor_ctrl_t { char device_name[20]; uint32_t streamon_count; uint32_t streamoff_count; int bob_reg_index; bool bob_pwm_switch; }; #endif /* _CAM_SENSOR_DEV_H_ */
drivers/media/platform/msm/camera/cam_sensor_module/cam_sensor/cam_sensor_soc.c +29 −1 Original line number Diff line number Diff line /* Copyright (c) 2017, The Linux Foundation. All rights reserved. /* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -104,6 +104,7 @@ int32_t cam_sensor_get_sub_module_index(struct device_node *of_node, static int32_t cam_sensor_driver_get_dt_data(struct cam_sensor_ctrl_t *s_ctrl) { int32_t rc = 0; int i = 0; struct cam_sensor_board_info *sensordata = NULL; struct device_node *of_node = s_ctrl->of_node; struct cam_hw_soc_info *soc_info = &s_ctrl->soc_info; Loading Loading @@ -135,6 +136,33 @@ static int32_t cam_sensor_driver_get_dt_data(struct cam_sensor_ctrl_t *s_ctrl) goto FREE_SENSOR_DATA; } /* Store the index of BoB regulator if it is available */ for (i = 0; i < soc_info->num_rgltr; i++) { if (!strcmp(soc_info->rgltr_name[i], "cam_bob")) { CAM_DBG(CAM_SENSOR, "i: %d cam_bob", i); s_ctrl->bob_reg_index = i; soc_info->rgltr[i] = devm_regulator_get(soc_info->dev, soc_info->rgltr_name[i]); if (IS_ERR_OR_NULL(soc_info->rgltr[i])) { CAM_WARN(CAM_SENSOR, "Regulator: %s get failed", soc_info->rgltr_name[i]); soc_info->rgltr[i] = NULL; } else { if (!of_property_read_bool(of_node, "pwm-switch")) { CAM_DBG(CAM_SENSOR, "No BoB PWM switch param defined"); s_ctrl->bob_pwm_switch = false; } else { s_ctrl->bob_pwm_switch = true; } } } } /* Read subdev info */ rc = cam_sensor_get_sub_module_index(of_node, sensordata); if (rc < 0) { Loading
drivers/media/platform/msm/camera/cam_sensor_module/cam_sensor_utils/cam_sensor_util.c +18 −0 Original line number Diff line number Diff line Loading @@ -1218,6 +1218,24 @@ int msm_camera_pinctrl_init( return 0; } int cam_sensor_bob_pwm_mode_switch(struct cam_hw_soc_info *soc_info, int bob_reg_idx, bool flag) { int rc = 0; uint32_t op_current = (flag == true) ? soc_info->rgltr_op_mode[bob_reg_idx] : 0; if (soc_info->rgltr[bob_reg_idx] != NULL) { rc = regulator_set_load(soc_info->rgltr[bob_reg_idx], op_current); if (rc) CAM_WARN(CAM_SENSOR, "BoB PWM SetLoad failed rc: %d", rc); } return rc; } int msm_cam_sensor_handle_reg_gpio(int seq_type, struct msm_camera_gpio_num_info *gpio_num_info, int val) { Loading