diff options
author | Shreshtha Sahu <ssahu@nvidia.com> | 2014-07-25 13:51:05 +0000 |
---|---|---|
committer | Winnie Hsu <whsu@nvidia.com> | 2014-10-29 10:43:59 -0700 |
commit | 6257f35698d7e160e89a441fb90ef9ee05fc0944 (patch) | |
tree | 327fe471dfa996fd9a3b7e324f04f1576296ae88 | |
parent | d6be01e283fac2842a3749e5eed30c17b346750e (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>
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 = <®_1v8_supply>; + vdd_ds_1v8-supply = <®_1v8_supply>; + vdd_1v2_en-supply = <®_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 = <®_3v3_supply>; + hvdd-pex-pll-e-supply = <®_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 = <®_1v8_supply>; + avdd-aud-supply = <®_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 = <®_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 = <®_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"; + }; }; }; |