summaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/media/renesas,fcp.yaml
blob: cbb16a7a5481270c43c71d3b43760cf207e644df (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
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/renesas,fcp.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Renesas R-Car Frame Compression Processor (FCP)

maintainers:
  - Laurent Pinchart <laurent.pinchart@ideasonboard.com>

description: |
  The FCP is a companion module of video processing modules in the Renesas
  R-Car Gen3 and RZ/G2 SoCs. It provides data compression and decompression,
  data caching, and conversion of AXI transactions in order to reduce the
  memory bandwidth.

  There are three types of FCP: FCP for Codec (FCPC), FCP for VSP (FCPV) and
  FCP for FDP (FCPF). Their configuration and behaviour depend on the module
  they are paired with. These DT bindings currently support the FCPV and FCPF.

properties:
  compatible:
    oneOf:
      - enum:
          - renesas,fcpv # FCP for VSP
          - renesas,fcpf # FCP for FDP
      - items:
          - enum:
              - renesas,r9a07g043u-fcpvd # RZ/G2UL
              - renesas,r9a07g044-fcpvd # RZ/G2{L,LC}
              - renesas,r9a07g054-fcpvd # RZ/V2L
              - renesas,r9a08g046-fcpvd # RZ/G3L
              - renesas,r9a09g047-fcpvd # RZ/G3E
              - renesas,r9a09g056-fcpvd # RZ/V2N
              - renesas,r9a09g057-fcpvd # RZ/V2H(P)
              - renesas,r9a09g077-fcpvd # RZ/T2H
              - renesas,r9a09g087-fcpvd # RZ/N2H
          - const: renesas,fcpv         # Generic FCP for VSP fallback

  reg:
    maxItems: 1

  clocks:
    minItems: 1
    items:
      - description: Main clock
      - description: Register access clock
      - description: Video clock

  clock-names:
    items:
      - const: aclk
      - const: pclk
      - const: vclk

  iommus:
    maxItems: 1

  power-domains:
    maxItems: 1

  resets:
    maxItems: 1

required:
  - compatible
  - reg
  - clocks
  - power-domains

additionalProperties: false

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - renesas,r9a07g043u-fcpvd
              - renesas,r9a07g044-fcpvd
              - renesas,r9a07g054-fcpvd
              - renesas,r9a08g046-fcpvd
              - renesas,r9a09g047-fcpvd
              - renesas,r9a09g056-fcpvd
              - renesas,r9a09g057-fcpvd
              - renesas,r9a09g077-fcpvd
              - renesas,r9a09g087-fcpvd
    then:
      properties:
        clocks:
          minItems: 3
      required:
        - clock-names
    else:
      properties:
        clocks:
          maxItems: 1
        clock-names: false
  - if:
      properties:
        compatible:
          contains:
            enum:
              - renesas,r9a09g077-fcpvd
              - renesas,r9a09g087-fcpvd
    then:
      properties:
        resets: false
    else:
      required:
        - resets

examples:
  # R8A7795 (R-Car H3) FCP for VSP-D1
  - |
    #include <dt-bindings/clock/renesas-cpg-mssr.h>
    #include <dt-bindings/power/r8a7795-sysc.h>

    fcp@fea2f000 {
        compatible = "renesas,fcpv";
        reg = <0xfea2f000 0x200>;
        clocks = <&cpg CPG_MOD 602>;
        power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
        resets = <&cpg 602>;
        iommus = <&ipmmu_vi0 9>;
    };
...