xref: /freebsd/sys/contrib/device-tree/Bindings/media/samsung,exynos4210-fimc.yaml (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
1fac71e4eSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2fac71e4eSEmmanuel Vadot%YAML 1.2
3fac71e4eSEmmanuel Vadot---
4fac71e4eSEmmanuel Vadot$id: http://devicetree.org/schemas/media/samsung,exynos4210-fimc.yaml#
5fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6fac71e4eSEmmanuel Vadot
7fac71e4eSEmmanuel Vadottitle: Samsung S5P/Exynos SoC Fully Integrated Mobile Camera
8fac71e4eSEmmanuel Vadot
9fac71e4eSEmmanuel Vadotmaintainers:
10fac71e4eSEmmanuel Vadot  - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
11fac71e4eSEmmanuel Vadot  - Sylwester Nawrocki <s.nawrocki@samsung.com>
12fac71e4eSEmmanuel Vadot
13fac71e4eSEmmanuel Vadotdescription:
14fac71e4eSEmmanuel Vadot  Each FIMC device should have an alias in the aliases node, in the form of
15fac71e4eSEmmanuel Vadot  fimc<n>, where <n> is an integer specifying the IP block instance.
16fac71e4eSEmmanuel Vadot
17fac71e4eSEmmanuel Vadotproperties:
18fac71e4eSEmmanuel Vadot  compatible:
19fac71e4eSEmmanuel Vadot    enum:
20fac71e4eSEmmanuel Vadot      - samsung,exynos4210-fimc
21fac71e4eSEmmanuel Vadot      - samsung,exynos4212-fimc
22fac71e4eSEmmanuel Vadot      - samsung,s5pv210-fimc
23fac71e4eSEmmanuel Vadot
24fac71e4eSEmmanuel Vadot  reg:
25fac71e4eSEmmanuel Vadot    maxItems: 1
26fac71e4eSEmmanuel Vadot
27fac71e4eSEmmanuel Vadot  clocks:
28fac71e4eSEmmanuel Vadot    maxItems: 2
29fac71e4eSEmmanuel Vadot
30fac71e4eSEmmanuel Vadot  clock-names:
31fac71e4eSEmmanuel Vadot    items:
32fac71e4eSEmmanuel Vadot      - const: fimc
33fac71e4eSEmmanuel Vadot      - const: sclk_fimc
34fac71e4eSEmmanuel Vadot
35fac71e4eSEmmanuel Vadot  clock-frequency:
36fac71e4eSEmmanuel Vadot    description:
37fac71e4eSEmmanuel Vadot      Maximum FIMC local clock (LCLK) frequency.
38fac71e4eSEmmanuel Vadot
39fac71e4eSEmmanuel Vadot  interrupts:
40fac71e4eSEmmanuel Vadot    maxItems: 1
41fac71e4eSEmmanuel Vadot
42fac71e4eSEmmanuel Vadot  iommus:
43fac71e4eSEmmanuel Vadot    maxItems: 1
44fac71e4eSEmmanuel Vadot
45fac71e4eSEmmanuel Vadot  power-domains:
46fac71e4eSEmmanuel Vadot    maxItems: 1
47fac71e4eSEmmanuel Vadot
48fac71e4eSEmmanuel Vadot  samsung,cam-if:
49fac71e4eSEmmanuel Vadot    type: boolean
50fac71e4eSEmmanuel Vadot    description:
51fac71e4eSEmmanuel Vadot      The FIMC IP block includes the camera input interface.
52fac71e4eSEmmanuel Vadot
53fac71e4eSEmmanuel Vadot  samsung,isp-wb:
54fac71e4eSEmmanuel Vadot    type: boolean
55fac71e4eSEmmanuel Vadot    description: |
56fac71e4eSEmmanuel Vadot      The FIMC IP block has the ISP writeback input.
57fac71e4eSEmmanuel Vadot
58fac71e4eSEmmanuel Vadot  samsung,lcd-wb:
59fac71e4eSEmmanuel Vadot    type: boolean
60fac71e4eSEmmanuel Vadot    description: |
61fac71e4eSEmmanuel Vadot      The FIMC IP block has the LCD writeback input.
62fac71e4eSEmmanuel Vadot
63fac71e4eSEmmanuel Vadot  samsung,mainscaler-ext:
64fac71e4eSEmmanuel Vadot    type: boolean
65fac71e4eSEmmanuel Vadot    description:
66fac71e4eSEmmanuel Vadot      FIMC IP supports extended image size and has CIEXTEN register.
67fac71e4eSEmmanuel Vadot
68fac71e4eSEmmanuel Vadot  samsung,min-pix-alignment:
69fac71e4eSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32-array
70fac71e4eSEmmanuel Vadot    items:
71fac71e4eSEmmanuel Vadot      - description: Minimum supported image height alignment.
72fac71e4eSEmmanuel Vadot      - description: Horizontal image offset.
73fac71e4eSEmmanuel Vadot    description:
74fac71e4eSEmmanuel Vadot      The values are in pixels and default is <2 1>.
75fac71e4eSEmmanuel Vadot
76fac71e4eSEmmanuel Vadot  samsung,min-pix-sizes:
77fac71e4eSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32-array
78fac71e4eSEmmanuel Vadot    maxItems: 2
79fac71e4eSEmmanuel Vadot    description: |
80*b2d2a78aSEmmanuel Vadot      An array specifying minimum image size in pixels at the FIMC input and
81fac71e4eSEmmanuel Vadot      output DMA, in the first and second cell respectively.  Default value
82fac71e4eSEmmanuel Vadot      is <16 16>.
83fac71e4eSEmmanuel Vadot
84fac71e4eSEmmanuel Vadot  samsung,pix-limits:
85fac71e4eSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32-array
86fac71e4eSEmmanuel Vadot    maxItems: 4
87fac71e4eSEmmanuel Vadot    description: |
88fac71e4eSEmmanuel Vadot      An array of maximum supported image sizes in pixels, for details refer to
89fac71e4eSEmmanuel Vadot      Table 2-1 in the S5PV210 SoC User Manual. The meaning of each cell is as
90fac71e4eSEmmanuel Vadot      follows:
91fac71e4eSEmmanuel Vadot       0 - scaler input horizontal size
92fac71e4eSEmmanuel Vadot       1 - input horizontal size for the scaler bypassed
93fac71e4eSEmmanuel Vadot       2 - REAL_WIDTH without input rotation
94fac71e4eSEmmanuel Vadot       3 - REAL_HEIGHT with input rotation
95fac71e4eSEmmanuel Vadot
96fac71e4eSEmmanuel Vadot  samsung,rotators:
97fac71e4eSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
98fac71e4eSEmmanuel Vadot    default: 0x11
99fac71e4eSEmmanuel Vadot    description: |
100fac71e4eSEmmanuel Vadot      A bitmask specifying whether this IP has the input and the output
101fac71e4eSEmmanuel Vadot      rotator. Bits 4 and 0 correspond to input and output rotator
102fac71e4eSEmmanuel Vadot      respectively. If a rotator is present its corresponding bit should be
103fac71e4eSEmmanuel Vadot      set.
104fac71e4eSEmmanuel Vadot
105fac71e4eSEmmanuel Vadot  samsung,sysreg:
106fac71e4eSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
107fac71e4eSEmmanuel Vadot    description:
108fac71e4eSEmmanuel Vadot      System Registers (SYSREG) node.
109fac71e4eSEmmanuel Vadot
110fac71e4eSEmmanuel Vadotrequired:
111fac71e4eSEmmanuel Vadot  - compatible
112fac71e4eSEmmanuel Vadot  - reg
113fac71e4eSEmmanuel Vadot  - clocks
114fac71e4eSEmmanuel Vadot  - clock-names
115fac71e4eSEmmanuel Vadot  - samsung,pix-limits
116fac71e4eSEmmanuel Vadot
117fac71e4eSEmmanuel VadotallOf:
118fac71e4eSEmmanuel Vadot  - if:
119fac71e4eSEmmanuel Vadot      required:
120fac71e4eSEmmanuel Vadot        - samsung,isp-wb
121fac71e4eSEmmanuel Vadot    then:
122fac71e4eSEmmanuel Vadot      required:
123fac71e4eSEmmanuel Vadot        - samsung,sysreg
124fac71e4eSEmmanuel Vadot
125fac71e4eSEmmanuel VadotadditionalProperties: false
126fac71e4eSEmmanuel Vadot
127fac71e4eSEmmanuel Vadotexamples:
128fac71e4eSEmmanuel Vadot  - |
129fac71e4eSEmmanuel Vadot    #include <dt-bindings/clock/exynos4.h>
130fac71e4eSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
131fac71e4eSEmmanuel Vadot
132fac71e4eSEmmanuel Vadot    fimc@11800000 {
133fac71e4eSEmmanuel Vadot        compatible = "samsung,exynos4212-fimc";
134fac71e4eSEmmanuel Vadot        reg = <0x11800000 0x1000>;
135fac71e4eSEmmanuel Vadot        clocks = <&clock CLK_FIMC0>,
136fac71e4eSEmmanuel Vadot                 <&clock CLK_SCLK_FIMC0>;
137fac71e4eSEmmanuel Vadot        clock-names = "fimc", "sclk_fimc";
138fac71e4eSEmmanuel Vadot        interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
139fac71e4eSEmmanuel Vadot        iommus = <&sysmmu_fimc0>;
140fac71e4eSEmmanuel Vadot        power-domains = <&pd_cam>;
141fac71e4eSEmmanuel Vadot        samsung,sysreg = <&sys_reg>;
142fac71e4eSEmmanuel Vadot
143fac71e4eSEmmanuel Vadot        samsung,pix-limits = <4224 8192 1920 4224>;
144fac71e4eSEmmanuel Vadot        samsung,mainscaler-ext;
145fac71e4eSEmmanuel Vadot        samsung,isp-wb;
146fac71e4eSEmmanuel Vadot        samsung,cam-if;
147fac71e4eSEmmanuel Vadot
148fac71e4eSEmmanuel Vadot        assigned-clocks = <&clock CLK_MOUT_FIMC0>,
149fac71e4eSEmmanuel Vadot                          <&clock CLK_SCLK_FIMC0>;
150fac71e4eSEmmanuel Vadot        assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
151fac71e4eSEmmanuel Vadot        assigned-clock-rates = <0>, <176000000>;
152fac71e4eSEmmanuel Vadot    };
153