blob: 9a1389823580a385aa44c035cdf1f9082487eac7 [file] [log] [blame]
#include <dt-bindings/media/camera.h>
/ {
camera-pcl {
compatible = "nvidia,tegra124-camera", "simple-bus";
configuration = <0xAA55AA55>;
modules {
module1: module1@modules {
compatible = "sensor,rear";
badge_info = "e1823_rear_camera";
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: module4@modules {
compatible = "sensor,front";
badge_info = "e1823_front_camera";
sensor {
profile = <&ar0261_1>;
platformdata = "ardbeg_ar0261_pdata";
};
};
};
profiles {
as3648_1: as3648@2_0030 {
index = <4>;
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
>;
};
imx135_1: imx135@2_0010 {
index = <5>;
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
>;
};
ar0261_1: ar0261@2_0036 {
index = <6>;
chipname = "pcl_AR0261";
type = "sensor";
guid = "s_AR0261";
position = <1>;
bustype = "i2c";
busnum = <2>;
addr = <0x36>;
datalen = <2>;
pinmuxgrp = <0xFFFF>;
gpios = <3>;
regulators = "vana", "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
>;
};
dw9718_1: dw9718@2_000c {
index = <8>;
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
>;
};
};
};
};