diff --git a/config/parrot.mk b/config/parrot.mk index e00b3aa8..aa0f293a 100644 --- a/config/parrot.mk +++ b/config/parrot.mk @@ -4,3 +4,4 @@ dtbo-$(CONFIG_ARCH_PARROT) += parrot-camera-sensor-qrd.dtbo dtbo-$(CONFIG_ARCH_RAVELIN) := raveline-camera.dtbo dtbo-$(CONFIG_ARCH_RAVELIN) += raveline-camera-sensor-idp.dtbo +dtbo-$(CONFIG_ARCH_RAVELIN) += raveline-camera-sensor-qrd.dtbo diff --git a/raveline-camera-sensor-qrd.dts b/raveline-camera-sensor-qrd.dts new file mode 100644 index 00000000..2ad009e8 --- /dev/null +++ b/raveline-camera-sensor-qrd.dts @@ -0,0 +1,16 @@ +/dts-v1/; +/plugin/; + +#include +#include +#include +#include +#include + +#include "raveline-camera-sensor-qrd.dtsi" +/ { + model = "Qualcomm Technologies, Inc. Raveline QRD"; + compatible = "qcom,raveline"; + qcom,msm-id = <568 0x10000>; + qcom,board-id = <0x1000B 0>, <0x1000B 1>; +}; \ No newline at end of file diff --git a/raveline-camera-sensor-qrd.dtsi b/raveline-camera-sensor-qrd.dtsi new file mode 100644 index 00000000..13a9e8a9 --- /dev/null +++ b/raveline-camera-sensor-qrd.dtsi @@ -0,0 +1,445 @@ +#include +#include + +&soc { + qcom,cam-res-mgr { + compatible = "qcom,cam-res-mgr"; + status = "ok"; + }; +}; + +&cam_cci0 { + actuator_triple_uw: qcom,actuator0 { + cell-index = <0>; + compatible = "qcom,actuator"; + cci-master = ; + cam_vaf-supply = <&L7M>; + regulator-names = "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <2704000>; + rgltr-max-voltage = <2950000>; + rgltr-load-current = <103000>; + }; + + eeprom_triple_uw: qcom,eeprom0 { + cell-index = <0>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&L3N>; + cam_vana-supply = <&L6M>; + cam_vdig-supply = <&L2M>; + cam_clk-supply = <&cam_cc_camss_top_gdsc>; + cam_vaf-supply = <&L7M>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk", "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <1808000 2704000 952000 0 2704000>; + rgltr-max-voltage = <3312000 3000000 1150000 0 2950000>; + rgltr-load-current = <20000 90000 550000 0 103000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active + &cam_sensor_active_rst0>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_sensor_suspend_rst0>; + gpios = <&tlmm 36 0>, + <&tlmm 40 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0"; + cci-master = ; + clocks = <&camcc CAM_CC_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <24000000>; + status = "ok"; + }; + + actuator_triple_wide: qcom,actuator2 { + cell-index = <2>; + compatible = "qcom,actuator"; + cci-master = ; + cam_vaf-supply = <&L7M>; + regulator-names = "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <2704000>; + rgltr-max-voltage = <2950000>; + rgltr-load-current = <103000>; + }; + + eeprom_triple_wide: qcom,eeprom2 { + cell-index = <2>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&L3N>; + cam_vana-supply = <&L3M>; + cam_v_custom1-supply = <&L4N>; + cam_vdig-supply = <&L1M>; + cam_clk-supply = <&cam_cc_camss_top_gdsc>; + cam_vaf-supply = <&L7M>; + regulator-names = "cam_vio", "cam_vana", "cam_v_custom1", + "cam_vdig", "cam_clk", "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <1808000 2904000 1800000 1104000 0 2704000>; + rgltr-max-voltage = <3312000 3000000 1900000 1200000 0 2950000>; + rgltr-load-current = <4000 96000 88000 872000 0 103000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_active_rst1>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_suspend_rst1>; + gpios = <&tlmm 37 0>, + <&tlmm 41 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET1"; + cci-master = ; + clocks = <&camcc CAM_CC_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <24000000>; + status = "ok"; + }; + + qcom,cam-sensor0 { + cell-index = <6>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <0>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + eeprom-src = <&eeprom_triple_uw>; + actuator-src = <&actuator_triple_uw>; + cam_vio-supply = <&L3N>; + cam_vana-supply = <&L6M>; + cam_vdig-supply = <&L2M>; + cam_vaf-supply = <&L7M>; + cam_clk-supply = <&cam_cc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_vaf", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1808000 2704000 952000 2704000 0>; + rgltr-max-voltage = <3312000 3000000 1150000 2950000 0>; + rgltr-load-current = <20000 90000 550000 103000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active + &cam_sensor_active_rst0>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_sensor_suspend_rst0>; + gpios = <&tlmm 36 0>, + <&tlmm 40 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0"; + cci-master = ; + clocks = <&camcc CAM_CC_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <24000000>; + status = "ok"; + }; + + qcom,cam-sensor2 { + cell-index = <4>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <1>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + actuator-src = <&actuator_triple_wide>; + eeprom-src = <&eeprom_triple_wide>; + cam_vio-supply = <&L3N>; + cam_vana-supply = <&L3M>; + cam_v_custom1-supply = <&L4N>; + cam_vdig-supply = <&L1M>; + cam_vaf-supply = <&L7M>; + cam_clk-supply = <&cam_cc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_v_custom1", + "cam_vdig", "cam_vaf", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1808000 2904000 1800000 1104000 2704000 0>; + rgltr-max-voltage = <3312000 2800000 1900000 1200000 2950000 0>; + rgltr-load-current = <4000 96000 88000 872000 103000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_active_rst1>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_suspend_rst1>; + gpios = <&tlmm 37 0>, + <&tlmm 41 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET1"; + cci-master = ; + clocks = <&camcc CAM_CC_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <24000000>; + status = "ok"; + }; + + qcom,cam-sensor8 { + cell-index = <8>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <1>; + hw-no-ops; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + cam_vio-supply = <&L3N>; + cam_vana-supply = <&L3M>; + cam_v_custom1-supply = <&L4N>; + cam_vdig-supply = <&L1M>; + cam_vaf-supply = <&L7M>; + cam_clk-supply = <&cam_cc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_v_custom1", + "cam_vdig", "cam_vaf", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1808000 2904000 1800000 1104000 2704000 0>; + rgltr-max-voltage = <1808000 3000000 1888000 1200000 3000000 0>; + rgltr-load-current = <4000 96000 88000 872000 103000 0>; + 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 41 0>, + <&tlmm 46 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 = ; + clocks = <&camcc CAM_CC_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <24000000>; + status = "ok"; + }; + + qcom,cam-sensor7 { + cell-index = <7>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <1>; + hw-no-ops; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + cam_vio-supply = <&L3N>; + cam_vana-supply = <&L3M>; + cam_v_custom1-supply = <&L4N>; + cam_vdig-supply = <&L1M>; + cam_vaf-supply = <&L7M>; + cam_clk-supply = <&cam_cc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_v_custom1", + "cam_vdig", "cam_vaf", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1808000 2904000 1800000 1104000 2704000 0>; + rgltr-max-voltage = <1808000 3000000 1888000 1200000 3000000 0>; + rgltr-load-current = <4000 96000 88000 872000 103000 0>; + 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 41 0>, + <&tlmm 46 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 = ; + clocks = <&camcc CAM_CC_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <24000000>; + status = "ok"; + }; + +}; + +&cam_cci1 { + actuator_triple_tele: qcom,actuator1 { + cell-index = <1>; + compatible = "qcom,actuator"; + cci-master = ; + cam_vaf-supply = <&L7M>; + regulator-names = "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <2704000>; + rgltr-max-voltage = <2950000>; + rgltr-load-current = <103000>; + }; + + eeprom_triple_tele: qcom,eeprom1 { + cell-index = <1>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&L3N>; + cam_vana-supply = <&L4M>; + cam_vdig-supply = <&L2M>; + cam_clk-supply = <&cam_cc_camss_top_gdsc>; + cam_vaf-supply = <&L7M>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk", "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <1808000 2800000 1050000 0 2704000>; + rgltr-max-voltage = <3312000 2900000 1150000 0 2950000>; + rgltr-load-current = <10000 52000 140000 0 103000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk3_active + &cam_sensor_active_rst3>; + pinctrl-1 = <&cam_sensor_mclk3_suspend + &cam_sensor_suspend_rst3>; + gpios = <&tlmm 39 0>, + <&tlmm 43 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK3", + "CAM_RESET3"; + cci-master = ; + clocks = <&camcc CAM_CC_MCLK3_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <24000000>; + status = "ok"; + }; + + eeprom_front: qcom,eeprom3 { + cell-index = <3>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&L3N>; + cam_vana-supply = <&L6N>; + cam_vdig-supply = <&L1N>; + cam_clk-supply = <&cam_cc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1808000 2704000 952000 0>; + rgltr-max-voltage = <3312000 3000000 1150000 0>; + rgltr-load-current = <20000 90000 550000 0>; + 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 38 0>, + <&tlmm 42 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 = ; + clocks = <&camcc CAM_CC_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <24000000>; + status = "ok"; + }; + + qcom,cam-sensor1 { + cell-index = <5>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <2>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + eeprom-src = <&eeprom_triple_tele>; + actuator-src = <&actuator_triple_tele>; + cam_vio-supply = <&L3N>; + cam_vana-supply = <&L4M>; + cam_vdig-supply = <&L2M>; + cam_vaf-supply = <&L7M>; + cam_clk-supply = <&cam_cc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_vaf", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1808000 2800000 1050000 2704000 0>; + rgltr-max-voltage = <3312000 2900000 1150000 2950000 0>; + rgltr-load-current = <10000 52000 140000 103000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk3_active + &cam_sensor_active_rst3 + &cam_sensor_csi_mux_sel_active>; + pinctrl-1 = <&cam_sensor_mclk3_suspend + &cam_sensor_suspend_rst3 + &cam_sensor_csi_mux_sel_suspend>; + gpios = <&tlmm 39 0>, + <&tlmm 43 0>, + <&tlmm 106 0>; + gpio-reset = <1>; + gpio-custom1 = <2>; + gpio-req-tbl-num = <0 1 2>; + gpio-req-tbl-flags = <1 0 0>; + gpio-req-tbl-label = "CAMIF_MCLK3", + "CAM_RESET3", + "CAM_CSIMUX_SEL"; + cci-master = ; + clocks = <&camcc CAM_CC_MCLK3_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <24000000>; + status = "ok"; + }; + + qcom,cam-sensor3 { + cell-index = <2>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <2>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <0>; + eeprom-src = <&eeprom_front>; + cam_vio-supply = <&L3N>; + cam_vana-supply = <&L6N>; + cam_vdig-supply = <&L1N>; + cam_clk-supply = <&cam_cc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1808000 2704000 952000 0>; + rgltr-max-voltage = <3312000 3000000 1150000 0>; + rgltr-load-current = <20000 90000 550000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active + &cam_sensor_active_rst2 + &cam_sensor_csi_mux_sel_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend + &cam_sensor_suspend_rst2 + &cam_sensor_csi_mux_sel_suspend>; + gpios = <&tlmm 38 0>, + <&tlmm 42 0>, + <&tlmm 106 0>; + gpio-reset = <1>; + gpio-custom1 = <2>; + gpio-req-tbl-num = <0 1 2>; + gpio-req-tbl-flags = <1 0 1>; + gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET2", + "CAM_CSIMUX_SEL"; + cci-master = ; + clocks = <&camcc CAM_CC_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <24000000>; + status = "ok"; + }; +};