Documentation / devicetree / bindings / media / samsung,exynos4210-fimc.yaml


Based on kernel version 6.8. Page generated on 2024-03-11 21:26 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/samsung,exynos4210-fimc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Samsung S5P/Exynos SoC Fully Integrated Mobile Camera

maintainers:
  - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  - Sylwester Nawrocki <s.nawrocki@samsung.com>

description:
  Each FIMC device should have an alias in the aliases node, in the form of
  fimc<n>, where <n> is an integer specifying the IP block instance.

properties:
  compatible:
    enum:
      - samsung,exynos4210-fimc
      - samsung,exynos4212-fimc
      - samsung,s5pv210-fimc

  reg:
    maxItems: 1

  clocks:
    maxItems: 2

  clock-names:
    items:
      - const: fimc
      - const: sclk_fimc

  clock-frequency:
    description:
      Maximum FIMC local clock (LCLK) frequency.

  interrupts:
    maxItems: 1

  iommus:
    maxItems: 1

  power-domains:
    maxItems: 1

  samsung,cam-if:
    type: boolean
    description:
      The FIMC IP block includes the camera input interface.

  samsung,isp-wb:
    type: boolean
    description: |
      The FIMC IP block has the ISP writeback input.

  samsung,lcd-wb:
    type: boolean
    description: |
      The FIMC IP block has the LCD writeback input.

  samsung,mainscaler-ext:
    type: boolean
    description:
      FIMC IP supports extended image size and has CIEXTEN register.

  samsung,min-pix-alignment:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    items:
      - description: Minimum supported image height alignment.
      - description: Horizontal image offset.
    description:
      The values are in pixels and default is <2 1>.

  samsung,min-pix-sizes:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    maxItems: 2
    description: |
      An array specyfing minimum image size in pixels at the FIMC input and
      output DMA, in the first and second cell respectively.  Default value
      is <16 16>.

  samsung,pix-limits:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    maxItems: 4
    description: |
      An array of maximum supported image sizes in pixels, for details refer to
      Table 2-1 in the S5PV210 SoC User Manual. The meaning of each cell is as
      follows:
       0 - scaler input horizontal size
       1 - input horizontal size for the scaler bypassed
       2 - REAL_WIDTH without input rotation
       3 - REAL_HEIGHT with input rotation

  samsung,rotators:
    $ref: /schemas/types.yaml#/definitions/uint32
    default: 0x11
    description: |
      A bitmask specifying whether this IP has the input and the output
      rotator. Bits 4 and 0 correspond to input and output rotator
      respectively. If a rotator is present its corresponding bit should be
      set.

  samsung,sysreg:
    $ref: /schemas/types.yaml#/definitions/phandle
    description:
      System Registers (SYSREG) node.

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - samsung,pix-limits

allOf:
  - if:
      required:
        - samsung,isp-wb
    then:
      required:
        - samsung,sysreg

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/exynos4.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
 
    fimc@11800000 {
        compatible = "samsung,exynos4212-fimc";
        reg = <0x11800000 0x1000>;
        clocks = <&clock CLK_FIMC0>,
                 <&clock CLK_SCLK_FIMC0>;
        clock-names = "fimc", "sclk_fimc";
        interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
        iommus = <&sysmmu_fimc0>;
        power-domains = <&pd_cam>;
        samsung,sysreg = <&sys_reg>;
 
        samsung,pix-limits = <4224 8192 1920 4224>;
        samsung,mainscaler-ext;
        samsung,isp-wb;
        samsung,cam-if;
 
        assigned-clocks = <&clock CLK_MOUT_FIMC0>,
                          <&clock CLK_SCLK_FIMC0>;
        assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
        assigned-clock-rates = <0>, <176000000>;
    };