From 9a3d84fc482273074fc9eb917cbe0ab4d455e988 Mon Sep 17 00:00:00 2001 From: Wooyeon Kim Date: Fri, 14 Sep 2018 16:57:29 +0900 Subject: [PATCH] [9610][EVB] dts: camera: add camera dtsi for robusta2 Change-Id: I0f22e8bb79bbfc3db9a20b164bc6d9f492f29fc8 Signed-off-by: Wooyeon Kim --- .../exynos/exynos9610-robusta2-camera.dtsi | 604 ++++++++++++++++++ 1 file changed, 604 insertions(+) create mode 100644 arch/arm64/boot/dts/exynos/exynos9610-robusta2-camera.dtsi diff --git a/arch/arm64/boot/dts/exynos/exynos9610-robusta2-camera.dtsi b/arch/arm64/boot/dts/exynos/exynos9610-robusta2-camera.dtsi new file mode 100644 index 000000000000..f1e943ca2cc9 --- /dev/null +++ b/arch/arm64/boot/dts/exynos/exynos9610-robusta2-camera.dtsi @@ -0,0 +1,604 @@ +/* + * 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_gm1sp: fimc-is_sensor_gm1sp@43 { + compatible = "samsung,sensor-module-gm1sp"; + + 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 7 0x1>; /* RCAM_DVDD_EN */ + gpio_iovdd_en = <&gpg2 5 0x1>; /* CAM_IOVDD_EN */ + + status = "okay"; + + af { + product_name = <18>; /* ACTUATOR_NAME_AK737X */ + i2c_ch = <0>; /* SENSOR_CONTROL_I2C0 */ + }; + + flash { + /* TODO */ + product_name = <100>; /* NOTHING */ + }; + + ois { + product_name = <100>; /* NOTHING */ + }; + + internal_vc { + /* DUMMY */ + }; + }; + + /* 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_mclk1_out>; + pinctrl-2 = <&fimc_is_mclk1_fn>; + pinctrl-3 = <>; + + position = <2>; /* 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 1 0x1>; /* sensor reset */ + + gpio_avdd_en = <&gpg2 3 0x1>; /* FCAM_AVDD_EN */ + gpio_iovdd_en = <&gpg2 5 0x1>; /* CAM_IOVDD_EN */ + + power_seq_idx = <1>; /* power on/off sequence 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_2x5sp: fimc-is_sensor_2x5sp@42 { + compatible = "samsung,sensor-module-2x5sp"; + + pinctrl-names = "pin0", "pin1", "pin2", "release"; + pinctrl-0 = <>; + pinctrl-1 = <&fimc_is_mclk2_out>; + pinctrl-2 = <&fimc_is_mclk2_fn>; + pinctrl-3 = <>; + + position = <1>; /* 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 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 */ + }; + + internal_vc { + /* DUMMY */ + }; + }; + }; /* end of __overlay__ */ + }; /* end of fragment */ +}; /* end of root */ + +/***** reference symbol node *****/ + +&fimc_is { + vender { + rear_sensor_id = <43>; /* 43: GM1SP */ + front_sensor_id = <42>; /* 42: 2X5SP */ + rear2_sensor_id = <41>; /* 41: 5E9 */ + }; + + 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 690000 + #define DVFS_CAM_L1 680000 + #define DVFS_CAM_L2 670000 + #define DVFS_CAM_L3 660000 + #define DVFS_CAM_L4 650000 + #define DVFS_CAM_L5 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.0 for 16M/2M"; + + default_int_cam = ; + default_cam = ; + default_mif = ; + default_int = ; + default_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>; + + 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>; + + 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_60fps_int_cam = ; + video_high_speed_60fps_cam = ; + video_high_speed_60fps_mif = ; + video_high_speed_60fps_int = ; + video_high_speed_60fps_hpg = <1>; + + video_high_speed_120fps_int_cam = ; + video_high_speed_120fps_cam = ; + video_high_speed_120fps_mif = ; + video_high_speed_120fps_int = ; + video_high_speed_120fps_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 = <1000000>; + samsung,reset-before-trans; + + #address-cells = <1>; + #size-cells = <0>; + + fimc-is-gm1sp@2d { + compatible = "samsung,exynos5-fimc-is-cis-gm1sp"; + reg = <0x2d>; /* TODO: need to check */ + id = <0>; /* matching fimc_is_sensor id */ + setfile = "setA"; + use_initial_ae; /* for initial AE */ + }; + + fimc-is-actuator@72 { + compatible = "samsung,exynos5-fimc-is-actuator-ak737x"; + reg = <0x0C>; /* TODO: need to check */ + id = <0>; /* matching fimc_is_sensor id */ + place = <0>; + }; +}; + +/* I2C_CAM1 */ /* SENSOR_CONTROL_I2C1 */ +&hsi2c_13 { + gpios = <&gpc0 2 0 &gpc0 3 0>; + status = "okay"; + clock-frequency = <400000>; + samsung,reset-before-trans; + + #address-cells = <1>; + #size-cells = <0>; + + fimc-is-5e9@10 { + compatible = "samsung,exynos5-fimc-is-cis-5e9"; + reg = <0x10>; /* 1 bit right shift */ + id = <2>; /* matching fimc_is_sensor id */ + setfile = "setA"; + use_initial_ae; /* for initial AE */ + }; +}; + +/* I2C_CAM2 */ /* SENSOR_CONTROL_I2C2 */ +&hsi2c_14 { + gpios = <&gpc0 4 0 &gpc0 5 0>; + status = "okay"; + clock-frequency = <1000000>; + samsung,reset-before-trans; + + #address-cells = <1>; + #size-cells = <0>; + + fimc-is-2x5sp@10 { + compatible = "samsung,exynos5-fimc-is-cis-2x5sp"; + reg = <0x10>; /* 1 bit right shift */ + id = <1>; /* matching fimc_is_sensor id */ + setfile = "setA"; + use_initial_ae; /* for initial AE */ + }; +}; + +&fimc_is_sensor0 { + scenario = ; /* Normal, Vision, OIS etc */ + id = <0>; + csi_ch = <0>; + dma_ch = <0 0 0 0 0 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] */ + /* 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] */ + status = "okay"; +}; + +&fimc_is_sensor2 { + scenario = ; /* Normal, Vision, OIS etc */ + id = <2>; + csi_ch = <2>; + dma_ch = <2 2 2 2>; + vc_ch = <0 1 2 3>; + flite_ch = ; + is_bns = <0>; + csi_mux = <0>; /* CSIS_DPHY[2:0] = [0 0 0] */ + status = "okay"; +}; + +&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] */ + status = "okay"; +}; -- 2.20.1