The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/device-tree/Bindings/media/samsung-fimc.txt

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

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

Cache object: 9a5359bb6d469e0dd5213600abc78981


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.