diff --git a/arch/arm/boot/dts/msm8226-camera-sensor-cdp-mtp-qrd.dtsi b/arch/arm/boot/dts/msm8226-camera-sensor-cdp-mtp-qrd.dtsi new file mode 100644 index 00000000000..133dcac3cdf --- /dev/null +++ b/arch/arm/boot/dts/msm8226-camera-sensor-cdp-mtp-qrd.dtsi @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2013, 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 + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&cci { + qcom,camera@6f { + compatible = "qcom,ov8825"; + reg = <0x6f>; + qcom,slave-id = <0x6c 0x300a 0x8825>; + qcom,csiphy-sd-index = <0>; + qcom,csid-sd-index = <0>; + qcom,mount-angle = <90>; + qcom,sensor-name = "ov8825"; + cam_vdig-supply = <&pm8226_l5>; + cam_vana-supply = <&pm8226_l19>; + cam_vio-supply = <&pm8226_lvs1>; + cam_vaf-supply = <&pm8226_l15>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", + "cam_vaf"; + qcom,cam-vreg-type = <0 1 0 0>; + qcom,cam-vreg-min-voltage = <1200000 0 2850000 2800000>; + qcom,cam-vreg-max-voltage = <1200000 0 2850000 2800000>; + qcom,cam-vreg-op-mode = <200000 0 80000 100000>; + qcom,gpio-no-mux = <0>; + gpios = <&msmgpio 26 0>, + <&msmgpio 37 0>, + <&msmgpio 36 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK", + "CAM_RESET1", + "CAM_STANDBY"; + qcom,csi-lane-assign = <0x4320>; + qcom,csi-lane-mask = <0x1f>; + qcom,sensor-position = <0>; + qcom,sensor-mode = <1>; + qcom,cci-master = <0>; + }; + + qcom,camera@6d { + compatible = "qcom,ov9724"; + reg = <0x6d>; + qcom,slave-id = <0x20 0x0 0x9724>; + qcom,csiphy-sd-index = <1>; + qcom,csid-sd-index = <0>; + qcom,mount-angle = <90>; + qcom,sensor-name = "ov9724"; + cam_vdig-supply = <&pm8226_l5>; + cam_vana-supply = <&pm8226_l19>; + cam_vio-supply = <&pm8226_lvs1>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-type = <0 1 0>; + qcom,cam-vreg-min-voltage = <1200000 0 2850000>; + qcom,cam-vreg-max-voltage = <1200000 0 2850000>; + qcom,cam-vreg-op-mode = <200000 0 80000>; + qcom,gpio-no-mux = <0>; + gpios = <&msmgpio 26 0>, + <&msmgpio 28 0>, + <&msmgpio 35 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK", + "CAM_RESET", + "CAM_STANDBY"; + qcom,gpio-set-tbl-num = <1 1>; + qcom,gpio-set-tbl-flags = <0 2>; + qcom,gpio-set-tbl-delay = <1000 4000>; + qcom,csi-lane-assign = <0x4320>; + qcom,csi-lane-mask = <0x3>; + qcom,sensor-position = <1>; + qcom,sensor-mode = <1>; + qcom,cci-master = <0>; + status = "ok"; + }; +}; diff --git a/arch/arm/boot/dts/msm8226-camera.dtsi b/arch/arm/boot/dts/msm8226-camera.dtsi index 2a9fdf22b0b..425f358917b 100644 --- a/arch/arm/boot/dts/msm8226-camera.dtsi +++ b/arch/arm/boot/dts/msm8226-camera.dtsi @@ -1,4 +1,5 @@ -/* Copyright (c) 2012, The Linux Foundation. All rights reserved. +/* + * Copyright (c) 2012-2013, 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 @@ -11,8 +12,113 @@ */ / { - qcom,cam_server { - compatible = "qcom,cam_server"; - reg = <0xfd8C0000 0x10000>; + qcom,msm-cam@fd8c0000 { + compatible = "qcom,msm-cam"; + reg = <0xfd8c0000 0x10000>; + reg-names = "msm-cam"; + }; + + qcom,csiphy@fda0ac00 { + cell-index = <0>; + compatible = "qcom,csiphy"; + reg = <0xfda0ac00 0x200>; + reg-names = "csiphy"; + interrupts = <0 78 0>; + interrupt-names = "csiphy"; + }; + + qcom,csiphy@fda0b000 { + cell-index = <1>; + compatible = "qcom,csiphy"; + reg = <0xfda0b000 0x200>; + reg-names = "csiphy"; + interrupts = <0 79 0>; + interrupt-names = "csiphy"; + }; + + qcom,csid@fda08000 { + cell-index = <0>; + compatible = "qcom,csid"; + reg = <0xfda08000 0x100>; + reg-names = "csid"; + interrupts = <0 51 0>; + interrupt-names = "csid"; + qcom,csi-vdd-voltage = <1200000>; + qcom,mipi-csi-vdd-supply = <&pm8226_l4>; + }; + + qcom,csid@fda08400 { + cell-index = <1>; + compatible = "qcom,csid"; + reg = <0xfda08400 0x100>; + reg-names = "csid"; + interrupts = <0 52 0>; + interrupt-names = "csid"; + qcom,csi-vdd-voltage = <1200000>; + qcom,mipi-csi-vdd-supply = <&pm8226_l4>; + }; + + qcom,ispif@fda0a000 { + cell-index = <0>; + compatible = "qcom,ispif"; + reg = <0xfda0a000 0x500>; + reg-names = "ispif"; + interrupts = <0 55 0>; + interrupt-names = "ispif"; + }; + + qcom,vfe@fda10000 { + cell-index = <0>; + compatible = "qcom,vfe40"; + reg = <0xfda10000 0x1000>, + <0xfda40000 0x200>; + reg-names = "vfe", "vfe_vbif"; + interrupts = <0 57 0>; + interrupt-names = "vfe"; + vdd-supply = <&gdsc_vfe>; + }; + + qcom,jpeg@fda1c000 { + cell-index = <0>; + compatible = "qcom,jpeg"; + reg = <0xfda1c000 0x400>; + reg-names = "jpeg"; + interrupts = <0 59 0>; + interrupt-names = "jpeg"; + vdd-supply = <&gdsc_jpeg>; + }; + + qcom,irqrouter@fda00000 { + cell-index = <0>; + compatible = "qcom,irqrouter"; + reg = <0xfda00000 0x100>; + reg-names = "irqrouter"; + }; + + cci: qcom,cci@fda0c000 { + cell-index = <0>; + compatible = "qcom,cci"; + reg = <0xfda0c000 0x1000>; + #address-cells = <1>; + #size-cells = <0>; + reg-names = "cci"; + interrupts = <0 50 0>; + interrupt-names = "cci"; + gpios = <&msmgpio 29 0>, + <&msmgpio 30 0>; + qcom,gpio-tbl-num = <0 1>; + qcom,gpio-tbl-flags = <1 1>; + qcom,gpio-tbl-label = "CCI_I2C_DATA0", + "CCI_I2C_CLK0"; + 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>; }; }; diff --git a/arch/arm/boot/dts/msm8226-cdp.dts b/arch/arm/boot/dts/msm8226-cdp.dts index c303061c1f0..04b7c7e2d29 100644 --- a/arch/arm/boot/dts/msm8226-cdp.dts +++ b/arch/arm/boot/dts/msm8226-cdp.dts @@ -13,6 +13,7 @@ /dts-v1/; /include/ "msm8226.dtsi" /include/ "dsi-panel-nt35590-720p-video.dtsi" +/include/ "msm8226-camera-sensor-cdp-mtp-qrd.dtsi" / { model = "Qualcomm MSM 8226 CDP"; diff --git a/arch/arm/boot/dts/msm8226-mtp.dts b/arch/arm/boot/dts/msm8226-mtp.dts index a18bad33cca..e12bb64c8e3 100644 --- a/arch/arm/boot/dts/msm8226-mtp.dts +++ b/arch/arm/boot/dts/msm8226-mtp.dts @@ -13,6 +13,7 @@ /dts-v1/; /include/ "msm8226.dtsi" /include/ "dsi-panel-nt35590-720p-video.dtsi" +/include/ "msm8226-camera-sensor-cdp-mtp-qrd.dtsi" / { model = "Qualcomm MSM 8226 MTP"; diff --git a/arch/arm/boot/dts/msm8226-qrd.dts b/arch/arm/boot/dts/msm8226-qrd.dts index e137ee23e9c..cdefdd01e60 100644 --- a/arch/arm/boot/dts/msm8226-qrd.dts +++ b/arch/arm/boot/dts/msm8226-qrd.dts @@ -13,6 +13,7 @@ /dts-v1/; /include/ "msm8226.dtsi" /include/ "dsi-panel-nt35590-720p-video.dtsi" +/include/ "msm8226-camera-sensor-cdp-mtp-qrd.dtsi" / { model = "Qualcomm MSM 8226 QRD"; diff --git a/arch/arm/boot/dts/msm8226.dtsi b/arch/arm/boot/dts/msm8226.dtsi index af1faabef9a..9fb55c9ee33 100644 --- a/arch/arm/boot/dts/msm8226.dtsi +++ b/arch/arm/boot/dts/msm8226.dtsi @@ -12,6 +12,7 @@ /include/ "skeleton.dtsi" /include/ "msm8226-ion.dtsi" +/include/ "msm8226-camera.dtsi" /include/ "msm-gdsc.dtsi" /include/ "msm8226-iommu.dtsi" /include/ "msm8226-pm.dtsi"