From: Sylwester Nawrocki Date: Mon, 16 Apr 2018 13:24:55 +0000 (+0200) Subject: arm64: dts: exynos5433-tm2: Add camera device nodes X-Git-Tag: accepted/tizen/unified/20190330.030053~251 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a05fe06b50d793fbbd3ff30bbf5892b4b2875852;p=platform%2Fkernel%2Flinux-exynos.git arm64: dts: exynos5433-tm2: Add camera device nodes Change-Id: I003c2a2ddeeea63168a4ff382eea783edd808937 Signed-off-by: Sylwester Nawrocki --- diff --git a/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi b/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi index fb09f9d..c83e2e8 100644 --- a/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi +++ b/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi @@ -21,9 +21,30 @@ / { aliases { + csis0 = &mipi_csis_0; + csis1 = &mipi_csis_1; + csis2 = &mipi_csis_2; + fimc-lite0 = &fimc_lite_a; + fimc-lite1 = &fimc_lite_b; + fimc-lite2 = &fimc_lite_c; gsc0 = &gsc_0; gsc1 = &gsc_1; gsc2 = &gsc_2; + i2c0 = &hsi2c_0; + i2c1 = &hsi2c_1; + i2c2 = &hsi2c_2; + i2c3 = &hsi2c_3; + i2c4 = &hsi2c_4; + i2c5 = &hsi2c_5; + i2c6 = &hsi2c_6; + i2c7 = &hsi2c_7; + i2c8 = &hsi2c_8; + i2c9 = &hsi2c_9; + i2c10 = &hsi2c_10; + i2c11 = &hsi2c_11; + i2c12 = &i2c_max98504; + i2c13 = &i2c_6d1; + i2c20 = &ispi2c_0; pinctrl0 = &pinctrl_alive; pinctrl1 = &pinctrl_aud; pinctrl2 = &pinctrl_cpif; @@ -43,6 +64,8 @@ spi2 = &spi_2; spi3 = &spi_3; spi4 = &spi_4; + spi5 = &spi_5; + spi6 = &spi_6; mshc0 = &mshc_0; mshc2 = &mshc_2; }; @@ -109,6 +132,20 @@ pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; }; + i2c_6d1: i2c-gpio-1 { + compatible = "i2c-gpio"; + gpios = <&gpc2 4 GPIO_ACTIVE_HIGH /* SDA */ + &gpc2 5 GPIO_ACTIVE_HIGH /* SCL */>; + i2c-gpio,delay-us = <2>; + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + fimc-is-vision@35 { + compatible = "samsung,exynos5-fimc-is-sensor-6d1"; + reg = <0x35>; + }; + }; + i2c_max98504: i2c-gpio-0 { compatible = "i2c-gpio"; gpios = <&gpd0 1 GPIO_ACTIVE_HIGH /* SPK_AMP_SDA */ @@ -166,6 +203,218 @@ "RCV", "HPOUT3R"; status = "okay"; }; + + fimc_is_sensor0: fimc_is_sensor@12100000 { + compatible = "samsung,exynos5-fimc-is-sensor"; + reg = <0x12100000 0x10000>, <0x12120000 0x10000>; + interrupts = <0 140 0>; + power-domains = <&pd_cam0>; + clock-names = "sclk_isp_sensor0", + "sclk_isp_sensor1", + "sclk_isp_sensor2", + + "mout_sclk_isp_sensor0", + "mout_sclk_isp_sensor1", + "mout_sclk_isp_sensor2", + + "dout_sclk_isp_sensor0_a", + "dout_sclk_isp_sensor0_b", + "dout_sclk_isp_sensor1_a", + "dout_sclk_isp_sensor1_b", + "dout_sclk_isp_sensor2_a", + "dout_sclk_isp_sensor2_b", + "oscclk"; + clocks = <&cmu_top CLK_SCLK_ISP_SENSOR0>, + <&cmu_top CLK_SCLK_ISP_SENSOR1>, + <&cmu_top CLK_SCLK_ISP_SENSOR2>, + + <&cmu_top CLK_MOUT_SCLK_ISP_SENSOR0>, + <&cmu_top CLK_MOUT_SCLK_ISP_SENSOR1>, + <&cmu_top CLK_MOUT_SCLK_ISP_SENSOR2>, + + <&cmu_top CLK_DIV_SCLK_ISP_SENSOR0_A>, + <&cmu_top CLK_DIV_SCLK_ISP_SENSOR0_B>, + <&cmu_top CLK_DIV_SCLK_ISP_SENSOR1_A>, + <&cmu_top CLK_DIV_SCLK_ISP_SENSOR1_B>, + <&cmu_top CLK_DIV_SCLK_ISP_SENSOR2_A>, + <&cmu_top CLK_DIV_SCLK_ISP_SENSOR2_B>, + <&xxti>; + + pinctrl-names = "ch0", "af0"; + pinctrl-0 = <&fimc_is_ch0_i2c &fimc_is_ch0_mclk>; + pinctrl-1 = <&fimc_is_ch0_i2c &fimc_is_ch0_mclk &fimc_is_ch1_i2c>; + + scenario = <0>; + gpio_rest = <&gpc0 4 0x1>; + id = <0>; + mclk_ch = <0>; + csi_ch = <0>; + flite_ch = <0>; + i2c_ch = <0x010100>; + i2c_addr = <0x483434>; + flash_first_gpio = <1>; + flash_second_gpio = <2>; + sensor_name = "imx240"; + sensor_id = <104>; + is_bns = <1>; + status = "okay"; + phys = <&mipi_phy 0>; + phy-names = "csis"; + }; + + fimc_is_sensor1: fimc_is_sensor@12110000 { + compatible = "samsung,exynos5-fimc-is-sensor"; + reg = <0x12110000 0x40000>, <0x12130000 0x10000>; + interrupts = <0 141 0>; + power-domains = <&pd_cam0>; + clock-names = "sclk_isp_sensor0", + "sclk_isp_sensor1", + "sclk_isp_sensor2", + + "mout_sclk_isp_sensor0", + "mout_sclk_isp_sensor1", + "mout_sclk_isp_sensor2", + + "dout_sclk_isp_sensor0_a", + "dout_sclk_isp_sensor0_b", + "dout_sclk_isp_sensor1_a", + "dout_sclk_isp_sensor1_b", + "dout_sclk_isp_sensor2_a", + "dout_sclk_isp_sensor2_b", + "oscclk"; + clocks = <&cmu_top CLK_SCLK_ISP_SENSOR0>, + <&cmu_top CLK_SCLK_ISP_SENSOR1>, + <&cmu_top CLK_SCLK_ISP_SENSOR2>, + + <&cmu_top CLK_MOUT_SCLK_ISP_SENSOR0>, + <&cmu_top CLK_MOUT_SCLK_ISP_SENSOR1>, + <&cmu_top CLK_MOUT_SCLK_ISP_SENSOR2>, + + <&cmu_top CLK_DIV_SCLK_ISP_SENSOR0_A>, + <&cmu_top CLK_DIV_SCLK_ISP_SENSOR0_B>, + <&cmu_top CLK_DIV_SCLK_ISP_SENSOR1_A>, + <&cmu_top CLK_DIV_SCLK_ISP_SENSOR1_B>, + <&cmu_top CLK_DIV_SCLK_ISP_SENSOR2_A>, + <&cmu_top CLK_DIV_SCLK_ISP_SENSOR2_B>, + <&xxti>; + + pinctrl-names ="default", "ch1", "off1"; + pinctrl-0 = <&fimc_is_ch2_mclk_off>; + pinctrl-1 = <&fimc_is_ch2_i2c &fimc_is_ch2_mclk>; + pinctrl-2 = <&fimc_is_ch2_mclk_off &fimc_is_ch2_i2c_off>; + + scenario = <0>; + gpio_reset = <&gpc0 3 0x1>; + gpio_standby = <&gpc0 0 0x1>; + id = <1>; + mclk_ch = <2>; + csi_ch = <1>; + flite_ch = <1>; + i2c_ch = <0x2>; + i2c_addr = <0x6A>; + sensor_name = "6d1"; + sensor_id = <16>; + is_bns = <0>; + status = "okay"; + phys = <&mipi_phy 2>; + phy-names = "csis"; + }; + + fimc_is_companion: fimc_is_companion@14180000 { + compatible = "samsung,exynos5-fimc-is-companion"; + power-domains = <&pd_cam1>; + clock-names = + /* SENSOR0 MCLK */ + "sclk_isp_sensor0", + "mout_sclk_isp_sensor0", + "dout_sclk_isp_sensor0_a", + "dout_sclk_isp_sensor0_b", + + "mout_bus_pll_user", + "oscclk", + + /* SPI-ISP */ + "sclk_isp_spi0_top", + "sclk_isp_spi1_top", + "mout_sclk_isp_spi0", + "mout_sclk_isp_spi1", + + "gate_isp_spi1", + "gate_isp_spi0", + "dout_sclk_isp_spi0_a", + "dout_sclk_isp_spi0_b", + "dout_sclk_isp_spi1_a", + "dout_sclk_isp_spi1_b", + + "mout_sclk_isp_spi0_user", + "mout_sclk_isp_spi1_user", + + /* CMU TOP */ + "dout_aclk_cam1_333", + + /* USER_MUX_SEL */ + "aclk_cam1_333", + "mout_aclk_cam1_333_user", + + /* MPWM */ + "dout_pclk_cam1_166", + "dout_pclk_cam1_83", + "dout_sclk_isp_mpwm"; + clocks = + /* SENSOR0 MCLK */ + <&cmu_top CLK_SCLK_ISP_SENSOR0>, + <&cmu_top CLK_MOUT_SCLK_ISP_SENSOR0>, + <&cmu_top CLK_DIV_SCLK_ISP_SENSOR0_A>, + <&cmu_top CLK_DIV_SCLK_ISP_SENSOR0_B>, + + <&cmu_top CLK_MOUT_BUS_PLL_USER>, + <&xxti>, + + <&cmu_top CLK_SCLK_ISP_SPI0_CAM1>, + <&cmu_top CLK_SCLK_ISP_SPI1_CAM1>, + <&cmu_top CLK_MOUT_SCLK_ISP_SPI0>, + <&cmu_top CLK_MOUT_SCLK_ISP_SPI1>, + + <&cmu_cam1 CLK_ISP_SPI1>, + <&cmu_cam1 CLK_ISP_SPI0>, + + <&cmu_top CLK_DIV_SCLK_ISP_SPI0_A>, + <&cmu_top CLK_DIV_SCLK_ISP_SPI0_B>, + <&cmu_top CLK_DIV_SCLK_ISP_SPI1_A>, + <&cmu_top CLK_DIV_SCLK_ISP_SPI1_B>, + + <&cmu_cam1 CLK_MOUT_SCLK_ISP_SPI0_USER>, + <&cmu_cam1 CLK_MOUT_SCLK_ISP_SPI1_USER>, + + <&cmu_top CLK_DIV_ACLK_CAM1_333>, + + /* USER_MUX_SEL */ + <&cmu_top CLK_ACLK_CAM1_333>, + <&cmu_cam1 CLK_MOUT_ACLK_CAM1_333_USER>, + + /* MPWM */ + <&cmu_cam1 CLK_DIV_PCLK_CAM1_166>, + <&cmu_cam1 CLK_DIV_PCLK_CAM1_83>, + <&cmu_cam1 CLK_DIV_SCLK_ISP_MPWM>; + + pinctrl-names ="default", "ch0", "af0", "off0"; + pinctrl-0 = <&fimc_is_ch0_mclk_off>; + pinctrl-1 = <&fimc_is_ch0_mclk>; + pinctrl-2 = <&fimc_is_ch0_mclk>; + pinctrl-3 = <&fimc_is_ch0_mclk_off>; + + scenario = <0>; + mclk_ch = <0>; + sensor_id = <104>; + + gpios_cam_en = <&gpf4 7 0x1>; + gpio_reset = <&gpc0 4 0x1>; + gpios_comp_en = <&gpf1 7 0x1>; /* COMP_EN */ + gpios_comp_reset = <&gpf5 7 0x1>; /* COMP_RSTN */ + gpios_ois_en = <&gpf4 6 0>; /* OIS_EN*/ + + status = "okay"; + }; }; &adc { @@ -809,6 +1058,26 @@ }; }; +&hsi2c_3 { + status = "okay"; + + clock-frequency = <400000>; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&fimc_is_hsi2c_off &fimc_is_ch1_i2c_off>; + pinctrl-1 = <&fimc_is_ois_hsi2c_on &fimc_is_ch1_i2c_off>; + pinctrl-2 = <&fimc_is_hsi2c_off &fimc_is_ch1_i2c>; + + ois@24{ + compatible = "rumba,ois"; + reg = <0x24>; + }; + + af@0c{ + compatible = "samsung,af"; + reg = <0x0c>; + }; +}; + &hsi2c_4 { status = "okay"; @@ -820,6 +1089,25 @@ s3fwrn5,en-gpios = <&gpf1 4 GPIO_ACTIVE_HIGH>; s3fwrn5,fw-gpios = <&gpj0 2 GPIO_ACTIVE_HIGH>; }; + + fimc_is_fan53555@60 { + compatible = "samsung,fimc_is_fan53555"; + reg = <0x60>; + comp_en = <&gpf1 7 0x01>; + status = "okay"; + }; + + max86900@51 { + compatible = "maxim,max86902"; + reg = <0x51>; + interrupt-parent = <&gpa0>; + interrupts = <6 0 0>; + vdd_1p8-supply = <&ldo39_reg>; + led_3p3-supply = <&ldo40_reg>; + max86900,hrm_int-gpio = <&gpa0 6 0>; + max86900,hrm_en-gpio = <&gpr3 3 0>; + max86900,dual-hrm = <1>; + }; }; &hsi2c_5 { @@ -947,6 +1235,13 @@ status = "okay"; }; +&ispi2c_0 { + fimc_is_i2c0@3d { + compatible = "samsung,fimc_is_i2c0"; + reg = <0x3d>; + }; +}; + &mali { status = "okay"; vdd_g3d-supply = <&buck6_reg>; @@ -1243,8 +1538,77 @@ samsung,pins = "gpg2-0"; samsung,pin-function = <1>; samsung,pin-pud = <1>; + samsung,pin-drv = <2>; + }; + + fimc_is_ois_hsi2c_on: fimc-is-ois-hsi2c-on { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + fimc_is_hsi2c_off: fimc-is-hsi2c-off { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; samsung,pin-drv = <3>; }; + + fimc_is_ch2_i2c_off: fimc-is-ch2-i2c-off { + samsung,pins = "gpc2-5", "gpc2-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <6>; + }; + + fimc_is_ch2_mclk_off: fimc-is-ch2_mclk_off { + samsung,pins = "gpd7-2"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-drv = <2>; + }; + + fimc_is_spi_pin0: fimc-is-spi-pin0 { + samsung,pin-function = ; + samsung,pin-pud = ; + samsung,pin-drv = ; + samsung,pins = "gpc3-3", "gpc3-2", "gpc3-0"; + }; + + fimc_is_spi_ssn0: fimc-is-spi-ssn0 { + samsung,pins = "gpc3-1", "gpc0-6"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <2>; + }; + + fimc_is_ch0_mclk_off: fimc-is-ch0_mclk_off { + samsung,pins = "gpd7-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-drv = <2>; + }; + + fimc_is_ch1_i2c_off: fimc-is-ch1-i2c-off { + samsung,pins = "gpc2-3", "gpc2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <3>; + }; + + fimc_is_comp_int: fimc-is-comp-int { + samsung,pins = "gpc1-0"; + samsung,pin-function = <3>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + + uart1_bus: uart1-bus { + samsung,pins = "gpd1-1", "gpd1-0"; + samsung,pin-function = ; + samsung,pin-pud = ; + }; }; &pinctrl_touch { @@ -1375,6 +1739,45 @@ }; }; +&spi_5 { + cs-gpios = <&gpc0 6 0>, <&gpc3 1 0>; + + status = "okay"; + clocks = <&cmu_cam1 CLK_ISP_SPI0>, + <&cmu_top CLK_SCLK_ISP_SPI1_CAM1>; + clock-names = "spi", "spi_busclk0"; + pinctrl-names ="default"; + pinctrl-0 = <&fimc_is_spi_pin0>; + num-cs = <2>; + byte-swap; + + fimc_is_spi_0@0 { + compatible = "samsung,fimc_is_spi0"; + spi-max-frequency = <50000000>; + reg = <0x0>; + + controller-data { + samsung,spi-feedback-delay = <2>; + }; + }; + + fimc_is_spi_1@1 { + compatible = "samsung,fimc_is_spi1"; + fimc_is_spi_sclk = "gpc3-0"; + fimc_is_spi_ssn = "gpc3-1"; + fimc_is_spi_miso = "gpc3-2"; + fimc_is_spi_mois = "gpc3-3"; + spi-max-frequency = <50000000>; + reg = <0x1>; + pinctrl-names = "default"; + pinctrl-0 = <&fimc_is_comp_int>; + + controller-data { + samsung,spi-feedback-delay = <3>; + }; + }; +}; + &timer { clock-frequency = <24000000>; }; @@ -1413,3 +1816,121 @@ &xxti { clock-frequency = <24000000>; }; + +&fimc_is { + status = "okay"; + interrupts = <0 165 0>; /* Remove ISP_GIC to use FIMC IS i2c channel in host */ + companion_spi_channel = <0>; + use_vision = <1>; + use_sensor_dynamic_voltage_mode = <1>; + use_ois; + use_ois_hsi2c; + use_module_check; + + fimc_is_dvfs { + default_int = <400000>; /* L0 */ + default_cam = <777000>; /* L0 */ + default_mif = <825000>; /* L0 */ + default_i2c = <0>; + + front_preview_int = <267000>; /* L2 */ + front_preview_cam = <111000>; /* L9 */ + front_preview_mif = <543000>; /* L2 */ + front_preview_i2c = <0>; + + front_capture_int = <267000>; /* L2 */ + front_capture_cam = <111000>; /* L9 */ + front_capture_mif = <543000>; /* L2 */ + front_capture_i2c = <0>; + + front_camcording_int = <267000>; /* L2 */ + front_camcording_cam = <111000>; /* L9 */ + front_camcording_mif = <543000>; /* L2 */ + front_camcording_i2c = <0>; + + front_vt1_int = <200000>; /* L3 */ + front_vt1_cam = <111000>; /* L9 */ + front_vt1_mif = <543000>; /* L2 */ + front_vt1_i2c = <0>; + + front_vt2_int = <200000>; /* L3 */ + front_vt2_cam = <111000>; /* L9 */ + front_vt2_mif = <543000>; /* L2 */ + front_vt2_i2c = <0>; + + rear_preview_fhd_bns_off_int = <267000>; /* L2 */ + rear_preview_fhd_bns_off_cam = <200000>; /* L8 */ + rear_preview_fhd_bns_off_mif = <543000>; /* L2 */ + rear_preview_fhd_bns_off_i2c = <0>; + + rear_preview_fhd_int = <267000>; /* L2 */ + rear_preview_fhd_cam = <333000>; /* L6 */ + rear_preview_fhd_mif = <543000>; /* L2 */ + rear_preview_fhd_i2c = <0>; + + rear_preview_whd_int = <334000>; /* L1 */ + rear_preview_whd_cam = <600000>; /* L2 */ + rear_preview_whd_mif = <667000>; /* L1 */ + rear_preview_whd_i2c = <0>; + + rear_preview_uhd_int = <400000>; /* L0 */ + rear_preview_uhd_cam = <666000>; /* L1 */ + rear_preview_uhd_mif = <825000>; /* L0 */ + rear_preview_uhd_i2c = <0>; + + rear_capture_int = <400000>; /* L0 */ + rear_capture_cam = <777000>; /* L0 */ + rear_capture_mif = <667000>; /* L1 */ + rear_capture_i2c = <0>; + + rear_camcording_fhd_bns_off_int = <267000>; /* L2 */ + rear_camcording_fhd_bns_off_cam = <580000>; /* L3 */ + rear_camcording_fhd_bns_off_mif = <543000>; /* L2 */ + rear_camcording_fhd_bns_off_i2c = <0>; + + rear_camcording_fhd_int = <267000>; /* L2 */ + rear_camcording_fhd_cam = <555000>; /* L4 */ + rear_camcording_fhd_mif = <543000>; /* L2 */ + rear_camcording_fhd_i2c = <0>; + + rear_camcording_whd_int = <334000>; /* L1 */ + rear_camcording_whd_cam = <600000>; /* L2 */ + rear_camcording_whd_mif = <667000>; /* L1 */ + rear_camcording_whd_i2c = <0>; + + rear_camcording_uhd_int = <400000>; /* L0 */ + rear_camcording_uhd_cam = <666000>; /* L1 */ + rear_camcording_uhd_mif = <825000>; /* L0 */ + rear_camcording_uhd_i2c = <0>; + + dual_preview_int = <334000>; /* L1 */ + dual_preview_cam = <444000>; /* L5 */ + dual_preview_mif = <825000>; /* L0 */ + dual_preview_i2c = <0>; + + dual_capture_int = <400000>; /* L0 */ + dual_capture_cam = <777000>; /* L4 */ + dual_capture_mif = <825000>; /* L0 */ + dual_capture_i2c = <0>; + + dual_camcording_int = <334000>; /* L1 */ + dual_camcording_cam = <444000>; /* L5 */ + dual_camcording_mif = <825000>; /* L0 */ + dual_camcording_i2c = <0>; + + high_speed_fps_int = <400000>; /* L0 */ + high_speed_fps_cam = <222000>; /* L7 */ + high_speed_fps_mif = <825000>; /* L0 */ + high_speed_fps_i2c = <0>; + + dis_enable_int = <400000>; /* L0 */ + dis_enable_cam = <777000>; /* L0 */ + dis_enable_mif = <825000>; /* L0 */ + dis_enable_i2c = <0>; + + max_int = <400000>; /* L0 */ + max_cam = <777000>; /* L0 */ + max_mif = <825000>; /* L0 */ + max_i2c = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos/exynos5433-tm2.dts b/arch/arm64/boot/dts/exynos/exynos5433-tm2.dts index 23191eb..4a841440 100644 --- a/arch/arm64/boot/dts/exynos/exynos5433-tm2.dts +++ b/arch/arm64/boot/dts/exynos/exynos5433-tm2.dts @@ -18,6 +18,12 @@ compatible = "samsung,tm2", "samsung,exynos5433"; }; +&serial_3 { + assigned-clocks = <&cmu_aud CLK_MOUT_AUD_PLL_USER>; + assigned-clock-parents = <&cmu_top CLK_FOUT_AUD_PLL>; + status = "okay"; +}; + &cmu_disp { /* * TM2 and TM2e differ only by DISP_PLL rate, but define all assigned diff --git a/arch/arm64/boot/dts/exynos/exynos5433-tm2e.dts b/arch/arm64/boot/dts/exynos/exynos5433-tm2e.dts index b73e123..3fcd972 100644 --- a/arch/arm64/boot/dts/exynos/exynos5433-tm2e.dts +++ b/arch/arm64/boot/dts/exynos/exynos5433-tm2e.dts @@ -16,6 +16,20 @@ / { model = "Samsung TM2E board"; compatible = "samsung,tm2e", "samsung,exynos5433"; + + i2c_6d1: i2c-gpio-1 { + compatible = "i2c-gpio"; + gpios = <&gpc2 4 0 /* SDA */ + &gpc2 5 0 /* SCL */>; + i2c-gpio,delay-us = <2>; + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + fimc-is-vision@35 { + compatible = "samsung,exynos5-fimc-is-sensor-6d1"; + reg = <0x35>; + }; + }; }; &cmu_disp { @@ -81,3 +95,223 @@ touch-key-connected; ledvdd-supply = <&ldo33_reg>; }; + +&spi_5 { + cs-gpios = <&gpc0 6 0>, <&gpc3 1 0>; + + status = "okay"; + clocks = <&cmu_cam1 CLK_ISP_SPI0>, + <&cmu_top CLK_SCLK_ISP_SPI1_CAM1>; + clock-names = "spi", "spi_busclk0"; + pinctrl-names ="default"; + pinctrl-0 = <&fimc_is_spi_pin0>; + num-cs = <2>; + + fimc_is_spi_0@0 { + compatible = "samsung,fimc_is_spi0"; + spi-max-frequency = <50000000>; + reg = <0x0>; + + controller-data { + samsung,spi-feedback-delay = <2>; + cs-gpio = <&gpc0 6 0>; + }; + }; + + fimc_is_spi_1@1 { + compatible = "samsung,fimc_is_spi1"; + fimc_is_spi_sclk = "gpc3-0"; + fimc_is_spi_ssn = "gpc3-1"; + fimc_is_spi_miso = "gpc3-2"; + fimc_is_spi_mois = "gpc3-3"; + spi-max-frequency = <50000000>; + reg = <0x1>; + pinctrl-names = "default"; + pinctrl-0 = <&fimc_is_comp_int>; + + controller-data { + cs-gpio = <&gpc3 1 0>; + samsung,spi-feedback-delay = <3>; + }; + }; +}; + +&hsi2c_11 { + status = "okay"; +}; + +&fimc_is_sensor0 { + scenario = <0>; + gpio_reset = <&gpc0 4 0x1>; + id = <0>; + mclk_ch = <0>; + csi_ch = <0>; + flite_ch = <0>; + i2c_ch = <0x010100>; + i2c_addr = <0x483434>; + flash_first_gpio = <1>; + flash_second_gpio = <2>; + sensor_name = "imx240"; + sensor_id = <104>; + is_bns = <1>; + status = "okay"; + phys = <&mipi_phy 0>; + phy-names = "csis"; +}; + +&fimc_is_sensor1 { + pinctrl-names ="default", "ch1", "off1"; + pinctrl-0 = <&fimc_is_ch2_mclk_off>; + pinctrl-1 = <&fimc_is_ch2_i2c &fimc_is_ch2_mclk>; + pinctrl-2 = <&fimc_is_ch2_mclk_off &fimc_is_ch2_i2c_off>; + + scenario = <0>; + gpio_reset = <&gpc0 3 0x1>; + gpio_standby = <&gpc0 0 0x1>; + id = <1>; + mclk_ch = <2>; + csi_ch = <1>; + flite_ch = <1>; + i2c_ch = <0x2>; + i2c_addr = <0x6A>; + sensor_name = "6d1"; + sensor_id = <16>; + is_bns = <0>; + status = "okay"; + phys = <&mipi_phy 2>; + phy-names = "csis"; +}; + +&fimc_is_companion { + scenario = <0>; + mclk_ch = <0>; + sensor_id = <104>; + + gpios_cam_en = <&gpf4 7 0x1>; + gpio_reset = <&gpc0 4 0x1>; + gpios_comp_en = <&gpf1 7 0x1>; /* COMP_EN */ + gpios_comp_reset = <&gpf5 7 0x1>; /* COMP_RSTN */ + gpios_ois_en = <&gpf4 6 0>; /* OIS_EN*/ + + status = "okay"; +}; + +&fimc_is { + status = "okay"; + interrupts = <0 165 0>; /* Remove ISP_GIC to use FIMC IS i2c channel in host */ + companion_spi_channel = <0>; + use_vision = <1>; + use_sensor_dynamic_voltage_mode = <1>; + use_ois; + use_ois_hsi2c; + use_module_check; + /delete-property/ pinctrl-names; + /delete-property/ pinctrl-0; + + fimc_is_dvfs { + default_int = <400000>; /* L0 */ + default_cam = <777000>; /* L0 */ + default_mif = <825000>; /* L0 */ + default_i2c = <0>; + + front_preview_int = <267000>; /* L2 */ + front_preview_cam = <111000>; /* L9 */ + front_preview_mif = <543000>; /* L2 */ + front_preview_i2c = <0>; + + front_capture_int = <267000>; /* L2 */ + front_capture_cam = <111000>; /* L9 */ + front_capture_mif = <543000>; /* L2 */ + front_capture_i2c = <0>; + + front_camcording_int = <267000>; /* L2 */ + front_camcording_cam = <111000>; /* L9 */ + front_camcording_mif = <543000>; /* L2 */ + front_camcording_i2c = <0>; + + front_vt1_int = <200000>; /* L3 */ + front_vt1_cam = <111000>; /* L9 */ + front_vt1_mif = <543000>; /* L2 */ + front_vt1_i2c = <0>; + + front_vt2_int = <200000>; /* L3 */ + front_vt2_cam = <111000>; /* L9 */ + front_vt2_mif = <543000>; /* L2 */ + front_vt2_i2c = <0>; + + rear_preview_fhd_bns_off_int = <267000>; /* L2 */ + rear_preview_fhd_bns_off_cam = <200000>; /* L8 */ + rear_preview_fhd_bns_off_mif = <543000>; /* L2 */ + rear_preview_fhd_bns_off_i2c = <0>; + + rear_preview_fhd_int = <267000>; /* L2 */ + rear_preview_fhd_cam = <333000>; /* L6 */ + rear_preview_fhd_mif = <543000>; /* L2 */ + rear_preview_fhd_i2c = <0>; + + rear_preview_whd_int = <334000>; /* L1 */ + rear_preview_whd_cam = <600000>; /* L2 */ + rear_preview_whd_mif = <667000>; /* L1 */ + rear_preview_whd_i2c = <0>; + + rear_preview_uhd_int = <400000>; /* L0 */ + rear_preview_uhd_cam = <666000>; /* L1 */ + rear_preview_uhd_mif = <825000>; /* L0 */ + rear_preview_uhd_i2c = <0>; + + rear_capture_int = <400000>; /* L0 */ + rear_capture_cam = <777000>; /* L0 */ + rear_capture_mif = <667000>; /* L1 */ + rear_capture_i2c = <0>; + + rear_camcording_fhd_bns_off_int = <267000>; /* L2 */ + rear_camcording_fhd_bns_off_cam = <580000>; /* L3 */ + rear_camcording_fhd_bns_off_mif = <543000>; /* L2 */ + rear_camcording_fhd_bns_off_i2c = <0>; + + rear_camcording_fhd_int = <267000>; /* L2 */ + rear_camcording_fhd_cam = <555000>; /* L4 */ + rear_camcording_fhd_mif = <543000>; /* L2 */ + rear_camcording_fhd_i2c = <0>; + + rear_camcording_whd_int = <334000>; /* L1 */ + rear_camcording_whd_cam = <600000>; /* L2 */ + rear_camcording_whd_mif = <667000>; /* L1 */ + rear_camcording_whd_i2c = <0>; + + rear_camcording_uhd_int = <400000>; /* L0 */ + rear_camcording_uhd_cam = <666000>; /* L1 */ + rear_camcording_uhd_mif = <825000>; /* L0 */ + rear_camcording_uhd_i2c = <0>; + + dual_preview_int = <334000>; /* L1 */ + dual_preview_cam = <444000>; /* L5 */ + dual_preview_mif = <825000>; /* L0 */ + dual_preview_i2c = <0>; + + dual_capture_int = <400000>; /* L0 */ + dual_capture_cam = <777000>; /* L4 */ + dual_capture_mif = <825000>; /* L0 */ + dual_capture_i2c = <0>; + + dual_camcording_int = <334000>; /* L1 */ + dual_camcording_cam = <444000>; /* L5 */ + dual_camcording_mif = <825000>; /* L0 */ + dual_camcording_i2c = <0>; + + high_speed_fps_int = <400000>; /* L0 */ + high_speed_fps_cam = <222000>; /* L7 */ + high_speed_fps_mif = <825000>; /* L0 */ + high_speed_fps_i2c = <0>; + + dis_enable_int = <400000>; /* L0 */ + dis_enable_cam = <777000>; /* L0 */ + dis_enable_mif = <825000>; /* L0 */ + dis_enable_i2c = <0>; + + max_int = <400000>; /* L0 */ + max_cam = <777000>; /* L0 */ + max_mif = <825000>; /* L0 */ + max_i2c = <0>; + }; +};