About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / devicetree / bindings / media / samsung-fimc.txt




Custom Search

Based on kernel version 3.13. Page generated on 2014-01-20 22:01 EST.

1	Samsung S5P/EXYNOS SoC Camera Subsystem (FIMC)
2	----------------------------------------------
3	
4	The S5P/Exynos SoC Camera subsystem comprises of multiple sub-devices
5	represented by separate device tree nodes. Currently this includes: FIMC (in
6	the S5P SoCs series known as CAMIF), MIPI CSIS, FIMC-LITE and FIMC-IS (ISP).
7	
8	The sub-subdevices are defined as child nodes of the common 'camera' node which
9	also includes common properties of the whole subsystem not really specific to
10	any single sub-device, like common camera port pins or the CAMCLK clock outputs
11	for external image sensors attached to an SoC.
12	
13	Common 'camera' node
14	--------------------
15	
16	Required properties:
17	
18	- compatible	: must be "samsung,fimc", "simple-bus"
19	- clocks	: list of clock specifiers, corresponding to entries in
20			  the clock-names property;
21	- clock-names	: must contain "sclk_cam0", "sclk_cam1", "pxl_async0",
22			  "pxl_async1" entries, matching entries in the clocks property.
23	
24	The pinctrl bindings defined in ../pinctrl/pinctrl-bindings.txt must be used
25	to define a required pinctrl state named "default" and optional pinctrl states:
26	"idle", "active-a", active-b". These optional states can be used to switch the
27	camera port pinmux at runtime. The "idle" state should configure both the camera
28	ports A and B into high impedance state, especially the CAMCLK clock output
29	should be inactive. For the "active-a" state the camera port A must be activated
30	and the port B deactivated and for the state "active-b" it should be the other
31	way around.
32	
33	The 'camera' node must include at least one 'fimc' child node.
34	
35	'fimc' device nodes
36	-------------------
37	
38	Required properties:
39	
40	- compatible: "samsung,s5pv210-fimc" for S5PV210, "samsung,exynos4210-fimc"
41	  for Exynos4210 and "samsung,exynos4212-fimc" for Exynos4x12 SoCs;
42	- reg: physical base address and length of the registers set for the device;
43	- interrupts: should contain FIMC interrupt;
44	- clocks: list of clock specifiers, must contain an entry for each required
45	  entry in clock-names;
46	- clock-names: must contain "fimc", "sclk_fimc" entries.
47	- samsung,pix-limits: an array of maximum supported image sizes in pixels, for
48	  details refer to Table 2-1 in the S5PV210 SoC User Manual; The meaning of
49	  each cell is as follows:
50	  0 - scaler input horizontal size,
51	  1 - input horizontal size for the scaler bypassed,
52	  2 - REAL_WIDTH without input rotation,
53	  3 - REAL_HEIGHT with input rotation,
54	- samsung,sysreg: a phandle to the SYSREG node.
55	
56	Each FIMC device should have an alias in the aliases node, in the form of
57	fimc<n>, where <n> is an integer specifying the IP block instance.
58	
59	Optional properties:
60	
61	- clock-frequency: maximum FIMC local clock (LCLK) frequency;
62	- samsung,min-pix-sizes: an array specyfing minimum image size in pixels at
63	  the FIMC input and output DMA, in the first and second cell respectively.
64	  Default value when this property is not present is <16 16>;
65	- samsung,min-pix-alignment: minimum supported image height alignment (first
66	  cell) and the horizontal image offset (second cell). The values are in pixels
67	  and default to <2 1> when this property is not present;
68	- samsung,mainscaler-ext: a boolean property indicating whether the FIMC IP
69	  supports extended image size and has CIEXTEN register;
70	- samsung,rotators: a bitmask specifying whether this IP has the input and
71	  the output rotator. Bits 4 and 0 correspond to input and output rotator
72	  respectively. If a rotator is present its corresponding bit should be set.
73	  Default value when this property is not specified is 0x11.
74	- samsung,cam-if: a bolean property indicating whether the IP block includes
75	  the camera input interface.
76	- samsung,isp-wb: this property must be present if the IP block has the ISP
77	  writeback input.
78	- samsung,lcd-wb: this property must be present if the IP block has the LCD
79	  writeback input.
80	
81	
82	'parallel-ports' node
83	---------------------
84	
85	This node should contain child 'port' nodes specifying active parallel video
86	input ports. It includes camera A and camera B inputs. 'reg' property in the
87	port nodes specifies data input - 0, 1 indicates input A, B respectively.
88	
89	Optional properties
90	
91	- samsung,camclk-out : specifies clock output for remote sensor,
92			       0 - CAM_A_CLKOUT, 1 - CAM_B_CLKOUT;
93	
94	Image sensor nodes
95	------------------
96	
97	The sensor device nodes should be added to their control bus controller (e.g.
98	I2C0) nodes and linked to a port node in the csis or the parallel-ports node,
99	using the common video interfaces bindings, defined in video-interfaces.txt.
100	The implementation of this bindings requires clock-frequency property to be
101	present in the sensor device nodes.
102	
103	Example:
104	
105		aliases {
106			fimc0 = &fimc_0;
107		};
108	
109		/* Parallel bus IF sensor */
110		i2c_0: i2c@13860000 {
111			s5k6aa: sensor@3c {
112				compatible = "samsung,s5k6aafx";
113				reg = <0x3c>;
114				vddio-supply = <...>;
115	
116				clock-frequency = <24000000>;
117				clocks = <...>;
118				clock-names = "mclk";
119	
120				port {
121					s5k6aa_ep: endpoint {
122						remote-endpoint = <&fimc0_ep>;
123						bus-width = <8>;
124						hsync-active = <0>;
125						vsync-active = <1>;
126						pclk-sample = <1>;
127					};
128				};
129			};
130	
131			/* MIPI CSI-2 bus IF sensor */
132			s5c73m3: sensor@0x1a {
133				compatible = "samsung,s5c73m3";
134				reg = <0x1a>;
135				vddio-supply = <...>;
136	
137				clock-frequency = <24000000>;
138				clocks = <...>;
139				clock-names = "mclk";
140	
141				port {
142					s5c73m3_1: endpoint {
143						data-lanes = <1 2 3 4>;
144						remote-endpoint = <&csis0_ep>;
145					};
146				};
147			};
148		};
149	
150		camera {
151			compatible = "samsung,fimc", "simple-bus";
152			#address-cells = <1>;
153			#size-cells = <1>;
154			status = "okay";
155	
156			pinctrl-names = "default";
157			pinctrl-0 = <&cam_port_a_clk_active>;
158	
159			/* parallel camera ports */
160			parallel-ports {
161				/* camera A input */
162				port@0 {
163					reg = <0>;
164					fimc0_ep: endpoint {
165						remote-endpoint = <&s5k6aa_ep>;
166						bus-width = <8>;
167						hsync-active = <0>;
168						vsync-active = <1>;
169						pclk-sample = <1>;
170					};
171				};
172			};
173	
174			fimc_0: fimc@11800000 {
175				compatible = "samsung,exynos4210-fimc";
176				reg = <0x11800000 0x1000>;
177				interrupts = <0 85 0>;
178				status = "okay";
179			};
180	
181			csis_0: csis@11880000 {
182				compatible = "samsung,exynos4210-csis";
183				reg = <0x11880000 0x1000>;
184				interrupts = <0 78 0>;
185				/* camera C input */
186				port@3 {
187					reg = <3>;
188					csis0_ep: endpoint {
189						remote-endpoint = <&s5c73m3_ep>;
190						data-lanes = <1 2 3 4>;
191						samsung,csis-hs-settle = <12>;
192					};
193				};
194			};
195		};
196	
197	The MIPI-CSIS device binding is defined in samsung-mipi-csis.txt.
Hide Line Numbers
About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Information is copyright its respective author. All material is available from the Linux Kernel Source distributed under a GPL License. This page is provided as a free service by mjmwired.net.