From 08c864ea767228cb13300425aa3ba881e04c058a Mon Sep 17 00:00:00 2001 From: Sylwester Nawrocki Date: Wed, 6 Feb 2013 18:34:42 +0100 Subject: [PATCH] ARM: dts: Add camera device nodes for PQ board This patch adds all nodes for camera devices on an example Exynos4412 SoC based board. This is all what's required in the board dts file to enable rear facing camera (S5C73M3 sensor). The aliases node contains entries required for the camera processing data path entity drivers. The sensor nodes use standard port/remote-endpoint nodes convention. Internal SoC links between entities are not specified this way and are coded in the driver instead. The S5C73M3 sensor uses two control buses: I2C and SPI. There are two, i2c_0 and spi_1 bus controller child nodes assigned to it. Signed-off-by: Sylwester Nawrocki Signed-off-by: Kyungmin Park --- arch/arm/boot/dts/exynos4412-slp_pq.dts | 173 ++++++++++++++++++++++++++++++++ 1 file changed, 173 insertions(+) diff --git a/arch/arm/boot/dts/exynos4412-slp_pq.dts b/arch/arm/boot/dts/exynos4412-slp_pq.dts index e28bc606..fa47f9a 100644 --- a/arch/arm/boot/dts/exynos4412-slp_pq.dts +++ b/arch/arm/boot/dts/exynos4412-slp_pq.dts @@ -113,6 +113,35 @@ }; }; + i2c_0: i2c@13860000 { + samsung,i2c-sda-delay = <100>; + samsung,i2c-slave-addr = <0x10>; + samsung,i2c-max-bus-freq = <400000>; + pinctrl-0 = <&i2c0_bus>; + pinctrl-names = "default"; + status = "okay"; + + s5c73m3@3c { + compatible = "samsung,s5c73m3"; + reg = <0x3c>; + gpios = <&gpm0 1 1>, /* ISP_STANDBY */ + <&gpf1 3 1>; /* ISP_RESET */ + vdd-int-supply = <&buck9_reg>; + vddio-cis-supply = <&ldo9_reg>; + vdda-supply = <&ldo17_reg>; + vddio-host-supply = <&ldo18_reg>; + vdd-af-supply = <&cam_af_reg>; + vdd-reg-supply = <&cam_io_reg>; + clock-frequency = <24000000>; + + port { + s5c73m3_ep: endpoint { + remote-endpoint = <&csis0_ep>; + }; + }; + }; + }; + i2c@13890000 { samsung,i2c-sda-delay = <100>; samsung,i2c-slave-addr = <0x10>; @@ -425,6 +454,34 @@ enable-active-high; }; + cam_af_reg: voltage-regulator@2 { + compatible = "regulator-fixed"; + regulator-name = "CAM_AF"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + gpio = <&gpm0 4 0>; + enable-active-high; + }; + + cam_io_reg: voltage-regulator@3 { + compatible = "regulator-fixed"; + regulator-name = "CAM_SENSOR_A"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + gpio = <&gpm0 2 0>; + enable-active-high; + }; + + cam_isp_core_reg: voltage-regulator@4 { + compatible = "regulator-fixed"; + regulator-name = "CAM_ISP_CORE_1.2V_EN"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + gpio = <&gpm0 3 0>; + enable-active-high; + regulator-always-on; + }; + fimd0_lcd: panel { compatible = "s6e8ax0"; reset-gpio = <&gpy4 5 0>; @@ -484,4 +541,120 @@ vusb_d-supply = <&ldo15_reg>; vusb_a-supply = <&ldo12_reg>; }; + + spi_1: spi@13930000 { + pinctrl-names = "default"; + pinctrl-0 = <&spi1_bus>; + status = "okay"; + + s5c73m3_spi: s5c73m3 { + compatible = "samsung,s5c73m3"; + spi-max-frequency = <50000000>; + reg = <0>; + controller-data { + cs-gpio = <&gpb 5 0>; + samsung,spi-feedback-delay = <2>; + }; + }; + }; + + camera { + compatible = "samsung,fimc", "simple-bus"; + status = "okay"; + + pinctrl-names = "default", "inactive"; + pinctrl-0 = <&cam_port_a_clk_active>; + pinctrl-1 = <&cam_port_a_clk_idle>; + + fimc_0: fimc@11800000 { + clock-frequency = <176000000>; + status = "okay"; + }; + + fimc_1: fimc@11810000 { + clock-frequency = <176000000>; + status = "okay"; + }; + + fimc_2: fimc@11820000 { + clock-frequency = <176000000>; + status = "okay"; + }; + + fimc_3: fimc@11830000 { + clock-frequency = <176000000>; + status = "okay"; + }; + + csis_0: csis@11880000 { + status = "okay"; + vddcore-supply = <&ldo8_reg>; + vddio-supply = <&ldo10_reg>; + clock-frequency = <160000000>; + #address-cells = <1>; + #size-cells = <0>; + + /* Camera C (3) MIPI CSI-2 (CSIS0) */ + port@3 { + reg = <3>; + csis0_ep: endpoint { + remote-endpoint = <&s5c73m3_ep>; + data-lanes = <1 2 3 4>; + samsung,csis-hs-settle = <12>; + }; + }; + }; + + csis_1: csis@11890000 { + status = "okay"; + vddcore-supply = <&ldo8_reg>; + vddio-supply = <&ldo10_reg>; + clock-frequency = <160000000>; + #address-cells = <1>; + #size-cells = <0>; + + /* Camera D (4) MIPI CSI-2 (CSIS1) */ + port@4 { + reg = <4>; + csis1_ep: endpoint { + remote-endpoint = <&is_s5k6a3_ep>; + data-lanes = <1>; + samsung,csis-hs-settle = <18>; + samsung,csis-wclk; + }; + }; + }; + + fimc-is@12000000 { + status = "okay"; + + fimc_lite_0: fimc-lite@12390000 { + status = "okay"; + }; + + fimc_lite_1: fimc-lite@123A0000 { + status = "okay"; + }; + + fimc-is-i2c@0 { + #address-cells = <1>; + #size-cells = <0>; + + s5k6a3@10 { + compatible = "samsung,s5k6a3"; + reg = <0x10>; + svdda-supply = <&cam_io_reg>; + svddio-supply = <&ldo19_reg>; + clock-frequency = <24000000>; + gpios = <&gpm1 6 0>; + port { + is_s5k6a3_ep: endpoint { + remote-endpoint = <&csis1_ep>; + data-lanes = <1>; + }; + }; + }; + }; + }; + }; }; -- 2.7.4