Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v3.11-rc6 197 lines 6.4 kB view raw
1Samsung S5P/EXYNOS SoC Camera Subsystem (FIMC) 2---------------------------------------------- 3 4The S5P/Exynos SoC Camera subsystem comprises of multiple sub-devices 5represented by separate device tree nodes. Currently this includes: FIMC (in 6the S5P SoCs series known as CAMIF), MIPI CSIS, FIMC-LITE and FIMC-IS (ISP). 7 8The sub-subdevices are defined as child nodes of the common 'camera' node which 9also includes common properties of the whole subsystem not really specific to 10any single sub-device, like common camera port pins or the CAMCLK clock outputs 11for external image sensors attached to an SoC. 12 13Common 'camera' node 14-------------------- 15 16Required 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 24The pinctrl bindings defined in ../pinctrl/pinctrl-bindings.txt must be used 25to 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 27camera port pinmux at runtime. The "idle" state should configure both the camera 28ports A and B into high impedance state, especially the CAMCLK clock output 29should be inactive. For the "active-a" state the camera port A must be activated 30and the port B deactivated and for the state "active-b" it should be the other 31way around. 32 33The 'camera' node must include at least one 'fimc' child node. 34 35'fimc' device nodes 36------------------- 37 38Required 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 56Each FIMC device should have an alias in the aliases node, in the form of 57fimc<n>, where <n> is an integer specifying the IP block instance. 58 59Optional 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 85This node should contain child 'port' nodes specifying active parallel video 86input ports. It includes camera A and camera B inputs. 'reg' property in the 87port nodes specifies data input - 0, 1 indicates input A, B respectively. 88 89Optional properties 90 91- samsung,camclk-out : specifies clock output for remote sensor, 92 0 - CAM_A_CLKOUT, 1 - CAM_B_CLKOUT; 93 94Image sensor nodes 95------------------ 96 97The sensor device nodes should be added to their control bus controller (e.g. 98I2C0) nodes and linked to a port node in the csis or the parallel-ports node, 99using the common video interfaces bindings, defined in video-interfaces.txt. 100The implementation of this bindings requires clock-frequency property to be 101present in the sensor device nodes. 102 103Example: 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 197The MIPI-CSIS device binding is defined in samsung-mipi-csis.txt.