]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - arch/arm64/boot/dts/qcom/msm8916.dtsi
Merge remote-tracking branch 'todor/release/qcomlt-4.4-camss-demo2' into release...
[karo-tx-linux.git] / arch / arm64 / boot / dts / qcom / msm8916.dtsi
index e28c852a61640bb3b0a03a99212b77431ddc48bb..f6091aafc984dd541757059b3b32920e086b3e75 100644 (file)
                        reg = <0x4ab000 0x4>;
                };
 
+               camss@0 {
+                       compatible = "qcom,msm-camss";
+
+                       reg = <0x1b0ac00 0x200>,
+                               <0x1b00030 0x4>,
+                               <0x1b0b000 0x200>,
+                               <0x1b00038 0x4>,
+                               <0x1b08000 0x100>,
+                               <0x1b08400 0x100>,
+                               <0x1b0a000 0x500>,
+                               <0x1b00020 0x10>,
+                               <0x1b10000 0x1000>,
+                               <0x1b40000 0x200>;
+                       reg-names = "csiphy0",
+                               "csiphy0_clk_mux",
+                               "csiphy1",
+                               "csiphy1_clk_mux",
+                               "csid0",
+                               "csid1",
+                               "ispif",
+                               "csi_clk_mux",
+                               "vfe0",
+                               "vfe0_vbif";
+                       interrupts = <GIC_SPI 78 0>,
+                               <GIC_SPI 79 0>,
+                               <GIC_SPI 51 0>,
+                               <GIC_SPI 52 0>,
+                               <GIC_SPI 55 0>,
+                               <GIC_SPI 57 0>;
+                       interrupt-names = "csiphy0",
+                               "csiphy1",
+                               "csid0",
+                               "csid1",
+                               "ispif",
+                               "vfe0";
+                       power-domains = <&gcc VFE_GDSC>;
+                       clocks = <&gcc GCC_CAMSS_TOP_AHB_CLK>,
+                               <&gcc GCC_CAMSS_ISPIF_AHB_CLK>,
+                               <&gcc CSI0PHYTIMER_CLK_SRC>,
+                               <&gcc GCC_CAMSS_CSI0PHYTIMER_CLK>,
+                               <&gcc CSI1PHYTIMER_CLK_SRC>,
+                               <&gcc GCC_CAMSS_CSI1PHYTIMER_CLK>,
+                               <&gcc CAMSS_AHB_CLK_SRC>,
+                               <&gcc GCC_CAMSS_CSI0_AHB_CLK>,
+                               <&gcc CSI0_CLK_SRC>,
+                               <&gcc GCC_CAMSS_CSI0_CLK>,
+                               <&gcc GCC_CAMSS_CSI0PHY_CLK>,
+                               <&gcc GCC_CAMSS_CSI0PIX_CLK>,
+                               <&gcc GCC_CAMSS_CSI0RDI_CLK>,
+                               <&gcc GCC_CAMSS_CSI1_AHB_CLK>,
+                               <&gcc CSI1_CLK_SRC>,
+                               <&gcc GCC_CAMSS_CSI1_CLK>,
+                               <&gcc GCC_CAMSS_CSI1PHY_CLK>,
+                               <&gcc GCC_CAMSS_CSI1PIX_CLK>,
+                               <&gcc GCC_CAMSS_CSI1RDI_CLK>,
+                               <&gcc GCC_CAMSS_AHB_CLK>,
+                               <&gcc VFE0_CLK_SRC>,
+                               <&gcc GCC_CAMSS_VFE0_CLK>,
+                               <&gcc GCC_CAMSS_CSI_VFE0_CLK>,
+                               <&gcc GCC_CAMSS_VFE_AHB_CLK>,
+                               <&gcc GCC_CAMSS_VFE_AXI_CLK>;
+                       clock-names = "camss_top_ahb_clk",
+                               "ispif_ahb_clk",
+                               "csiphy0_timer_src_clk",
+                               "csiphy0_timer_clk",
+                               "csiphy1_timer_src_clk",
+                               "csiphy1_timer_clk",
+                               "camss_ahb_src",
+                               "csi0_ahb_clk",
+                               "csi0_src_clk",
+                               "csi0_clk",
+                               "csi0_phy_clk",
+                               "csi0_pix_clk",
+                               "csi0_rdi_clk",
+                               "csi1_ahb_clk",
+                               "csi1_src_clk",
+                               "csi1_clk",
+                               "csi1_phy_clk",
+                               "csi1_pix_clk",
+                               "csi1_rdi_clk",
+                               "camss_ahb_clk",
+                               "vfe_clk_src",
+                               "camss_vfe_vfe_clk",
+                               "camss_csi_vfe_clk",
+                               "iface_clk",
+                               "bus_clk";
+                       vdda-supply = <&pm8916_l2>;
+
+                       qcom,msm-bus,name = "msm_camera_isp";
+                       qcom,msm-bus,num-cases = <3>;
+                       qcom,msm-bus,num-paths = <1>;
+                       qcom,msm-bus,vectors-KBps =
+                                       <29 512 0 0>,
+                                       <29 512 450000 900000>,
+                                       <29 512 11000 11000>;
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               port@0 {
+                                       reg = <0>;
+                                       csiphy0_ep: endpoint {
+                                               clock-lanes = <1>;
+                                               data-lanes = <0 2>;
+                                               qcom,settle-cnt = <0xe>;
+                                               remote-endpoint = <&ov5645_ep>;
+                                       };
+                               };
+                       };
+               };
+
+               cci: qcom,cci@1b0c000 {
+                       cell-index = <0>;
+                       compatible = "qcom,cci";
+                       reg = <0x1b0c000 0x1000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg-names = "cci";
+                       interrupts = <GIC_SPI 50 0>;
+                       interrupt-names = "cci";
+                       clocks = <&gcc GCC_CAMSS_TOP_AHB_CLK>,
+                               <&gcc CCI_CLK_SRC>,
+                               <&gcc GCC_CAMSS_CCI_AHB_CLK>,
+                               <&gcc GCC_CAMSS_CCI_CLK>,
+                               <&gcc GCC_CAMSS_AHB_CLK>;
+                       clock-names = "camss_top_ahb_clk",
+                               "cci_src_clk",
+                               "cci_ahb_clk",
+                               "cci_clk",
+                               "camss_ahb_clk";
+                       qcom,clock-rates = <0 19200000 80000000 0 0>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&cci0_default>;
+                       pinctrl-1 = <&cci0_sleep>;
+                       i2c_freq_100Khz: qcom,i2c_standard_mode {
+                               status = "disabled";
+                       };
+                       i2c_freq_400Khz: qcom,i2c_fast_mode {
+                               status = "disabled";
+                       };
+                       i2c_freq_custom: qcom,i2c_custom_mode {
+                               status = "disabled";
+                       };
+               };
+
                msmgpio: pinctrl@1000000 {
                        compatible = "qcom,msm8916-pinctrl";
                        reg = <0x1000000 0x300000>;
                        status = "disabled";
                };
 
