arm64: dts: exynos5433-tm2: Add camera device nodes
authorSylwester Nawrocki <s.nawrocki@samsung.com>
Mon, 16 Apr 2018 13:24:55 +0000 (15:24 +0200)
committerJunghoon Kim <jhoon20.kim@samsung.com>
Thu, 14 Feb 2019 05:57:24 +0000 (14:57 +0900)
Change-Id: I003c2a2ddeeea63168a4ff382eea783edd808937
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi
arch/arm64/boot/dts/exynos/exynos5433-tm2.dts
arch/arm64/boot/dts/exynos/exynos5433-tm2e.dts

index fb09f9d..c83e2e8 100644 (file)
 
 / {
        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;
        };
                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 */
                        "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 {
        };
 };
 
+&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";
 
                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 {
        status = "okay";
 };
 
+&ispi2c_0 {
+       fimc_is_i2c0@3d {
+               compatible = "samsung,fimc_is_i2c0";
+               reg = <0x3d>;
+       };
+};
+
 &mali {
        status = "okay";
        vdd_g3d-supply = <&buck6_reg>;
                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 = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
+               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 = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       };
 };
 
 &pinctrl_touch {
        };
 };
 
+&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>;
 };
 &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>;
+       };
+};
index 23191eb..4a84144 100644 (file)
        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
index b73e123..3fcd972 100644 (file)
 / {
        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 {
        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>;
+       };
+};