summaryrefslogtreecommitdiff
path: root/arch/arm/boot
diff options
context:
space:
mode:
authorShreshtha Sahu <ssahu@nvidia.com>2014-07-25 13:51:05 +0000
committerWinnie Hsu <whsu@nvidia.com>2014-10-29 10:43:59 -0700
commit6257f35698d7e160e89a441fb90ef9ee05fc0944 (patch)
tree327fe471dfa996fd9a3b7e324f04f1576296ae88 /arch/arm/boot
parentd6be01e283fac2842a3749e5eed30c17b346750e (diff)
ARM: tegra: laguna-erss: add camera module support
Adds tegra124-pm359-camera-a00.dtsi file and support for camera module NVD9A951 which consists of imx135 sensor and dw9718 focuser. Bug 1359310 Change-Id: I6b377255471566a1e95b2ace8c3f18c5aa230c3f Signed-off-by: Tushar Khinvasara <tkhinvasara@nvidia.com> Signed-off-by: Mihir Thakkar <mthakkar@nvidia.com> Reviewed-on: http://git-master/r/555462 GVS: Gerrit_Virtual_Submit Reviewed-by: Shreshtha Sahu <ssahu@nvidia.com> Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
Diffstat (limited to 'arch/arm/boot')
-rw-r--r--arch/arm/boot/dts/tegra124-laguna.dts1
-rw-r--r--arch/arm/boot/dts/tegra124-platforms/tegra124-laguna-power-tree-pm359-0000-a00.dtsi113
-rw-r--r--arch/arm/boot/dts/tegra124-platforms/tegra124-pm359-camera-a00.dtsi118
-rw-r--r--arch/arm/boot/dts/tegra124-platforms/tegra124-pm359-pmic.dtsi28
4 files changed, 260 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/tegra124-laguna.dts b/arch/arm/boot/dts/tegra124-laguna.dts
index 34ac1e338a01..861797b912a4 100644
--- a/arch/arm/boot/dts/tegra124-laguna.dts
+++ b/arch/arm/boot/dts/tegra124-laguna.dts
@@ -6,6 +6,7 @@
#include "tegra124-platforms/tegra124-pm359-pinmux.dtsi"
#include "tegra124-platforms/tegra124-pm359-pmic.dtsi"
#include "tegra124-platforms/tegra124-pm359-fixed.dtsi"
+#include "tegra124-platforms/tegra124-laguna-power-tree-pm359-0000-a00.dtsi"
/ {
model = "NVIDIA Tegra124 Laguna";
diff --git a/arch/arm/boot/dts/tegra124-platforms/tegra124-laguna-power-tree-pm359-0000-a00.dtsi b/arch/arm/boot/dts/tegra124-platforms/tegra124-laguna-power-tree-pm359-0000-a00.dtsi
new file mode 100644
index 000000000000..4a482db578d2
--- /dev/null
+++ b/arch/arm/boot/dts/tegra124-platforms/tegra124-laguna-power-tree-pm359-0000-a00.dtsi
@@ -0,0 +1,113 @@
+/*
+ * arch/arm/boot/dts/tegra124-platforms/tegra124-laguna-power-tree-pm359-0000-a00.dtsi
+ *
+ * Copyright (c) 2014, NVIDIA CORPORATION. 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 as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * 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.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include "tegra124-platforms/tegra124-pm359-pmic.dtsi"
+#include "tegra124-platforms/tegra124-pm359-fixed.dtsi"
+#include "tegra124-platforms/tegra124-pm359-camera-a00.dtsi"
+
+/ {
+ host1x {
+ /* tegradc.0 */
+ dc@54200000 {
+ avdd_dsi_csi-supply = <&as3722_ldo2>;
+ avdd_lcd-supply = <&as3722_gpio4_supply>;
+ dvdd_lcd-supply = <&reg_1v8_supply>;
+ vdd_ds_1v8-supply = <&reg_1v8_supply>;
+ vdd_1v2_en-supply = <&reg_dcdc_1v2>;
+ vdd_lcd_bl-supply = <&vdd_lcd_bl>;
+ vdd_lcd_bl_en-supply = <&vdd_lcd_bl_en>;
+ };
+ /* tegradc.1 */
+ dc@54240000 {
+ avdd_hdmi-supply = <&as3722_sd4>;
+ avdd_hdmi_pll-supply = <&avdd_hdmi_pll>;
+ vdd_hdmi_5v0-supply = <&vdd_hdmi>;
+ };
+ vi {
+ avdd_dsi_csi-supply = <&as3722_ldo2>;
+ };
+ };
+ i2c@7000c000 {
+ pca9546@70 {
+ vcc-supply = <&as3722_ldo1>;
+ vcc-pullup-supply = <&as3722_ldo6>;
+ };
+ };
+
+ pcie-controller {
+ hvdd-pex-supply = <&reg_3v3_supply>;
+ hvdd-pex-pll-e-supply = <&reg_3v3_supply>;
+ dvddio-pex-supply = <&as3722_sd4>;
+ avddio-pex-supply = <&as3722_sd4>;
+ avdd-pex-pll-supply = <&as3722_sd4>;
+ vddio-pex-ctl-supply = <&as3722_sd4>;
+ };
+
+ tegra-snd-max98090 {
+ vdd-aud-dgtl-supply = <&reg_1v8_supply>;
+ avdd-aud-supply = <&reg_dcdc_1v2>;
+ };
+
+ sata@70020000 {
+ avdd_sata-supply = <&as3722_sd4>;
+ vdd_sata-supply = <&as3722_sd4>;
+ avdd_sata_pll-supply =<&as3722_sd4>;
+ hvdd_sata-supply = <&as3722_gpio2_supply>;
+ vddio_pex_sata-supply = <&vdd_ac_bat>;
+ };
+
+ udc@7d000000 {
+ avdd_usb-supply = <&as3722_gpio2_supply>;
+ avdd_pll_utmip-supply = <&reg_1v8_supply>;
+ };
+
+ otg@7d000000 {
+ usb_vbus-supply = <&usb0_vbus>;
+ };
+
+ /* Populate fuse supply */
+ efuse@7000f800 {
+ vpp_fuse-supply = <&as3722_ldo11>;
+ };
+
+ power-detect {
+ pwrdet-pex-ctl-supply = <&as3722_sd4>;
+ pwrdet-nand-supply = <&as3722_sd5>;
+ pwrdet-sdmmc1-supply = <&as3722_sd5>;
+ pwrdet-sdmmc4-supply = <&as3722_sd5>;
+ pwrdet-audio-supply = <&as3722_sd5>;
+ pwrdet-uart-supply = <&as3722_sd5>;
+ pwrdet-bb-supply = <&as3722_sd5>;
+ pwrdet-cam-supply = <&as3722_ldo1>;
+ pwrdet-mipi-supply = <&as3722_ldo2>;
+ pwrdet-sdmmc3-supply = <&as3722_ldo6>;
+ pwrdet-hv-supply = <&as3722_gpio2_supply>;
+ };
+
+ xusb@70090000 {
+ usb_vbus0-supply = <&usb0_vbus>;
+ usb_vbus1-supply = <&usb1_usb2_vbus>;
+ usb_vbus2-supply = <&usb1_usb2_vbus>;
+ hvdd_usb-supply = <&as3722_gpio2_supply>;
+ avdd_pll_utmip-supply = <&reg_1v8_supply>;
+ vddio_hsic-supply = <&as3722_ldo2>;
+ avddio_usb-supply = <&as3722_sd4>;
+ };
+};
diff --git a/arch/arm/boot/dts/tegra124-platforms/tegra124-pm359-camera-a00.dtsi b/arch/arm/boot/dts/tegra124-platforms/tegra124-pm359-camera-a00.dtsi
new file mode 100644
index 000000000000..6245e8d55857
--- /dev/null
+++ b/arch/arm/boot/dts/tegra124-platforms/tegra124-pm359-camera-a00.dtsi
@@ -0,0 +1,118 @@
+/*
+ * arch/arm/boot/dts/tegra124-platforms/tegra124-pm359-camera-a00.dtsi
+ *
+ * Copyright (c) 2014, NVIDIA CORPORATION. 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 as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * 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.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include <dt-bindings/media/camera.h>
+
+/ {
+ camera-pcl {
+ compatible = "nvidia,tegra124-camera", "simple-bus";
+ configuration = <0xAA55AA55>;
+
+ modules {
+ module1: module1@modules {
+ /* Camera Module NVD9A951 */
+ compatible = "sensor,front";
+ badge_info = "pm359_erss_front_D9A951";
+
+ sensor {
+ profile = <&imx135_1>;
+ platformdata = "ardbeg_imx135_pdata";
+ };
+ focuser {
+ profile = <&dw9718_1>;
+ platformdata = "ardbeg_dw9718_pdata";
+ };
+ };
+ };
+ profiles {
+ imx135_1: imx135@2_0010 {
+ index = <1>;
+ chipname = "pcl_IMX135";
+ type = "sensor";
+ guid = "s_IMX135";
+ position = <0>;
+ bustype = "i2c";
+ busnum = <2>;
+ addr = <0x10>;
+ datalen = <2>;
+ pinmuxgrp = <0xFFFF>;
+ gpios = <3>;
+ regulators = "vana", "vdig_lv", "vif";
+ clocks = "mclk";
+ drivername = "imx135";
+ detect = <0x0002 0x0016 0xFFFF 0x0135>;
+ devid = <0x0135>;
+ poweron = <
+ CAMERA_IND_CLK_SET(10000)
+ CAMERA_GPIO_CLR(221)
+ CAMERA_WAITUS(10)
+ CAMERA_REGULATOR_ON(2)
+ CAMERA_REGULATOR_ON(1)
+ CAMERA_REGULATOR_ON(0)
+ CAMERA_WAITMS(5)
+ CAMERA_GPIO_SET(221)
+ CAMERA_WAITUS(300)
+ CAMERA_END
+ >;
+ poweroff = <
+ CAMERA_IND_CLK_CLR
+ CAMERA_GPIO_CLR(221)
+ CAMERA_WAITUS(10)
+ CAMERA_REGULATOR_OFF(2)
+ CAMERA_REGULATOR_OFF(1)
+ CAMERA_REGULATOR_OFF(0)
+ CAMERA_END
+ >;
+ };
+ dw9718_1: dw9718@2_000c {
+ index = <2>;
+ chipname = "pcl_DW9718";
+ type = "focuser";
+ guid = "f_NVCAM0";
+ position = <0>;
+ bustype = "i2c";
+ busnum = <2>;
+ addr = <0xc>;
+ datalen = <1>;
+ pinmuxgrp = <0xFFFF>;
+ gpios = <3>;
+ regulators = "vdd", "vdd_i2c";
+ drivername = "dw9718";
+ detect = <0x0002 0x0004 0xFFFF 0x0060>;
+ devid = <0x9718>;
+ poweron = <
+ CAMERA_REGULATOR_ON(1)
+ CAMERA_REGULATOR_ON(0)
+ CAMERA_WAITUS(10)
+ CAMERA_GPIO_SET(223)
+ CAMERA_WAITUS(10)
+ CAMERA_END
+ >;
+ poweroff = <
+ CAMERA_REGULATOR_OFF(0)
+ CAMERA_REGULATOR_OFF(1)
+ CAMERA_GPIO_CLR(223)
+ CAMERA_WAITUS(10)
+ CAMERA_END
+ >;
+ };
+ };
+ };
+};
diff --git a/arch/arm/boot/dts/tegra124-platforms/tegra124-pm359-pmic.dtsi b/arch/arm/boot/dts/tegra124-platforms/tegra124-pm359-pmic.dtsi
index 2a59b56cd9fc..0b087f970fc5 100644
--- a/arch/arm/boot/dts/tegra124-platforms/tegra124-pm359-pmic.dtsi
+++ b/arch/arm/boot/dts/tegra124-platforms/tegra124-pm359-pmic.dtsi
@@ -1,3 +1,23 @@
+/*
+ * arch/arm/boot/dts/tegra124-platforms/tegra124-pm359-pmic.dtsi
+ *
+ * Copyright (c) 2014, NVIDIA CORPORATION. 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 as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * 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.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
/ {
i2c@7000d000 {
as3722: as3722@40 {
@@ -298,6 +318,10 @@
regulator-consumer-supply = "vdd_i2c";
regulator-consumer-device = "2-000c";
};
+ c7 {
+ regulator-consumer-supply = "vdd_i2c";
+ regulator-consumer-device = "2-0010";
+ };
};
};
@@ -429,6 +453,10 @@
c2 {
regulator-consumer-supply = "imx135_reg2";
};
+ c3 {
+ regulator-consumer-supply = "vdig_lv";
+ regulator-consumer-device = "2-0010";
+ };
};
};