summaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/media/samsung,exynos4210-fimc.yaml
blob: 271d0577a83c718858ab478bc6dd61b9a4f67777 (plain)
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>;
    };