From a6c182557985a54fd06a8e5fa4185445cb041f56 Mon Sep 17 00:00:00 2001 From: wangdw10 Date: Thu, 11 Jul 2019 12:53:16 +0800 Subject: [PATCH] arm/dts: kane/Troika : add camera support for q upgrade Change-Id: Ia17b1bb06aaf9d9bf47a4850000db7bf4c407e34 Signed-off-by: wangdw10 Reviewed-on: https://gerrit.mot.com/1384346 SLTApproved: Slta Waiver SME-Granted: SME Approvals Granted Submit-Approved: Jira Key Tested-by: Jira Key Reviewed-by: Dawei Wang --- .../boot/dts/exynos/exynos9609-troika_evb.dts | 1 + .../exynos/exynos9610-robusta2-camera.dtsi | 116 +-- .../dts/exynos/exynos9610-troika-camera.dtsi | 844 ++++++++++++++++++ 3 files changed, 852 insertions(+), 109 deletions(-) mode change 100755 => 100644 arch/arm64/boot/dts/exynos/exynos9610-robusta2-camera.dtsi create mode 100755 arch/arm64/boot/dts/exynos/exynos9610-troika-camera.dtsi diff --git a/arch/arm64/boot/dts/exynos/exynos9609-troika_evb.dts b/arch/arm64/boot/dts/exynos/exynos9609-troika_evb.dts index c032e7bc4f4e..17bf48bfef45 100755 --- a/arch/arm64/boot/dts/exynos/exynos9609-troika_evb.dts +++ b/arch/arm64/boot/dts/exynos/exynos9609-troika_evb.dts @@ -12,6 +12,7 @@ /dts-v1/; /plugin/; +#include "exynos9610-troika-camera.dtsi" #include "exynos9610-troika-common.dtsi" / { diff --git a/arch/arm64/boot/dts/exynos/exynos9610-robusta2-camera.dtsi b/arch/arm64/boot/dts/exynos/exynos9610-robusta2-camera.dtsi old mode 100755 new mode 100644 index 13a352363415..0b0494e14752 --- a/arch/arm64/boot/dts/exynos/exynos9610-robusta2-camera.dtsi +++ b/arch/arm64/boot/dts/exynos/exynos9610-robusta2-camera.dtsi @@ -137,7 +137,7 @@ }; flash { - product_name = <14>; /* NOTHING */ + product_name = <100>; /* NOTHING */ }; ois { @@ -156,13 +156,6 @@ status = "okay"; }; - fimc_is_flash_s2mu106_action: fimc-is-flash-s2mu106_action@14 { - compatible = "samsung,sensor-flash-s2mu106"; - id = <1>; - led_ch = <1 2>; /* CH1 ~ CH4, CH0 not exist */ - status = "okay"; - }; - }; /* end of __overlay__ */ }; /* end of fragment */ }; /* end of root */ @@ -223,7 +216,7 @@ front_preview_uhd_int = ; front_preview_uhd_hpg = <1>; - front_preview_int_cam = ; + front_preview_int_cam = ; front_preview_cam = ; front_preview_mif = ; front_preview_int = ; @@ -241,7 +234,7 @@ front_capture_int = ; front_capture_hpg = <1>; - front_video_int_cam = ; + front_video_int_cam = ; front_video_cam = ; front_video_mif = ; front_video_int = ; @@ -403,84 +396,6 @@ rear_video_high_speed_240fps_int = ; rear_video_high_speed_240fps_hpg = <1>; - rear3_preview_fhd_int_cam = ; - rear3_preview_fhd_cam = ; - rear3_preview_fhd_mif = ; - rear3_preview_fhd_int = ; - rear3_preview_fhd_hpg = <1>; - - rear3_preview_hd_int_cam = ; - rear3_preview_hd_cam = ; - rear3_preview_hd_mif = ; - rear3_preview_hd_int = ; - rear3_preview_hd_hpg = <1>; - - rear3_preview_uhd_int_cam = ; - rear3_preview_uhd_cam = ; - rear3_preview_uhd_mif = ; - rear3_preview_uhd_int = ; - rear3_preview_uhd_hpg = <1>; - - rear3_preview_full_int_cam = ; - rear3_preview_full_cam = ; - rear3_preview_full_mif = ; - rear3_preview_full_int = ; - rear3_preview_full_hpg = <1>; - - rear3_capture_int_cam = ; - rear3_capture_cam = ; - rear3_capture_mif = ; - rear3_capture_int = ; - rear3_capture_hpg = <1>; - - rear3_video_fhd_int_cam = ; - rear3_video_fhd_cam = ; - rear3_video_fhd_mif = ; - rear3_video_fhd_int = ; - rear3_video_fhd_hpg = <1>; - - rear3_video_hd_int_cam = ; - rear3_video_hd_cam = ; - rear3_video_hd_mif = ; - rear3_video_hd_int = ; - rear3_video_hd_hpg = <1>; - - rear3_video_uhd_int_cam = ; - rear3_video_uhd_cam = ; - rear3_video_uhd_mif = ; - rear3_video_uhd_int = ; - rear3_video_uhd_hpg = <1>; - - rear3_video_fhd_capture_int_cam = ; - rear3_video_fhd_capture_cam = ; - rear3_video_fhd_capture_mif = ; - rear3_video_fhd_capture_int = ; - rear3_video_fhd_capture_hpg = <1>; - - rear3_video_hd_capture_int_cam = ; - rear3_video_hd_capture_cam = ; - rear3_video_hd_capture_mif = ; - rear3_video_hd_capture_int = ; - rear3_video_hd_capture_hpg = <1>; - - rear3_video_uhd_capture_int_cam = ; - rear3_video_uhd_capture_cam = ; - rear3_video_uhd_capture_mif = ; - rear3_video_uhd_capture_int = ; - rear3_video_uhd_capture_hpg = <1>; - - rear3_video_high_speed_60fps_int_cam = ; - rear3_video_high_speed_60fps_cam = ; - rear3_video_high_speed_60fps_mif = ; - rear3_video_high_speed_60fps_int = ; - rear3_video_high_speed_60fps_hpg = <1>; - - rear3_video_high_speed_120fps_int_cam = ; - rear3_video_high_speed_120fps_cam = ; - rear3_video_high_speed_120fps_mif = ; - rear3_video_high_speed_120fps_int = ; - rear3_video_high_speed_120fps_hpg = <1>; - dual_preview_int_cam = ; dual_preview_cam = ; dual_preview_mif = ; @@ -626,7 +541,7 @@ &hsi2c_12 { gpios = <&gpc0 0 0 &gpc0 1 0>; status = "okay"; - clock-frequency = <900000>; + clock-frequency = <1000000>; samsung,reset-before-trans; samsung,fast-plus-mode; @@ -667,10 +582,9 @@ &hsi2c_13 { gpios = <&gpc0 2 0 &gpc0 3 0>; status = "okay"; - clock-frequency = <900000>; + clock-frequency = <400000>; samsung,reset-before-trans; - samsung,fast-plus-mode; #address-cells = <1>; #size-cells = <0>; @@ -720,7 +634,7 @@ flite_ch = ; is_bns = <0>; csi_mux = <0>; /* CSIS_DPHY[2:0] = [0 0 0] */ - multi_ch = <2>; + multi_ch = <1>; use_ssvc1_internal; use_ssvc2_internal; status = "okay"; @@ -742,31 +656,15 @@ &fimc_is_sensor2 { scenario = ; /* Normal, Vision, OIS etc */ - interrupts = <0 327 0>, /* MIPI-CSI2 */ - <0 334 0>, /* VC0 DMA3 */ - <0 333 0>, /* VC1 DMA2 */ - <0 333 0>, /* VC2 DMA2 */ - <0 333 0>; /* VC3 DMA2 */ id = <2>; csi_ch = <2>; dma_ch = <3 2 2 2>; - vc_ch = <1 1 2 3>; + vc_ch = <0 1 2 3>; flite_ch = ; is_bns = <0>; csi_mux = <0>; /* CSIS_DPHY[2:0] = [0 0 0] */ multi_ch = <0>; - camif_mux_val = <0x005820FF>; status = "okay"; - sensor2_ch_mode0: sensor2-ch-mode0 { - reg = <0x14480100 0x100>, /* VC0 DMA3 */ - <0x14480400 0x100>, /* VC0 DMA3 COMMON */ - <0x14470100 0x100>, /* VC1 DMA2 */ - <0x14470400 0x100>, /* VC1 DMA2 COMMON */ - <0x14470200 0x100>, /* VC2 DMA2 */ - <0x14470400 0x100>, /* VC2 DMA2 COMMON */ - <0x14470300 0x100>, /* VC3 DMA2 */ - <0x14470400 0x100>; /* VC3 DMA2 COMMON */ - }; }; &fimc_is_sensor3 { diff --git a/arch/arm64/boot/dts/exynos/exynos9610-troika-camera.dtsi b/arch/arm64/boot/dts/exynos/exynos9610-troika-camera.dtsi new file mode 100755 index 000000000000..26ab848db175 --- /dev/null +++ b/arch/arm64/boot/dts/exynos/exynos9610-troika-camera.dtsi @@ -0,0 +1,844 @@ +/* + * SAMSUNG EXYNOS9610 board camera device tree source + * + * Copyright (c) 2018 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include + +/ { + fragment@camera { + target-path = "/"; + __overlay__ { + /* Rear Master */ + fimc_is_sensor_12a10: fimc-is_sensor_12a10@208 { + compatible = "samsung,sensor-module-12a10"; + + pinctrl-names = "pin0", "pin1", "pin2", "release"; + pinctrl-0 = <>; + pinctrl-1 = <&fimc_is_mclk0_out>; + pinctrl-2 = <&fimc_is_mclk0_fn>; + pinctrl-3 = <>; + + position = <0>; /* Rear:0. Front:1. Rear_sub:2. Secure:3. */ + id = <0>; /* fimc_is_sensor id */ + mclk_ch = <0>; + sensor_i2c_ch = <0>; /* SENSOR_CONTROL_I2C0 */ + + gpio_mclk = <&gpc2 0 0x1>; + gpio_reset = <&gpc1 0 0x1>; /* sensor reset */ + + gpio_avdd_en = <&gpg2 6 0x1>; /* RCAM_MAIN_AVDD_EN */ + gpio_dvdd_en = <&gpg2 4 0x1>; /* RCAM_DVDD_EN */ + gpio_iovdd_en = <&gpg2 5 0x1>; /* CAM_IOVDD_EN */ + + status = "okay"; + + af { + product_name = <20>; /* ACTUATOR_NAME_LC898217 20 */ + i2c_ch = <0>; /* SENSOR_CONTROL_I2C0 */ + }; + + flash { + product_name = <14>; /* FLADRV_NAME_S2MU106 */ + }; + + ois { + product_name = <100>; /* NOTHING */ + }; + + eeprom { + product_name = <3>; /* EEPROM_NAME_OV12A10 */ + }; + + internal_vc { + vc_list = <1 VC_PRIVATE 0 2 VC_MIPISTAT 0>; + }; + }; + + /* Rear slave */ + fimc_is_sensor_5e9: fimc-is_sensor_5e9@41 { + compatible = "samsung,sensor-module-5e9"; + + pinctrl-names = "pin0", "pin1", "pin2", "release"; + pinctrl-0 = <>; + pinctrl-1 = <&fimc_is_mclk3_out>; + pinctrl-2 = <&fimc_is_mclk3_fn>; + pinctrl-3 = <>; + + position = <2>; /* Rear:0. Front:1. Rear_sub:2. Secure:3. */ + id = <3>; /* fimc_is_sensor id */ + mclk_ch = <3>; + sensor_i2c_ch = <3>; /* SENSOR_CONTROL_I2C1 */ + + gpio_mclk = <&gpg3 5 0x1>; + gpio_reset = <&gpc1 1 0x1>; /* sensor reset */ + + gpio_iovdd_en = <&gpg2 5 0x1>; /* CAM_IOVDD_EN */ + + power_seq_idx = <0>; /* power on/off sequence index */ + setfile_idx = <1>; /* setfile index */ + status = "okay"; + + af { + product_name = <100>; /* NOTHING */ + }; + + flash { + product_name = <100>; /* NOTHING */ + }; + + ois { + product_name = <100>; /* NOTHING */ + }; + + internal_vc { + /* DUMMY */ + }; + }; + + /* Front */ + fimc_is_sensor_12a10ff: fimc-is_sensor_12a10ff@209 { + compatible = "samsung,sensor-module-12a10ff"; + + pinctrl-names = "pin0", "pin1", "pin2", "release"; + pinctrl-0 = <>; + pinctrl-1 = <&fimc_is_mclk1_out>; + pinctrl-2 = <&fimc_is_mclk1_fn>; + pinctrl-3 = <>; + + position = <1>; /* Rear:0. Front:1. Rear_sub:2. Secure:3. */ + id = <2>; /* fimc_is_sensor id */ + mclk_ch = <1>; + sensor_i2c_ch = <1>; /* SENSOR_CONTROL_I2C1 */ + + gpio_mclk = <&gpc2 1 0x1>; + gpio_reset = <&gpc1 3 0x1>; /* sensor reset */ + + gpio_avdd_en = <&gpg2 3 0x1>; /* FCAM_AVDD_EN */ + gpio_dvdd_en = <&gpg2 4 0x1>; /* FCAM_DVDD_EN */ + gpio_iovdd_en = <&gpg2 5 0x1>; /* CAM_IOVDD_EN */ + + status = "okay"; + + af { + product_name = <100>; /* NOTHING */ + }; + + flash { + product_name = <100>; /* NOTHING */ + }; + + ois { + product_name = <100>; /* NOTHING */ + }; + + eeprom { + product_name = <4>; /* EEPROM_NAME_OV12A10FF */ + }; + + internal_vc { + /* DUMMY */ + }; + }; + + /* Rear Action */ + fimc_is_sensor_16885c: fimc-is_sensor_16885c@210 { + compatible = "samsung,sensor-module-16885c"; + + pinctrl-names = "pin0", "pin1", "pin2", "release"; + pinctrl-0 = <>; + pinctrl-1 = <&fimc_is_mclk2_out>; + pinctrl-2 = <&fimc_is_mclk2_fn>; + pinctrl-3 = <>; + + position = <4>; /* Rear:0. Front:1. Rear_sub:2. Secure:3. */ + id = <1>; /* fimc_is_sensor id */ + mclk_ch = <2>; + sensor_i2c_ch = <2>; /* SENSOR_CONTROL_I2C2 */ + + gpio_mclk = <&gpc2 2 0x1>; + gpio_reset = <&gpc1 2 0x1>; /* sensor reset */ + + gpio_avdd_en = <&gpm24 0 0x1>; /* CAM3_AVDD_EN */ + gpio_dvdd_en = <&gpg2 7 0x1>; /* CAM3_DVDD_EN */ + gpio_iovdd_en = <&gpg2 5 0x1>; /* CAM_IOVDD_EN */ + + status = "okay"; + + af { + product_name = <100>; /* NOTHING */ + }; + + flash { + product_name = <14>; /* NOTHING */ + }; + + ois { + product_name = <100>; /* NOTHING */ + }; + + eeprom { + product_name = <5>; /* EEPROM_NAME_OV16885C */ + }; + + internal_vc { + vc_list = <3 VC_EMBEDDED 0>; + }; + }; + + fimc_is_flash_s2mu106: fimc-is-flash-s2mu106@14 { + compatible = "samsung,sensor-flash-s2mu106"; + id = <0>; + led_ch = <1 2>; /* CH1 ~ CH4, CH0 not exist */ + status = "okay"; + }; + + fimc_is_flash_s2mu106_action: fimc-is-flash-s2mu106_action@14 { + compatible = "samsung,sensor-flash-s2mu106"; + id = <1>; + led_ch = <1 2>; /* CH1 ~ CH4, CH0 not exist */ + status = "okay"; + }; + + }; /* end of __overlay__ */ + }; /* end of fragment */ +}; /* end of root */ + +/***** reference symbol node *****/ + +&fimc_is { + vender { + rear_sensor_id = <208>; /* 208: 12a10 */ + front_sensor_id = <209>; /* 209: 12a10ff */ + rear2_sensor_id = <41>; /* 41: 5E9 */ + rear3_sensor_id = <210>; /* 210: 16885c */ + }; + + fimc_is_dvfs { + #define DVFS_INT_CAM_L0 690000 + #define DVFS_INT_CAM_L1 680000 + #define DVFS_INT_CAM_L2 670000 + #define DVFS_INT_CAM_L3 660000 + #define DVFS_INT_CAM_L4 650000 + + #define DVFS_INT_L0 667000 + #define DVFS_INT_L1 533000 + #define DVFS_INT_L2 400000 + #define DVFS_INT_L3 200000 + #define DVFS_INT_L4 100000 + + #define DVFS_CAM_L0 700000 + #define DVFS_CAM_L1 690000 + #define DVFS_CAM_L2 680000 + #define DVFS_CAM_L3 670000 + #define DVFS_CAM_L4 660000 + #define DVFS_CAM_L5 650000 + #define DVFS_CAM_L6 640000 + + #define DVFS_MIF_L0 2093000 + #define DVFS_MIF_L1 2002000 + #define DVFS_MIF_L2 1794000 + #define DVFS_MIF_L3 1539000 + #define DVFS_MIF_L4 1352000 + #define DVFS_MIF_L5 1014000 + #define DVFS_MIF_L6 845000 + #define DVFS_MIF_L7 676000 + #define DVFS_MIF_L8 546000 + #define DVFS_MIF_L9 419000 + + table0 { + desc = "dvfs table v0.2.a for Robusta2 Play"; + + default_int_cam = ; + default_cam = ; + default_mif = ; + default_int = ; + default_hpg = <1>; + + front_preview_uhd_int_cam = ; + front_preview_uhd_cam = ; + front_preview_uhd_mif = ; + front_preview_uhd_int = ; + front_preview_uhd_hpg = <1>; + + front_preview_int_cam = ; + front_preview_cam = ; + front_preview_mif = ; + front_preview_int = ; + front_preview_hpg = <1>; + + front_preview_full_int_cam = ; + front_preview_full_cam = ; + front_preview_full_mif = ; + front_preview_full_int = ; + front_preview_full_hpg = <1>; + + front_capture_int_cam = ; + front_capture_cam = ; + front_capture_mif = ; + front_capture_int = ; + front_capture_hpg = <1>; + + front_video_int_cam = ; + front_video_cam = ; + front_video_mif = ; + front_video_int = ; + front_video_hpg = <1>; + + front_video_capture_int_cam = ; + front_video_capture_cam = ; + front_video_capture_mif = ; + front_video_capture_int = ; + front_video_capture_hpg = <1>; + + front_wide_selfie_int_cam = ; + front_wide_selfie_cam = ; + front_wide_selfie_mif = ; + front_wide_selfie_int = ; + front_wide_selfie_hpg = <1>; + + front_vt1_int_cam = ; + front_vt1_cam = ; + front_vt1_mif = ; + front_vt1_int = ; + front_vt1_hpg = <1>; + + front_vt2_int_cam = ; + front_vt2_cam = ; + front_vt2_mif = ; + front_vt2_int = ; + front_vt2_hpg = <1>; + + front_vt4_int_cam = ; + front_vt4_cam = ; + front_vt4_mif = ; + front_vt4_int = ; + front_vt4_hpg = <1>; + + front_video_high_speed_60fps_int_cam = ; + front_video_high_speed_60fps_cam = ; + front_video_high_speed_60fps_mif = ; + front_video_high_speed_60fps_int = ; + front_video_high_speed_60fps_hpg = <1>; + + front_video_high_speed_120fps_int_cam = ; + front_video_high_speed_120fps_cam = ; + front_video_high_speed_120fps_mif = ; + front_video_high_speed_120fps_int = ; + front_video_high_speed_120fps_hpg = <1>; + + front_video_high_speed_240fps_int_cam = ; + front_video_high_speed_240fps_cam = ; + front_video_high_speed_240fps_mif = ; + front_video_high_speed_240fps_int = ; + front_video_high_speed_240fps_hpg = <1>; + + rear2_preview_fhd_int_cam = ; + rear2_preview_fhd_cam = ; + rear2_preview_fhd_mif = ; + rear2_preview_fhd_int = ; + rear2_preview_fhd_hpg = <1>; + + rear2_capture_int_cam = ; + rear2_capture_cam = ; + rear2_capture_mif = ; + rear2_capture_int = ; + rear2_capture_hpg = <1>; + + rear2_video_fhd_int_cam = ; + rear2_video_fhd_cam = ; + rear2_video_fhd_mif = ; + rear2_video_fhd_int = ; + rear2_video_fhd_hpg = <1>; + + rear2_video_fhd_capture_int_cam = ; + rear2_video_fhd_capture_cam = ; + rear2_video_fhd_capture_mif = ; + rear2_video_fhd_capture_int = ; + rear2_video_fhd_capture_hpg = <1>; + + rear_preview_fhd_int_cam = ; + rear_preview_fhd_cam = ; + rear_preview_fhd_mif = ; + rear_preview_fhd_int = ; + rear_preview_fhd_hpg = <1>; + + rear_preview_hd_int_cam = ; + rear_preview_hd_cam = ; + rear_preview_hd_mif = ; + rear_preview_hd_int = ; + rear_preview_hd_hpg = <1>; + + rear_preview_uhd_int_cam = ; + rear_preview_uhd_cam = ; + rear_preview_uhd_mif = ; + rear_preview_uhd_int = ; + rear_preview_uhd_hpg = <1>; + + rear_preview_full_int_cam = ; + rear_preview_full_cam = ; + rear_preview_full_mif = ; + rear_preview_full_int = ; + rear_preview_full_hpg = <1>; + + rear_capture_int_cam = ; + rear_capture_cam = ; + rear_capture_mif = ; + rear_capture_int = ; + rear_capture_hpg = <1>; + + rear_video_fhd_int_cam = ; + rear_video_fhd_cam = ; + rear_video_fhd_mif = ; + rear_video_fhd_int = ; + rear_video_fhd_hpg = <1>; + + rear_video_hd_int_cam = ; + rear_video_hd_cam = ; + rear_video_hd_mif = ; + rear_video_hd_int = ; + rear_video_hd_hpg = <1>; + + rear_video_uhd_int_cam = ; + rear_video_uhd_cam = ; + rear_video_uhd_mif = ; + rear_video_uhd_int = ; + rear_video_uhd_hpg = <1>; + + rear_video_fhd_capture_int_cam = ; + rear_video_fhd_capture_cam = ; + rear_video_fhd_capture_mif = ; + rear_video_fhd_capture_int = ; + rear_video_fhd_capture_hpg = <1>; + + rear_video_hd_capture_int_cam = ; + rear_video_hd_capture_cam = ; + rear_video_hd_capture_mif = ; + rear_video_hd_capture_int = ; + rear_video_hd_capture_hpg = <1>; + + rear_video_uhd_capture_int_cam = ; + rear_video_uhd_capture_cam = ; + rear_video_uhd_capture_mif = ; + rear_video_uhd_capture_int = ; + rear_video_uhd_capture_hpg = <1>; + + rear_video_high_speed_60fps_int_cam = ; + rear_video_high_speed_60fps_cam = ; + rear_video_high_speed_60fps_mif = ; + rear_video_high_speed_60fps_int = ; + rear_video_high_speed_60fps_hpg = <1>; + + rear_video_high_speed_120fps_int_cam = ; + rear_video_high_speed_120fps_cam = ; + rear_video_high_speed_120fps_mif = ; + rear_video_high_speed_120fps_int = ; + rear_video_high_speed_120fps_hpg = <1>; + + rear_video_high_speed_240fps_int_cam = ; + rear_video_high_speed_240fps_cam = ; + rear_video_high_speed_240fps_mif = ; + rear_video_high_speed_240fps_int = ; + rear_video_high_speed_240fps_hpg = <1>; + + rear3_preview_fhd_int_cam = ; + rear3_preview_fhd_cam = ; + rear3_preview_fhd_mif = ; + rear3_preview_fhd_int = ; + rear3_preview_fhd_hpg = <1>; + + rear3_preview_hd_int_cam = ; + rear3_preview_hd_cam = ; + rear3_preview_hd_mif = ; + rear3_preview_hd_int = ; + rear3_preview_hd_hpg = <1>; + + rear3_preview_uhd_int_cam = ; + rear3_preview_uhd_cam = ; + rear3_preview_uhd_mif = ; + rear3_preview_uhd_int = ; + rear3_preview_uhd_hpg = <1>; + + rear3_preview_full_int_cam = ; + rear3_preview_full_cam = ; + rear3_preview_full_mif = ; + rear3_preview_full_int = ; + rear3_preview_full_hpg = <1>; + + rear3_capture_int_cam = ; + rear3_capture_cam = ; + rear3_capture_mif = ; + rear3_capture_int = ; + rear3_capture_hpg = <1>; + + rear3_video_fhd_int_cam = ; + rear3_video_fhd_cam = ; + rear3_video_fhd_mif = ; + rear3_video_fhd_int = ; + rear3_video_fhd_hpg = <1>; + + rear3_video_hd_int_cam = ; + rear3_video_hd_cam = ; + rear3_video_hd_mif = ; + rear3_video_hd_int = ; + rear3_video_hd_hpg = <1>; + + rear3_video_uhd_int_cam = ; + rear3_video_uhd_cam = ; + rear3_video_uhd_mif = ; + rear3_video_uhd_int = ; + rear3_video_uhd_hpg = <1>; + + rear3_video_fhd_capture_int_cam = ; + rear3_video_fhd_capture_cam = ; + rear3_video_fhd_capture_mif = ; + rear3_video_fhd_capture_int = ; + rear3_video_fhd_capture_hpg = <1>; + + rear3_video_hd_capture_int_cam = ; + rear3_video_hd_capture_cam = ; + rear3_video_hd_capture_mif = ; + rear3_video_hd_capture_int = ; + rear3_video_hd_capture_hpg = <1>; + + rear3_video_uhd_capture_int_cam = ; + rear3_video_uhd_capture_cam = ; + rear3_video_uhd_capture_mif = ; + rear3_video_uhd_capture_int = ; + rear3_video_uhd_capture_hpg = <1>; + + rear3_video_high_speed_60fps_int_cam = ; + rear3_video_high_speed_60fps_cam = ; + rear3_video_high_speed_60fps_mif = ; + rear3_video_high_speed_60fps_int = ; + rear3_video_high_speed_60fps_hpg = <1>; + + rear3_video_high_speed_120fps_int_cam = ; + rear3_video_high_speed_120fps_cam = ; + rear3_video_high_speed_120fps_mif = ; + rear3_video_high_speed_120fps_int = ; + rear3_video_high_speed_120fps_hpg = <1>; + + dual_preview_int_cam = ; + dual_preview_cam = ; + dual_preview_mif = ; + dual_preview_int = ; + dual_preview_hpg = <1>; + + dual_capture_int_cam = ; + dual_capture_cam = ; + dual_capture_mif = ; + dual_capture_int = ; + dual_capture_hpg = <1>; + + dual_video_fhd_int_cam = ; + dual_video_fhd_cam = ; + dual_video_fhd_mif = ; + dual_video_fhd_int = ; + dual_video_fhd_hpg = <1>; + + dual_video_fhd_capture_int_cam = ; + dual_video_fhd_capture_cam = ; + dual_video_fhd_capture_mif = ; + dual_video_fhd_capture_int = ; + dual_video_fhd_capture_hpg = <1>; + + dual_video_uhd_int_cam = ; + dual_video_uhd_cam = ; + dual_video_uhd_mif = ; + dual_video_uhd_int = ; + dual_video_uhd_hpg = <1>; + + dual_video_uhd_capture_int_cam = ; + dual_video_uhd_capture_cam = ; + dual_video_uhd_capture_mif = ; + dual_video_uhd_capture_int = ; + dual_video_uhd_capture_hpg = <1>; + + dual_sync_preview_int_cam = ; + dual_sync_preview_cam = ; + dual_sync_preview_mif = ; + dual_sync_preview_int = ; + dual_sync_preview_hpg = <1>; + + dual_sync_capture_int_cam = ; + dual_sync_capture_cam = ; + dual_sync_capture_mif = ; + dual_sync_capture_int = ; + dual_sync_capture_hpg = <1>; + + dual_sync_preview_whd_int_cam = ; + dual_sync_preview_whd_cam = ; + dual_sync_preview_whd_mif = ; + dual_sync_preview_whd_int = ; + dual_sync_preview_whd_hpg = <1>; + + dual_sync_whd_capture_int_cam = ; + dual_sync_whd_capture_cam = ; + dual_sync_whd_capture_mif = ; + dual_sync_whd_capture_int = ; + dual_sync_whd_capture_hpg = <1>; + + dual_sync_video_fhd_int_cam = ; + dual_sync_video_fhd_cam = ; + dual_sync_video_fhd_mif = ; + dual_sync_video_fhd_int = ; + dual_sync_video_fhd_hpg = <1>; + + dual_sync_video_fhd_capture_int_cam = ; + dual_sync_video_fhd_capture_cam = ; + dual_sync_video_fhd_capture_mif = ; + dual_sync_video_fhd_capture_int = ; + dual_sync_video_fhd_capture_hpg = <1>; + + dual_sync_video_uhd_int_cam = ; + dual_sync_video_uhd_cam = ; + dual_sync_video_uhd_mif = ; + dual_sync_video_uhd_int = ; + dual_sync_video_uhd_hpg = <1>; + + dual_sync_video_uhd_capture_int_cam = ; + dual_sync_video_uhd_capture_cam = ; + dual_sync_video_uhd_capture_mif = ; + dual_sync_video_uhd_capture_int = ; + dual_sync_video_uhd_capture_hpg = <1>; + + pip_preview_int_cam = ; + pip_preview_cam = ; + pip_preview_mif = ; + pip_preview_int = ; + pip_preview_hpg = <1>; + + pip_capture_int_cam = ; + pip_capture_cam = ; + pip_capture_mif = ; + pip_capture_int = ; + pip_capture_hpg = <1>; + + secure_front_int_cam = ; + secure_front_cam = ; + secure_front_mif = ; + secure_front_int = ; + secure_front_hpg = <1>; + + preview_high_speed_fps_int_cam = ; + preview_high_speed_fps_cam = ; + preview_high_speed_fps_mif = ; + preview_high_speed_fps_int = ; + preview_high_speed_fps_hpg = <1>; + + video_high_speed_480fps_int_cam = ; + video_high_speed_480fps_cam = ; + video_high_speed_480fps_mif = ; + video_high_speed_480fps_int = ; + video_high_speed_480fps_hpg = <1>; + + video_high_speed_60fps_capture_int_cam = ; + video_high_speed_60fps_capture_cam = ; + video_high_speed_60fps_capture_mif = ; + video_high_speed_60fps_capture_int = ; + video_high_speed_60fps_capture_hpg = <1>; + + ext_front_int_cam = ; + ext_front_cam = ; + ext_front_mif = ; + ext_front_int = ; + ext_front_hpg = <1>; + + ext_secure_int_cam = ; + ext_secure_cam = ; + ext_secure_mif = ; + ext_secure_int = ; + ext_secure_hpg = <1>; + + max_int_cam = ; + max_cam = ; + max_mif = ; + max_int = ; + max_hpg = <1>; + }; + }; +}; + +/* I2C_CAM0 */ /* SENSOR_CONTROL_I2C0 */ +&hsi2c_12 { + gpios = <&gpc0 0 0 &gpc0 1 0>; + status = "okay"; + clock-frequency = <900000>; + samsung,reset-before-trans; + + samsung,fast-plus-mode; + #address-cells = <1>; + #size-cells = <0>; + + fimc-is-12a10@36 { + compatible = "samsung,exynos5-fimc-is-cis-12a10"; + reg = <0x36>; + id = <0>; /* matching fimc_is_sensor id */ + setfile = "setA"; + use_initial_ae; /* for initial AE */ + dual_sync_mode = ; + }; + + fimc-is-actuator@72 { + compatible = "samsung,exynos5-fimc-is-actuator-lc898217"; + reg = <0x72>; + id = <0>; /* matching fimc_is_sensor id */ + place = <0>; + }; + + fimc-is-eeprom@50 { + compatible = "samsung,exynos5-fimc-is-sensor-eeprom-12a10"; + reg = <0x50>; + id = <0>; + }; +}; + +/* I2C_CAM1 */ /* SENSOR_CONTROL_I2C1 */ +&hsi2c_13 { + gpios = <&gpc0 2 0 &gpc0 3 0>; + status = "okay"; + clock-frequency = <900000>; + samsung,reset-before-trans; + + samsung,fast-plus-mode; + #address-cells = <1>; + #size-cells = <0>; + + fimc-is-12a10ff@10 { + compatible = "samsung,exynos5-fimc-is-cis-12a10ff"; + reg = <0x10>; /* 1 bit right shift */ + id = <2>; /* matching fimc_is_sensor id */ + setfile = "setA"; + use_initial_ae; /* for initial AE */ + }; + + fimc-is-eeprom@50 { + compatible = "samsung,exynos5-fimc-is-sensor-eeprom-12a10ff"; + reg = <0x50>; + id = <2>; + }; +}; + +/* I2C_CAM2 */ /* SENSOR_CONTROL_I2C2 */ +&hsi2c_14 { + gpios = <&gpc0 4 0 &gpc0 5 0>; + status = "okay"; + clock-frequency = <400000>; + samsung,reset-before-trans; + + #address-cells = <1>; + #size-cells = <0>; + + fimc-is-16885c@10 { + compatible = "samsung,exynos5-fimc-is-cis-16885c"; + reg = <0x10>; /* 1 bit right shift */ + id = <1>; /* matching fimc_is_sensor id */ + setfile = "setA"; + use_initial_ae; /* for initial AE */ + }; + + fimc-is-eeprom@50 { + compatible = "samsung,exynos5-fimc-is-sensor-eeprom-16885c"; + reg = <0x50>; + id = <1>; + }; +}; + +/* I2C_CAM3 */ /* SENSOR_CONTROL_I2C1 */ +&hsi2c_15 { + gpios = <&gpc0 6 0 &gpc0 7 0>; + status = "okay"; + clock-frequency = <400000>; + samsung,reset-before-trans; + + #address-cells = <1>; + #size-cells = <0>; + + fimc-is-5e9@2d { + compatible = "samsung,exynos5-fimc-is-cis-5e9"; + reg = <0x2d>; /* 1 bit right shift */ + id = <3>; /* matching fimc_is_sensor id */ + setfile = "setC"; + use_initial_ae; /* for initial AE */ + dual_sync_mode = ; + use_otp_cal; /* for use OTP */ + otp_filename = "dump_5e9_troika_eeprom_data.bin"; + }; +}; + +&fimc_is_sensor0 { + scenario = ; /* Normal, Vision, OIS etc */ + id = <0>; + csi_ch = <0>; + dma_ch = <0 0 0 0 0 0 2 0>; + vc_ch = <0 1 2 3 0 1 0 3>; + flite_ch = ; + is_bns = <0>; + csi_mux = <0>; /* CSIS_DPHY[2:0] = [0 0 0] */ + multi_ch = <2>; + use_ssvc1_internal; + use_ssvc2_internal; + status = "okay"; +}; + +&fimc_is_sensor1 { + scenario = ; /* Normal, Vision, OIS etc */ + id = <1>; + csi_ch = <1>; + dma_ch = <1 1 1 1 1 1 1 1>; + vc_ch = <0 1 2 3 0 1 2 3>; + flite_ch = ; + is_bns = <0>; + csi_mux = <0>; /* CSIS_DPHY[2:0] = [0 0 0] */ + multi_ch = <0>; + status = "okay"; +}; + +&fimc_is_sensor2 { + scenario = ; /* Normal, Vision, OIS etc */ + interrupts = <0 327 0>, /* MIPI-CSI2 */ + <0 334 0>, /* VC0 DMA3 */ + <0 333 0>, /* VC1 DMA2 */ + <0 333 0>, /* VC2 DMA2 */ + <0 333 0>; /* VC3 DMA2 */ + id = <2>; + csi_ch = <2>; + dma_ch = <3 2 2 2>; + vc_ch = <1 1 2 3>; + flite_ch = ; + is_bns = <0>; + csi_mux = <0>; /* CSIS_DPHY[2:0] = [0 0 0] */ + multi_ch = <0>; + camif_mux_val = <0x005820FF>; + status = "okay"; + sensor2_ch_mode0: sensor2-ch-mode0 { + reg = <0x14480100 0x100>, /* VC0 DMA3 */ + <0x14480400 0x100>, /* VC0 DMA3 COMMON */ + <0x14470100 0x100>, /* VC1 DMA2 */ + <0x14470400 0x100>, /* VC1 DMA2 COMMON */ + <0x14470200 0x100>, /* VC2 DMA2 */ + <0x14470400 0x100>, /* VC2 DMA2 COMMON */ + <0x14470300 0x100>, /* VC3 DMA2 */ + <0x14470400 0x100>; /* VC3 DMA2 COMMON */ + }; +}; + +&fimc_is_sensor3 { + scenario = ; /* Normal, Vision, OIS etc */ + id = <3>; + csi_ch = <3>; + dma_ch = <3 3 3 3>; + vc_ch = <0 1 2 3>; + flite_ch = ; + is_bns = <0>; + csi_mux = <0>; /* CSIS_DPHY[2:0] = [0 0 0] */ + multi_ch = <0>; + status = "okay"; +}; -- 2.20.1