+               camera_vdddo_1v8: fixedregulator@0 {
+                       compatible = "regulator-fixed";
+                       regulator-name = "camera_vdddo";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-always-on;
+               };
+
+               camera_vdda_2v8: fixedregulator@1 {
+                       compatible = "regulator-fixed";
+                       regulator-name = "camera_vdda";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+                       regulator-always-on;
+               };
+
+               camera_vddd_1v5: fixedregulator@2 {
+                       compatible = "regulator-fixed";
+                       regulator-name = "camera_vddd";
+                       regulator-min-microvolt = <1500000>;
+                       regulator-max-microvolt = <1500000>;
+                       regulator-always-on;
+               };
+
                blsp_i2c6: i2c@78ba000 {
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0x78ba000 0x1000>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "disabled";
+                       camera@78 {
+                               compatible = "ovti,ov5645";
+                               reg = <0x78>;
+
+                               enable-gpios = <&msmgpio 34 0>;
+                               reset-gpios = <&msmgpio 35 1>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&camera_rear_default>;
+
+                               clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
+                               clock-names = "xclk";
+
+                               vdddo-supply = <&camera_vdddo_1v8>;
+                               vdda-supply = <&camera_vdda_2v8>;
+                               vddd-supply = <&camera_vddd_1v5>;
+
+                               port {
+                                       ov5645_ep: endpoint {
+                                               clock-lanes = <1>;
+                                               data-lanes = <0 2>;
+                                               remote-endpoint = <&csiphy0_ep>;
+                                       };
+                               };
+                       };
                };
 
                sdhc_1: sdhci@07824000 {
        };
 };
 
+&i2c_freq_100Khz {
+       qcom,hw-thigh = <78>;
+       qcom,hw-tlow = <114>;
+       qcom,hw-tsu-sto = <28>;
+       qcom,hw-tsu-sta = <28>;
+       qcom,hw-thd-dat = <10>;
+       qcom,hw-thd-sta = <77>;
+       qcom,hw-tbuf = <118>;
+       qcom,hw-scl-stretch-en = <0>;
+       qcom,hw-trdhld = <6>;
+       qcom,hw-tsp = <1>;
+       status = "ok";
+};
+
+&i2c_freq_400Khz {
+       qcom,hw-thigh = <20>;
+       qcom,hw-tlow = <28>;
+       qcom,hw-tsu-sto = <21>;
+       qcom,hw-tsu-sta = <21>;
+       qcom,hw-thd-dat = <13>;
+       qcom,hw-thd-sta = <18>;
+       qcom,hw-tbuf = <32>;
+       qcom,hw-scl-stretch-en = <0>;
+       qcom,hw-trdhld = <6>;
+       qcom,hw-tsp = <3>;
+       status = "ok";
+};
+
+&i2c_freq_custom {
+       qcom,hw-thigh = <15>;
+       qcom,hw-tlow = <28>;
+       qcom,hw-tsu-sto = <21>;
+       qcom,hw-tsu-sta = <21>;
+       qcom,hw-thd-dat = <13>;
+       qcom,hw-thd-sta = <18>;
+       qcom,hw-tbuf = <25>;
+       qcom,hw-scl-stretch-en = <1>;
+       qcom,hw-trdhld = <6>;
+       qcom,hw-tsp = <3>;
+       status = "ok";
+};
+
+
 #include "msm8916-pins.dtsi"
 #include "msm8916-iommu.dtsi"
 #include "msm8916-coresight.dtsi"