]> rtime.felk.cvut.cz Git - sojka/nv-tegra/linux-3.10.git/commitdiff
ARM: dt: tegra: update camera module information
authorCharlie Huang <chahuang@nvidia.com>
Wed, 2 Apr 2014 00:47:05 +0000 (17:47 -0700)
committerThomas Cherry <tcherry@nvidia.com>
Thu, 3 Apr 2014 00:38:57 +0000 (17:38 -0700)
on both loki & tn8, added camera module data, defines the hierachy of
camera module structure.

also optimized the power on/off scripts by using meaningful macros.

Change-Id: I80bdf9846be046f050c31b8db00651c493869d51
Signed-off-by: Charlie Huang <chahuang@nvidia.com>
Reviewed-on: http://git-master/r/391034
Reviewed-by: Frank Chen <frankc@nvidia.com>
Reviewed-by: David Wang (SW-TEGRA) <davidw@nvidia.com>
Reviewed-by: Thomas Cherry <tcherry@nvidia.com>
arch/arm/boot/dts/tegra124-loki.dts
arch/arm/boot/dts/tegra124-platforms/tegra124-loki-camera-a00.dtsi [new file with mode: 0644]
arch/arm/boot/dts/tegra124-platforms/tegra124-tn8-camera-e1780-a00.dtsi
arch/arm/boot/dts/tegra124-platforms/tegra124-tn8-camera-p1761-a00.dtsi
include/dt-bindings/media/camera.h [new file with mode: 0644]

index 66707bd86f952fc79d61abaa018c999f33133e13..e8de5f816ddbf6e546f30760914a04235195ab28 100644 (file)
@@ -4,6 +4,7 @@
 #include <dt-bindings/gpio/tegra-gpio.h>
 #include <tegra124-platforms/tegra124-loki-gpio-default.dtsi>
 #include <tegra124-platforms/tegra124-loki-pinmux.dtsi>
