/* * arch/arm/boot/dts/tegra124-platforms/tegra124-pm359-camera-a00.dtsi * * Copyright (c) 2014-2015, 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 / { 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"; }; flash { profile = <&as3648_1>; platformdata = "ardbeg_as3648_pdata"; }; }; module2: module2@modules { compatible = "sensor,front"; badge_info = "e1823_front_camera"; sensor { profile = <&ar0261_1>; platformdata = "ardbeg_ar0261_pdata"; }; }; module3: module3@modules { compatible = "sensor,rear"; badge_info = "e1633_rear_camera"; sensor { profile = <&ar0330_1>; platformdata = "ardbeg_ar0330_pdata"; }; }; module4: module4@modules { compatible = "sensor,front"; badge_info = "e1633_front_camera"; sensor { profile = <&ar0330_2>; platformdata = "ardbeg_ar0330_front_pdata"; }; }; module5: module5@modules { compatible = "sensor,rear"; badge_info = "e1633_ov4689"; sensor { profile = <&ov4689_1>; platformdata = "ardbeg_ov4689_pdata"; }; }; module6: module6@modules { compatible = "sensor,rear"; badge_info = "e1633_ar1335"; sensor { profile = <&ar1335_1>; platformdata = "ardbeg_ar1335_pdata"; }; }; module7: module7@modules { compatible = "sensor,rear"; badge_info = "imx185_camera"; sensor { profile = <&imx185_1>; platformdata = "ardbeg_imx185_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 >; }; imx185_1: imx185@2_001A { index = <1>; chipname = "pcl_IMX185"; type = "sensor"; guid = "s_IMX185"; position = <0>; bustype = "i2c"; busnum = <2>; addr = <0x1A>; datalen = <2>; pinmuxgrp = <0xFFFF>; gpios = <0>; regulators = "vif"; clocks = "mclk"; drivername = "imx185"; detect = <0x1 0x3010 0x00FF 0x39>; devid = <0x0185>; poweron = < CAMERA_IND_CLK_SET(37125) CAMERA_GPIO_CLR(221) CAMERA_REGULATOR_ON(0) CAMERA_WAITUS(10) CAMERA_WAITMS(5) CAMERA_GPIO_SET(221) CAMERA_WAITUS(300) CAMERA_END >; poweroff = < CAMERA_IND_CLK_CLR CAMERA_GPIO_CLR(221) CAMERA_REGULATOR_OFF(0) CAMERA_WAITUS(10) 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 >; }; as3648_1: as3648@2_0030 { index = <6>; chipname = "pcl_AS3648"; type = "flash"; guid = "l_NVCAM0"; position = <0>; bustype = "i2c"; busnum = <2>; addr = <0x30>; datalen = <1>; pinmuxgrp = <0xFFFF>; gpios = <3>; regulators = "vi2c", "vin"; drivername = "as3648"; detect = <0x0001 0x0000 0x00F0 0x00b0>; devid = <0x3648>; poweron = < CAMERA_REGULATOR_ON(1) CAMERA_REGULATOR_ON(0) CAMERA_WAITUS(1000) CAMERA_END >; poweroff = < CAMERA_REGULATOR_OFF(0) CAMERA_REGULATOR_OFF(1) CAMERA_WAITUS(10) CAMERA_END >; }; ar0261_1: ar0261@2_0036 { index = <3>; chipname = "pcl_AR0261"; type = "sensor"; guid = "s_AR0261"; position = <1>; bustype = "i2c"; busnum = <2>; addr = <0x36>; datalen = <2>; pinmuxgrp = <0xFFFF>; gpios = <3>; regulators = "vana_ar0261", "vdig", "vif"; clocks = "mclk2"; drivername = "ar0261"; detect = <0x0002 0x0003 0xFFFF 0x060A>; devid = <0x0261>; poweron = < CAMERA_IND_CLK_SET(10000) CAMERA_GPIO_CLR(219) CAMERA_REGULATOR_ON(0) CAMERA_REGULATOR_ON(1) CAMERA_REGULATOR_ON(2) CAMERA_WAITMS(40) CAMERA_GPIO_SET(219) CAMERA_WAITMS(20) CAMERA_END >; poweroff = < CAMERA_IND_CLK_CLR CAMERA_GPIO_CLR(219) CAMERA_WAITUS(10) CAMERA_REGULATOR_OFF(2) CAMERA_REGULATOR_OFF(1) CAMERA_REGULATOR_OFF(0) CAMERA_END >; }; ar0330_1: ar0330@2_0018 { index = <4>; chipname = "pcl_AR0330"; type = "sensor"; guid = "s_AR0330"; position = <0>; bustype = "i2c"; busnum = <2>; addr = <0x18>; datalen = <2>; pinmuxgrp = <0xFFFF>; gpios = <3>; regulators = "vana", "vdig", "vif"; clocks = "mclk"; drivername = "ar0330"; detect = <0x0002 0x3000 0xFFFF 0x2604>; devid = <0x0330>; poweron = < CAMERA_IND_CLK_SET(10000) CAMERA_GPIO_CLR(221) CAMERA_GPIO_CLR(222) CAMERA_REGULATOR_ON(0) CAMERA_WAITMS(10) CAMERA_REGULATOR_ON(1) CAMERA_REGULATOR_ON(2) CAMERA_WAITMS(40) CAMERA_GPIO_SET(221) CAMERA_GPIO_SET(222) CAMERA_WAITMS(20) CAMERA_END >; poweroff = < CAMERA_IND_CLK_CLR CAMERA_GPIO_CLR(221) CAMERA_GPIO_CLR(222) CAMERA_WAITUS(10) CAMERA_REGULATOR_OFF(2) CAMERA_REGULATOR_OFF(1) CAMERA_REGULATOR_OFF(0) CAMERA_END >; }; ar0330_2: ar0330@2_0010 { index = <5>; chipname = "pcl_AR0330"; type = "sensor"; guid = "sAR0330f"; position = <1>; bustype = "i2c"; busnum = <2>; addr = <0x10>; datalen = <2>; pinmuxgrp = <0xFFFF>; gpios = <3>; regulators = "vana", "vdig", "vif"; clocks = "mclk2"; drivername = "ar0330"; detect = <0x0002 0x3000 0xFFFF 0x2604>; devid = <0x0330>; poweron = < CAMERA_IND_CLK_SET(10000) CAMERA_GPIO_CLR(221) CAMERA_GPIO_CLR(222) CAMERA_REGULATOR_ON(0) CAMERA_WAITMS(10) CAMERA_REGULATOR_ON(1) CAMERA_REGULATOR_ON(2) CAMERA_WAITMS(40) CAMERA_GPIO_SET(221) CAMERA_GPIO_SET(222) CAMERA_WAITMS(20) CAMERA_END >; poweroff = < CAMERA_IND_CLK_CLR CAMERA_GPIO_CLR(221) CAMERA_GPIO_CLR(222) CAMERA_WAITUS(10) CAMERA_REGULATOR_OFF(2) CAMERA_REGULATOR_OFF(1) CAMERA_REGULATOR_OFF(0) CAMERA_END >; }; ov4689_1: ov4689@2_0036 { index = <6>; chipname = "pcl_OV4689"; type = "sensor"; guid = "s_OV4689"; position = <0>; bustype = "i2c"; busnum = <2>; addr = <0x36>; datalen = <2>; pinmuxgrp = <0xFFFF>; gpios = <3>; regulators = "vana", "vdig", "vif"; clocks = "mclk"; drivername = "ov4689"; detect = <0x0002 0x300A 0xFFFF 0x4688>; devid = <0x4689>; poweron = < CAMERA_IND_CLK_SET(10000) CAMERA_GPIO_CLR(221) CAMERA_GPIO_CLR(219) CAMERA_WAITMS(40) CAMERA_REGULATOR_ON(2) CAMERA_GPIO_SET(221) CAMERA_GPIO_SET(219) CAMERA_WAITMS(10) CAMERA_END >; poweroff = < CAMERA_GPIO_CLR(221) CAMERA_IND_CLK_CLR CAMERA_WAITUS(10) CAMERA_END >; }; ar1335_1: ar1335@2_0036 { index = <7>; chipname = "pcl_AR1335"; type = "sensor"; guid = "s_AR1335"; position = <0>; bustype = "i2c"; busnum = <2>; addr = <0x36>; datalen = <2>; pinmuxgrp = <0xFFFF>; gpios = <3>; regulators = "vana", "vif", "vdig_csi"; clocks = "mclk"; drivername = "ar1335"; detect = <0x0002 0x3000 0xFFFF 0x0153>; devid = <0x1335>; poweron = < CAMERA_IND_CLK_SET(10000) CAMERA_GPIO_CLR(219) CAMERA_REGULATOR_ON(0) CAMERA_REGULATOR_ON(1) CAMERA_REGULATOR_ON(2) CAMERA_WAITMS(10) CAMERA_GPIO_SET(219) CAMERA_WAITMS(20) CAMERA_END >; poweroff = < CAMERA_IND_CLK_CLR CAMERA_GPIO_CLR(219) CAMERA_WAITUS(10) CAMERA_REGULATOR_OFF(2) CAMERA_REGULATOR_OFF(1) CAMERA_REGULATOR_OFF(0) CAMERA_END >; }; }; }; };