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