+#include <tegra124-platforms/tegra124-loki-camera-a00.dtsi>
 
 
 / {
diff --git a/arch/arm/boot/dts/tegra124-platforms/tegra124-loki-camera-a00.dtsi b/arch/arm/boot/dts/tegra124-platforms/tegra124-loki-camera-a00.dtsi
new file mode 100644 (file)
index 0000000..4cf3b3b
--- /dev/null
@@ -0,0 +1,60 @@
+#include <dt-bindings/media/camera.h>
+
+/ {
+       camera-pcl {
+               compatible = "nvidia,tegra124-camera", "simple-bus";
+               configuration = <0xAA55AA55>;
+
+               modules {
+                       module1: module1@modules {
+                               compatible = "sensor,front";
+                               badge_info = "loki_front_camera_device";
+
+                               sensor {
+                                       profile = <&ov7695_1>;
+                                       platformdata = "loki_ov7695_pdata";
+                               };
+                       };
+               };
+
+               profiles {
+                       ov7695_1: ov7695@2_0021 {
+                               index = <7>;
+                               chipname = "pcl_OV7695";
+                               type = "sensor";
+                               guid = "s_OV7695";
+                               position = <1>;
+                               bustype = "i2c";
+                               busnum = <2>;
+                               addr = <0x21>;
+                               datalen = <2>;
+                               pinmuxgrp = <0xFFFF>;
+                               gpios = <3>;
+                               regulators = "vana", "vif2";
+                               clocks = "mclk2";
+                               drivername = "ov7695";
+                               detect = <0x0002 0x300A 0xFFFF 0x7695>;
+                               devid = <0x7695>;
+                               poweron = <
+                                       CAMERA_IND_CLK_SET(10000)
+                                       CAMERA_GPIO_CLR(222)
+                                       CAMERA_REGULATOR_ON(0)
+                                       CAMERA_REGULATOR_ON(1)
+                                       CAMERA_WAITMS(40)
+                                       CAMERA_GPIO_SET(222)
+                                       CAMERA_WAITMS(10)
+                                       CAMERA_END
+                                       >;
+                               poweroff = <
+                                       CAMERA_IND_CLK_CLR
+                                       CAMERA_GPIO_CLR(222)
+                                       CAMERA_WAITUS(10)
+                                       CAMERA_REGULATOR_OFF(1)
+                                       CAMERA_REGULATOR_OFF(0)
+                                       CAMERA_END
+                                       >;
+                       };
+               };
+       };
+};
+
index 3e45705571bc0aecd27673286d3ed08106aef632..8fa23ec20adc24e50ea31b250ceb7f58066f3d5b 100644 (file)
@@ -1,68 +1,76 @@
+#include <dt-bindings/media/camera.h>
+
 / {
        camera-pcl {
                compatible = "nvidia,tegra124-camera", "simple-bus";
                configuration = <0xAA55AA55>;
 
                modules {
-                       module1 {
+                       module1: module1@modules {
+                               compatible = "sensor,rear";
+                               badge_info = "e1793_rear_camera";
+
                                sensor {
-                                       devicename = "ov5693";
-                                       addr = <0x10>;
+                                       profile = <&ov5693_1>;
                                        platformdata = "ardbeg_ov5693_pdata";
                                };
                                focuser {
-                                       devicename = "ad5823";
-                                       addr = <0x0c>;
+                                       profile = <&ad5823_1>;
                                        platformdata = "ardbeg_ad5823_pdata";
                                };
                                flash {
-                                       devicename = "as3648";
-                                       addr = <0x30>;
+                                       profile = <&as3648_1>;
                                        platformdata = "ardbeg_as3648_pdata";
                                };
                        };
-                       module2 {
+                       module2: module2@modules {
+                               compatible = "sensor,front";
+                               badge_info = "e1793_front_camera";
+
                                sensor {
-                                       devicename = "mt9m114";
-                                       addr = <0x48>;
+                                       profile = <&mt9m114_1>;
                                        platformdata = "ardbeg_mt9m114_pdata";
                                };
                        };
-                       module3 {
+                       module3: module3@modules {
+                               compatible = "sensor,rear";
+                               badge_info = "e1823_rear_camera";
+
                                sensor {
-                                       devicename = "imx135";
-                                       addr = <0x10>;
+                                       profile = <&imx135_1>;
                                        platformdata = "ardbeg_imx135_pdata";
                                };
                                focuser {
-                                       devicename = "dw9718";
-                                       addr = <0x0c>;
+                                       profile = <&dw9718_1>;
                                        platformdata = "ardbeg_dw9718_pdata";
                                };
                                flash {
-                                       devicename = "as3648";
-                                       addr = <0x30>;
+                                       profile = <&as3648_1>;
                                        platformdata = "ardbeg_as3648_pdata";
                                };
                        };
-                       module4 {
+                       module4: module4@modules {
+                               compatible = "sensor,front";
+                               badge_info = "e1823_front_camera";
+
                                sensor {
-                                       devicename = "ar0261";
-                                       addr = <0x36>;
+                                       profile = <&ar0261_1>;
                                        platformdata = "ardbeg_ar0261_pdata";
                                };
                        };
-                       module5 {
+                       module5: module5@modules {
+                               compatible = "sensor,front";
+                               badge_info = "loki_front_camera_brd";
+
                                sensor {
-                                       devicename = "ov7695";
-                                       addr = <0x21>;
+                                       profile = <&ov7695_1>;
                                        platformdata = "ardbeg_ov7695_pdata";
                                };
                        };
                };
 
                profiles {
-                       profile1 {
+                       ov5693_1: ov5693@2_0010 {
                                index = <1>;
                                chipname = "pcl_OV5693";
                                type = "sensor";
                                drivername = "ov5693";
                                detect = <0x0002 0x300A 0xFFFF 0x5690>;
                                devid = <0x5693>;
-                               poweron = <0xF0000032 10000
-                                       0xF000001F 221
-                                       0xF0000002 1
-                                       0xF0000014 0x80000000
-                                       0xF0000014 0x80000001
-                                       0xF0000014 0x80000002
-                                       0xF0000002 1
-                                       0xF000001E 221
-                                       0xF0000002 10
-                                       0xF0000009 00000>;
-                               poweroff = <0xF0000032 0
-                                       0xF000001F 221
-                                       0xF0000001 10
-                                       0xF0000014 2
-                                       0xF0000014 1
-                                       0xF0000014 0
-                                       0xF0000009 00000>;
+                               poweron = <
+                                       CAMERA_IND_CLK_SET(10000)
+                                       CAMERA_GPIO_CLR(221)
+                                       CAMERA_WAITMS(1)
+                                       CAMERA_REGULATOR_ON(0)
+                                       CAMERA_REGULATOR_ON(1)
+                                       CAMERA_REGULATOR_ON(2)
+                                       CAMERA_WAITMS(1)
+                                       CAMERA_GPIO_SET(221)
+                                       CAMERA_WAITMS(10)
+                                       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
+                                       >;
                        };
-                       profile2 {
+                       mt9m114_1: mt9m114@2_0048 {
                                index = <2>;
                                chipname = "pcl_MT9M114";
                                type = "sensor";
                                drivername = "mt9m114";
                                detect = <0x0002 0x0000 0xFFFF 0x2481>;
                                devid = <0x1040>;
-                               poweron = <0xF0000032 10000
-                                       0xF000001F 219
-                                       0xF000001E 222
-                                       0xF0000014 0x80000000
-                                       0xF0000014 0x80000001
-                                       0xF0000002 10
-                                       0xF000001F 222
-                                       0xF000001E 219
-                                       0xF0000002 20
-                                       0xF0000009 00000>;
-                               poweroff = <0xF0000032 0
-                                       0xF000001E 222
-                                       0xF000001F 219
-                                       0xF0000001 10
-                                       0xF0000014 1
-                                       0xF0000014 0
-                                       0xF0000009 00000>;
+                               poweron = <
+                                       CAMERA_IND_CLK_SET(10000)
+                                       CAMERA_GPIO_CLR(219)
+                                       CAMERA_GPIO_SET(222)
+                                       CAMERA_REGULATOR_ON(0)
+                                       CAMERA_REGULATOR_ON(1)
+                                       CAMERA_WAITMS(10)
+                                       CAMERA_GPIO_CLR(222)
+                                       CAMERA_GPIO_SET(219)
+                                       CAMERA_WAITMS(20)
+                                       CAMERA_END
+                                       >;
+                               poweroff = <
+                                       CAMERA_IND_CLK_CLR
+                                       CAMERA_GPIO_SET(222)
+                                       CAMERA_GPIO_CLR(219)
+                                       CAMERA_WAITUS(10)
+                                       CAMERA_REGULATOR_OFF(1)
+                                       CAMERA_REGULATOR_OFF(0)
+                                       CAMERA_END
+                                       >;
                        };
-                       profile3 {
+                       ad5823_1: ad5823@2_000c {
                                index = <3>;
                                chipname = "pcl_AD5823";
                                type = "focuser";
                                drivername = "ad5823";
                                detect = <0x0002 0x0006 0xFFFF 0x0010>;
                                devid = <0x5823>;
-                               poweron = <0xF0000014 0x80000001
-                                       0xF0000014 0x80000000
-                                       0xF0000001 10
-                                       0xF000001E 223
-                                       0xF0000001 10
-                                       0xF0000009 00000>;
-                               poweroff = <0xF0000014 0
-                                       0xF0000014 1
-                                       0xF000001F 223
-                                       0xF0000001 10
-                                       0xF0000009 00000>;
+                               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
+                                       >;
                        };
-                       profile4 {
+                       as3648_1: as3648@2_0030 {
                                index = <4>;
                                chipname = "pcl_AS3648";
                                type = "flash";
                                drivername = "as3648";
                                detect = <0x0001 0x0000 0x00F0 0x00b0>;
                                devid = <0x3648>;
-                               poweron = <0xF0000014 0x80000001
-                                       0xF0000014 0x80000000
-                                       0xF0000001 1000
-                                       0xF0000009 00000>;
-                               poweroff = <0xF0000014 0
-                                       0xF0000014 1
-                                       0xF0000001 10
-                                       0xF0000009 00000>;
+                               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
+                                       >;
                        };
-                       profile5 {
+                       imx135_1: imx135@2_0010 {
                                index = <5>;
                                chipname = "pcl_IMX135";
                                type = "sensor";
                                drivername = "imx135";
                                detect = <0x0002 0x0016 0xFFFF 0x0135>;
                                devid = <0x0135>;
-                               poweron = <0xF0000032 10000
-                                       0xF000001F 221
-                                       0xF0000001 10
-                                       0xF0000014 0x80000002
-                                       0xF0000014 0x80000001
-                                       0xF0000014 0x80000000
-                                       0xF0000002 5
-                                       0xF000001E 221
-                                       0xF0000001 300
-                                       0xF0000009 00000>;
-                               poweroff = <0xF0000032 0
-                                       0xF000001F 221
-                                       0xF0000001 10
-                                       0xF0000014 2
-                                       0xF0000014 1
-                                       0xF0000014 0
-                                       0xF0000009 00000>;
+                               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
+                                       >;
                        };
-                       profile6 {
+                       ar0261_1: ar0261@2_0036 {
                                index = <6>;
                                chipname = "pcl_AR0261";
                                type = "sensor";
                                drivername = "ar0261";
                                detect = <0x0002 0x0003 0xFFFF 0x060A>;
                                devid = <0x0261>;
-                               poweron = <0xF0000032 10000
-                                       0xF000001F 219
-                                       0xF0000014 0x80000000
-                                       0xF0000014 0x80000001
-                                       0xF0000014 0x80000002
-                                       0xF0000002 40
-                                       0xF000001E 219
-                                       0xF0000002 20
-                                       0xF0000009 00000>;
-                               poweroff = <0xF0000032 0
-                                       0xF000001F 219
-                                       0xF0000001 10
-                                       0xF0000014 2
-                                       0xF0000014 1
-                                       0xF0000014 0
-                                       0xF0000009 00000>;
+                               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
+                                       >;
                        };
-                       profile7 {
+                       ov7695_1: ov7695@2_0021 {
                                index = <7>;
                                chipname = "pcl_OV7695";
                                type = "sensor";
                                drivername = "ov7695";
                                detect = <0x0002 0x300A 0xFFFF 0x7695>;
                                devid = <0x7695>;
-                               poweron = <0xF0000032 10000
-                                       0xF000001F 222
-                                       0xF0000014 0x80000000
-                                       0xF0000014 0x80000001
-                                       0xF0000002 40
-                                       0xF000001E 222
-                                       0xF0000002 10
-                                       0xF0000009 00000>;
-                               poweroff = <0xF0000032 0
-                                       0xF000001F 222
-                                       0xF0000001 10
-                                       0xF0000014 1
-                                       0xF0000014 0
-                                       0xF0000009 00000>;
+                               poweron = <
+                                       CAMERA_IND_CLK_SET(10000)
+                                       CAMERA_GPIO_CLR(222)
+                                       CAMERA_REGULATOR_ON(0)
+                                       CAMERA_REGULATOR_ON(1)
+                                       CAMERA_WAITMS(40)
+                                       CAMERA_GPIO_SET(222)
+                                       CAMERA_WAITMS(10)
+                                       CAMERA_END
+                                       >;
+                               poweroff = <
+                                       CAMERA_IND_CLK_CLR
+                                       CAMERA_GPIO_CLR(222)
+                                       CAMERA_WAITUS(10)
+                                       CAMERA_REGULATOR_OFF(1)
+                                       CAMERA_REGULATOR_OFF(0)
+                                       CAMERA_END
+                                       >;
                        };
-                       profile8 {
+                       dw9718_1: dw9718@2_000c {
                                index = <8>;
                                chipname = "pcl_DW9718";
                                type = "focuser";
                                drivername = "dw9718";
                                detect = <0x0002 0x0004 0xFFFF 0x0060>;
                                devid = <0x9718>;
-                               poweron = <0xF0000014 0x80000001
-                                       0xF0000014 0x80000000
-                                       0xF0000001 10
-                                       0xF000001E 223
-                                       0xF0000001 10
-                                       0xF0000009 00000>;
-                               poweroff = <0xF0000014 0
-                                       0xF0000014 1
-                                       0xF000001F 223
-                                       0xF0000001 10
-                                       0xF0000009 00000>;
-                       };
-                       profile9 {
-                               index = <9>;
-                               chipname = "pcl_MAX77387";
-                               type = "flash";
-                               guid = "l_NVCAM0";
-                               position = <0>;
-                               bustype = "i2c";
-                               busnum = <2>;
-                               addr = <0x4A>;
-                               datalen = <1>;
-                               pinmuxgrp = <0xFFFF>;
-                               gpios = <3>;
-                               regulators = "vdd", "vin";
-                               drivername = "max77387";
-                               detect = <0x0002 0x0000 0xFF00 0x9100>;
-                               devid = <0x77387>;
-                               poweron = <0xF0000014 0x80000001
-                                       0xF0000014 0x80000000
-                                       0xF0000001 10
-                                       0xF0000009 00000>;
-                               poweroff = <0xF0000014 0
-                                       0xF0000014 1
-                                       0xF0000001 10
-                                       0xF0000009 00000>;
+                               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
+                                       >;
                        };
                };
        };
index ac733ab4a42b60a3b8d0767f084f5f58e90713a3..bdb4cfd344ae5bc73a7b6730cb11c728e7a015a2 100644 (file)
@@ -1,32 +1,37 @@
+#include <dt-bindings/media/camera.h>
+
 / {
        camera-pcl {
                compatible = "nvidia,tegra124-camera", "simple-bus";
                configuration = <0xAA55AA55>;
 
                modules {
-                       module1 {
+                       module1: module1@modules {
+                               compatible = "sensor,rear";
+                               badge_info = "e1793_rear_camera";
+
                                sensor {
-                                       devicename = "ov5693";
-                                       addr = <0x10>;
+                                       profile = <&ov5693_1>;
                                        platformdata = "ardbeg_ov5693_pdata";
                                };
                                focuser {
-                                       devicename = "ad5823";
-                                       addr = <0x0c>;
+                                       profile = <&ad5823_1>;
                                        platformdata = "ardbeg_ad5823_pdata";
                                };
                        };
-                       module2 {
+                       module2: module2@modules {
+                               compatible = "sensor,front";
+                               badge_info = "e1793_front_camera";
+
                                sensor {
-                                       devicename = "mt9m114";
-                                       addr = <0x48>;
+                                       profile = <&mt9m114_1>;
                                        platformdata = "ardbeg_mt9m114_pdata";
                                };
                        };
                };
 
                profiles {
-                       profile1 {
+                       ov5693_1: ov5693@2_0010 {
                                index = <1>;
                                chipname = "pcl_OV5693";
                                type = "sensor";
                                drivername = "ov5693";
                                detect = <0x0002 0x300A 0xFFFF 0x5690>;
                                devid = <0x5693>;
-                               poweron = <0xF0000032 10000
-                                       0xF000001F 221
-                                       0xF0000002 1
-                                       0xF0000014 0x80000000
-                                       0xF0000014 0x80000001
-                                       0xF0000014 0x80000002
-                                       0xF0000002 1
-                                       0xF000001E 221
-                                       0xF0000002 10
-                                       0xF0000009 00000>;
-                               poweroff = <0xF0000032 0
-                                       0xF000001F 221
-                                       0xF0000001 10
-                                       0xF0000014 2
-                                       0xF0000014 1
-                                       0xF0000014 0
-                                       0xF0000009 00000>;
+                               poweron = <
+                                       CAMERA_IND_CLK_SET(10000)
+                                       CAMERA_GPIO_CLR(221)
+                                       CAMERA_WAITMS(1)
+                                       CAMERA_REGULATOR_ON(0)
+                                       CAMERA_REGULATOR_ON(1)
+                                       CAMERA_REGULATOR_ON(2)
+                                       CAMERA_WAITMS(1)
+                                       CAMERA_GPIO_SET(221)
+                                       CAMERA_WAITMS(10)
+                                       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
+                                       >;
                        };
-                       profile2 {
+                       mt9m114_1: mt9m114@2_0048 {
                                index = <2>;
                                chipname = "pcl_MT9M114";
                                type = "sensor";
                                drivername = "mt9m114";
                                detect = <0x0002 0x0000 0xFFFF 0x2481>;
                                devid = <0x1040>;
-                               poweron = <0xF0000032 10000
-                                       0xF000001F 219
-                                       0xF000001E 222
-                                       0xF0000014 0x80000000
-                                       0xF0000014 0x80000001
-                                       0xF0000002 10
-                                       0xF000001F 222
-                                       0xF000001E 219
-                                       0xF0000002 20
-                                       0xF0000009 00000>;
-                               poweroff = <0xF0000032 0
-                                       0xF000001E 222
-                                       0xF000001F 219
-                                       0xF0000001 10
-                                       0xF0000014 1
-                                       0xF0000014 0
-                                       0xF0000009 00000>;
+                               poweron = <
+                                       CAMERA_IND_CLK_SET(10000)
+                                       CAMERA_GPIO_CLR(219)
+                                       CAMERA_GPIO_SET(222)
+                                       CAMERA_REGULATOR_ON(0)
+                                       CAMERA_REGULATOR_ON(1)
+                                       CAMERA_WAITMS(10)
+                                       CAMERA_GPIO_CLR(222)
+                                       CAMERA_GPIO_SET(219)
+                                       CAMERA_WAITMS(20)
+                                       CAMERA_END
+                                       >;
+                               poweroff = <
+                                       CAMERA_IND_CLK_CLR
+                                       CAMERA_GPIO_SET(222)
+                                       CAMERA_GPIO_CLR(219)
+                                       CAMERA_WAITUS(10)
+                                       CAMERA_REGULATOR_OFF(1)
+                                       CAMERA_REGULATOR_OFF(0)
+                                       CAMERA_END
+                                       >;
                        };
-                       profile3 {
+                       ad5823_1: ad5823@2_000c {
                                index = <3>;
                                chipname = "pcl_AD5823";
                                type = "focuser";
                                drivername = "ad5823";
                                detect = <0x0002 0x0006 0xFFFF 0x0010>;
                                devid = <0x5823>;
-                               poweron = <0xF0000014 0x80000001
-                                       0xF0000014 0x80000000
-                                       0xF0000001 10
-                                       0xF000001E 223
-                                       0xF0000001 10
-                                       0xF0000009 00000>;
-                               poweroff = <0xF0000014 0
-                                       0xF0000014 1
-                                       0xF000001F 223
-                                       0xF0000001 10
-                                       0xF0000009 00000>;
+                               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/include/dt-bindings/media/camera.h b/include/dt-bindings/media/camera.h
new file mode 100644 (file)
index 0000000..78932d7
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * This header provides constants for binding nvidia,camera.
+ *
+ */
+
+#ifndef __DT_BINDINGS_MEDIA_CAMERA_H__
+#define __DT_BINDINGS_MEDIA_CAMERA_H__
+
+#define NV_TRUE                        1
+#define        NV_FALSE                0
+
+#define CAMERA_INT_MASK                        0xf0000000
+#define CAMERA_TABLE_WAIT_US           (CAMERA_INT_MASK | 1)
+#define CAMERA_TABLE_WAIT_MS           (CAMERA_INT_MASK | 2)
+#define CAMERA_TABLE_END               (CAMERA_INT_MASK | 9)
+#define CAMERA_TABLE_PWR               (CAMERA_INT_MASK | 20)
+#define CAMERA_TABLE_PINMUX            (CAMERA_INT_MASK | 25)
+#define CAMERA_TABLE_INX_PINMUX                (CAMERA_INT_MASK | 26)
+#define CAMERA_TABLE_GPIO_ACT          (CAMERA_INT_MASK | 30)
+#define CAMERA_TABLE_GPIO_DEACT                (CAMERA_INT_MASK | 31)
+#define CAMERA_TABLE_GPIO_INX_ACT      (CAMERA_INT_MASK | 32)
+#define CAMERA_TABLE_GPIO_INX_DEACT    (CAMERA_INT_MASK | 33)
+#define CAMERA_TABLE_REG_NEW_POWER     (CAMERA_INT_MASK | 40)
+#define CAMERA_TABLE_INX_POWER         (CAMERA_INT_MASK | 41)
+#define CAMERA_TABLE_INX_CLOCK         (CAMERA_INT_MASK | 50)
+#define CAMERA_TABLE_INX_CGATE         (CAMERA_INT_MASK | 51)
+#define CAMERA_TABLE_EDP_STATE         (CAMERA_INT_MASK | 60)
+
+#define CAMERA_TABLE_PWR_FLAG_MASK     0xf0000000
+#define CAMERA_TABLE_PWR_FLAG_ON       0x80000000
+#define CAMERA_TABLE_PINMUX_FLAG_MASK  0xf0000000
+#define CAMERA_TABLE_PINMUX_FLAG_ON    0x80000000
+#define CAMERA_TABLE_CLOCK_VALUE_BITS  24
+#define CAMERA_TABLE_CLOCK_VALUE_MASK  \
+                       ((u32)(-1) >> (32 - CAMERA_TABLE_CLOCK_VALUE_BITS))
+#define CAMERA_TABLE_CLOCK_INDEX_BITS  (32 - CAMERA_TABLE_CLOCK_VALUE_BITS)
+#define CAMERA_TABLE_CLOCK_INDEX_MASK  \
+                       ((u32)(-1) << (32 - CAMERA_TABLE_CLOCK_INDEX_BITS))
+
+#define CAMERA_PWR_ON(x)       (CAMERA_TABLE_PWR_FLAG_ON + x)
+#define CAMERA_PWR_OFF(x)      x
+
+#define CAMERA_MAX_EDP_ENTRIES  16
+#define CAMERA_MAX_NAME_LENGTH 32
+#define CAMDEV_INVALID         0xffffffff
+
+#define        CAMERA_SEQ_STATUS_MASK  0xf0000000
+#define        CAMERA_SEQ_INDEX_MASK   0x0000ffff
+#define        CAMERA_SEQ_FLAG_MASK    (~CAMERA_SEQ_INDEX_MASK)
+#define        CAMERA_SEQ_FLAG_EDP     0x80000000
+
+#define CAMERA_IND_CLK_SET(x)  CAMERA_TABLE_INX_CLOCK x
+#define CAMERA_IND_CLK_CLR     CAMERA_TABLE_INX_CLOCK 0
+#define CAMERA_GPIO_SET(x)     CAMERA_TABLE_GPIO_ACT x
+#define CAMERA_GPIO_CLR(x)     CAMERA_TABLE_GPIO_DEACT x
+#define CAMERA_REGULATOR_ON(x) CAMERA_TABLE_PWR CAMERA_PWR_ON(x)
+#define CAMERA_REGULATOR_OFF(x)        CAMERA_TABLE_PWR CAMERA_PWR_OFF(x)
+#define CAMERA_WAITMS(x)       CAMERA_TABLE_WAIT_MS x
+#define CAMERA_WAITUS(x)       CAMERA_TABLE_WAIT_US x
+#define CAMERA_END             CAMERA_TABLE_END 0
+
+#endif
+/* __DT_BINDINGS_MEDIA_CAMERA_H__ */