From 32cd564e000edb12f7a90ab6480e49d597c0e5df Mon Sep 17 00:00:00 2001 From: Yifei Li Date: Wed, 6 Aug 2025 19:37:42 +0800 Subject: [PATCH] Release QLI1.5 Signed-off-by: Yifei Li --- rubikpi3/rubikpi3-camera.dtsi | 221 +++++++++++++++++++++++----------- 1 file changed, 152 insertions(+), 69 deletions(-) diff --git a/rubikpi3/rubikpi3-camera.dtsi b/rubikpi3/rubikpi3-camera.dtsi index 518d371..0367019 100644 --- a/rubikpi3/rubikpi3-camera.dtsi +++ b/rubikpi3/rubikpi3-camera.dtsi @@ -33,6 +33,14 @@ qcom,cam-res-mgr { status = "ok"; compatible = "qcom,cam-res-mgr"; + + gpios-shared-pinctrl = <599 543>; + shared-pctrl-gpio-names = "cam_sensor_mclk0", "cam_sensor_rst5"; + pinctrl-names = "cam_sensor_mclk0_active", "cam_sensor_mclk0_suspend","cam_sensor_rst5_active","cam_sensor_rst5_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend>; + pinctrl-2 = <&cam_sensor_rst5_active>; + pinctrl-3 = <&cam_sensor_rst5_suspend>; }; }; @@ -207,6 +215,35 @@ output-low; }; }; + + cam_sensor_rst5_active: cam_sensor_rst5_active { + /* RESET 5 */ + mux { + pins = "gpio8"; + function = "gpio"; + }; + + config { + pins = "gpio8"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_rst5_suspend: cam_sensor_rst5_suspend { + /* RESET 5 */ + mux { + pins = "gpio8"; + function = "gpio"; + }; + + config { + pins = "gpio8"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; }; &soc { @@ -234,41 +271,6 @@ qcom,cam-sensor1 { status = "disabled"; }; - //camera2 - qcom,cam-sensor6 { - cell-index = <0>; - compatible = "qcom,cam-sensor"; - csiphy-sd-index = <4>; - sensor-position-roll = <0>; - sensor-position-pitch = <0>; - sensor-position-yaw = <0>; - cam_vio-supply = <&camera2_vio_ldo>; - regulator-names = "cam_vio"; - power-domains = <&camcc CAM_CC_TITAN_TOP_GDSC>; - rgltr-cntrl-support; - rgltr-min-voltage = <1800000>; - rgltr-max-voltage = <1800000>; - rgltr-load-current = <120000>; - gpio-no-mux = <0>; - pinctrl-names = "cam_default", "cam_suspend"; - pinctrl-0 = <&cam_sensor_mclk2_active - &cam_sensor_active_rst2>; - pinctrl-1 = <&cam_sensor_mclk2_suspend - &cam_sensor_suspend_rst2>; - gpios = <&tlmm 66 0>, - <&tlmm 58 0>; - gpio-reset = <1>; - gpio-req-tbl-num = <0 1>; - gpio-req-tbl-flags = <1 0>; - gpio-req-tbl-label = "CAMIF_MCLK2", - "CAM_RESET2"; - cci-master = <0>; - status = "ok"; - clocks = <&camcc CAM_CC_MCLK2_CLK>; - clock-names = "cam_clk"; - clock-cntl-level = "nominal"; - clock-rates = <24000000>; - }; qcom,eeprom4 { status = "disabled"; @@ -303,41 +305,122 @@ qcom,cam-sensor4 { status = "disabled"; }; - //camera1 - qcom,cam-sensor7 { - cell-index = <7>; - compatible = "qcom,cam-sensor"; - csiphy-sd-index = <1>; - sensor-position-roll = <0>; - sensor-position-pitch = <0>; - sensor-position-yaw = <0>; - cam_vio-supply = <&camera1_vio_ldo>; - regulator-names = "cam_vio"; - power-domains = <&camcc CAM_CC_TITAN_TOP_GDSC>; - rgltr-cntrl-support; - rgltr-min-voltage = <1800000>; - rgltr-max-voltage = <1800000>; - rgltr-load-current = <120000>; - gpio-no-mux = <0>; - pinctrl-names = "cam_default", "cam_suspend"; - pinctrl-0 = <&cam_sensor_mclk0_active - &cam_sensor_active_rst4>; - pinctrl-1 = <&cam_sensor_mclk0_suspend - &cam_sensor_suspend_rst4>; - gpios = <&tlmm 64 0>, - <&tlmm 57 0>; - gpio-reset = <1>; - gpio-req-tbl-num = <0 1>; - gpio-req-tbl-flags = <1 0>; - gpio-req-tbl-label = "CAMIF_MCLK0", - "CAM_RESET4"; - cci-master = <0>; + }; + + geniqup@9c0000 { + i2c@984000 { + clock-frequency = <400000>; status = "ok"; - clocks = <&camcc CAM_CC_MCLK0_CLK>; - clock-names = "cam_clk"; - clock-cntl-level = "nominal"; - clock-rates = <24000000>; + + // camera1 + eeprom_cam7: qcom,eeprom7 { + cell-index = <7>; + reg = <0x50>; + compatible = "msm_eeprom"; + power-domains = <&camcc CAM_CC_TITAN_TOP_GDSC>; + rgltr-cntrl-support; + cam_vio-supply = <&camera1_vio_ldo>; + regulator-names = "cam_vio"; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <120000>; + pwm-switch; + + status = "ok"; + }; + + qcom,cam-sensor7 { + cell-index = <7>; + compatible = "i2c_camera"; + + reg = <0x70>; + csiphy-sd-index = <1>; + eeprom-src = <&eeprom_cam7>; + + status = "ok"; + + sensor-position-roll = <0>; + sensor-position-pitch = <0>; + sensor-position-yaw = <0>; + + power-domains = <&camcc CAM_CC_TITAN_TOP_GDSC>; + + cam_vio-supply = <&camera1_vio_ldo>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <120000>; + + gpio-no-mux = <0>; + gpios = <&tlmm 64 0>, + <&tlmm 8 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "cam_sensor_mclk0", + "cam_sensor_rst5"; + + clocks = <&camcc CAM_CC_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <24000000>; + }; + + // camera2 + eeprom_cam6: qcom,eeprom6 { + cell-index = <6>; + reg = <0x51>; + compatible = "msm_eeprom"; + power-domains = <&camcc CAM_CC_TITAN_TOP_GDSC>; + rgltr-cntrl-support; + cam_vio-supply = <&camera2_vio_ldo>; + regulator-names = "cam_vio"; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <120000>; + pwm-switch; + + status = "ok"; + }; + + qcom,cam-sensor6 { + cell-index = <0>; + compatible = "i2c_camera"; + + reg = <0x71>; + csiphy-sd-index = <4>; + eeprom-src = <&eeprom_cam6>; + + status = "ok"; + + sensor-position-roll = <0>; + sensor-position-pitch = <0>; + sensor-position-yaw = <0>; + + power-domains = <&camcc CAM_CC_TITAN_TOP_GDSC>; + + cam_vio-supply = <&camera2_vio_ldo>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <120000>; + + gpio-no-mux = <0>; + gpios = <&tlmm 64 0>, + <&tlmm 8 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "cam_sensor_mclk0", + "cam_sensor_rst5"; + + clocks = <&camcc CAM_CC_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <24000000>; + }; }; }; }; -