Add and configure the necessary nodes to enable the front camera
(Samsung S5KJN1), connected to CSIPHY 3.

Signed-off-by: Luca Weiss <[email protected]>
---
 arch/arm64/boot/dts/qcom/qcm6490-fairphone-fp5.dts | 54 +++++++++++++++++++++-
 1 file changed, 53 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/qcm6490-fairphone-fp5.dts 
b/arch/arm64/boot/dts/qcom/qcm6490-fairphone-fp5.dts
index c9c24c36ba7e..f00a8f3e7f6e 100644
--- a/arch/arm64/boot/dts/qcom/qcm6490-fairphone-fp5.dts
+++ b/arch/arm64/boot/dts/qcom/qcm6490-fairphone-fp5.dts
@@ -12,6 +12,7 @@
 #include <dt-bindings/iio/qcom,spmi-adc7-pm7325.h>
 #include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
 #include <dt-bindings/leds/common.h>
+#include <dt-bindings/media/video-interfaces.h>
 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 #include <dt-bindings/sound/qcom,q6asm.h>
@@ -626,6 +627,24 @@ vreg_bob: bob {
        };
 };
 
+&camss {
+       vdda-phy-supply = <&vreg_l10c>;
+       vdda-pll-supply = <&vreg_l6b>;
+
+       status = "okay";
+
+       ports {
+               port@3 {
+                       csiphy3_ep: endpoint {
+                               clock-lanes = <7>;
+                               data-lanes = <0 1 2 3>;
+                               bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
+                               remote-endpoint = <&camera_s5kjn1_ep>;
+                       };
+               };
+       };
+};
+
 &cci0 {
        status = "okay";
 };
@@ -666,7 +685,33 @@ &cci1 {
 };
 
 &cci1_i2c1 {
-       /* S5KJN1SQ03 @ 10 */
+       camera@10 {
+               compatible = "samsung,s5kjn1";
+               reg = <0x10>;
+
+               vddio-supply = <&vreg_l6p>;
+               vddd-supply = <&vreg_l2p>;
+               vdda-supply = <&vreg_l3p>;
+
+               clocks = <&camcc CAM_CC_MCLK3_CLK>;
+               assigned-clocks = <&camcc CAM_CC_MCLK3_CLK>;
+               assigned-clock-rates = <24000000>;
+
+               reset-gpios = <&tlmm 78 GPIO_ACTIVE_LOW>;
+               pinctrl-0 = <&cam_mclk3_default>;
+               pinctrl-names = "default";
+
+               orientation = <0>; /* Front facing */
+               rotation = <270>;
+
+               port {
+                       camera_s5kjn1_ep: endpoint {
+                               data-lanes = <1 2 3 4>;
+                               link-frequencies = /bits/ 64 <700000000>;
+                               remote-endpoint = <&csiphy3_ep>;
+                       };
+               };
+       };
 
        eeprom@51 {
                compatible = "giantec,gt24p128f", "atmel,24c128";
@@ -1332,6 +1377,13 @@ usb_redrive_1v8_en_default: 
usb-redrive-1v8-en-default-state {
                output-high;
        };
 
+       cam_mclk3_default: cam-mclk3-default-state {
+               pins = "gpio67";
+               function = "cam_mclk";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
        mdp_vsync: mdp-vsync-state {
                pins = "gpio80";
                function = "mdp_vsync";

-- 
2.53.0


Reply via email to