xref: /freebsd/sys/contrib/device-tree/Bindings/media/renesas,fcp.yaml (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/media/renesas,fcp.yaml#
5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
7c66ec88fSEmmanuel Vadottitle: Renesas R-Car Frame Compression Processor (FCP)
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotmaintainers:
10c66ec88fSEmmanuel Vadot  - Laurent Pinchart <laurent.pinchart@ideasonboard.com>
11c66ec88fSEmmanuel Vadot
12c66ec88fSEmmanuel Vadotdescription: |
13c66ec88fSEmmanuel Vadot  The FCP is a companion module of video processing modules in the Renesas
14c66ec88fSEmmanuel Vadot  R-Car Gen3 and RZ/G2 SoCs. It provides data compression and decompression,
15c66ec88fSEmmanuel Vadot  data caching, and conversion of AXI transactions in order to reduce the
16c66ec88fSEmmanuel Vadot  memory bandwidth.
17c66ec88fSEmmanuel Vadot
18c66ec88fSEmmanuel Vadot  There are three types of FCP: FCP for Codec (FCPC), FCP for VSP (FCPV) and
19c66ec88fSEmmanuel Vadot  FCP for FDP (FCPF). Their configuration and behaviour depend on the module
20c66ec88fSEmmanuel Vadot  they are paired with. These DT bindings currently support the FCPV and FCPF.
21c66ec88fSEmmanuel Vadot
22c66ec88fSEmmanuel Vadotproperties:
23c66ec88fSEmmanuel Vadot  compatible:
24fac71e4eSEmmanuel Vadot    oneOf:
25fac71e4eSEmmanuel Vadot      - enum:
26c66ec88fSEmmanuel Vadot          - renesas,fcpv # FCP for VSP
27c66ec88fSEmmanuel Vadot          - renesas,fcpf # FCP for FDP
28fac71e4eSEmmanuel Vadot      - items:
29fac71e4eSEmmanuel Vadot          - enum:
30*b2d2a78aSEmmanuel Vadot              - renesas,r9a07g043u-fcpvd # RZ/G2UL
31fac71e4eSEmmanuel Vadot              - renesas,r9a07g044-fcpvd # RZ/G2{L,LC}
32fac71e4eSEmmanuel Vadot              - renesas,r9a07g054-fcpvd # RZ/V2L
33fac71e4eSEmmanuel Vadot          - const: renesas,fcpv         # Generic FCP for VSP fallback
34c66ec88fSEmmanuel Vadot
35c66ec88fSEmmanuel Vadot  reg:
36c66ec88fSEmmanuel Vadot    maxItems: 1
37c66ec88fSEmmanuel Vadot
38fac71e4eSEmmanuel Vadot  clocks: true
39fac71e4eSEmmanuel Vadot
40fac71e4eSEmmanuel Vadot  clock-names: true
41c66ec88fSEmmanuel Vadot
42c66ec88fSEmmanuel Vadot  iommus:
43c66ec88fSEmmanuel Vadot    maxItems: 1
44c66ec88fSEmmanuel Vadot
45c66ec88fSEmmanuel Vadot  power-domains:
46c66ec88fSEmmanuel Vadot    maxItems: 1
47c66ec88fSEmmanuel Vadot
48c66ec88fSEmmanuel Vadot  resets:
49c66ec88fSEmmanuel Vadot    maxItems: 1
50c66ec88fSEmmanuel Vadot
51c66ec88fSEmmanuel Vadotrequired:
52c66ec88fSEmmanuel Vadot  - compatible
53c66ec88fSEmmanuel Vadot  - reg
54c66ec88fSEmmanuel Vadot  - clocks
55c66ec88fSEmmanuel Vadot  - power-domains
56c66ec88fSEmmanuel Vadot  - resets
57c66ec88fSEmmanuel Vadot
58c66ec88fSEmmanuel VadotadditionalProperties: false
59c66ec88fSEmmanuel Vadot
60fac71e4eSEmmanuel VadotallOf:
61fac71e4eSEmmanuel Vadot  - if:
62fac71e4eSEmmanuel Vadot      properties:
63fac71e4eSEmmanuel Vadot        compatible:
64fac71e4eSEmmanuel Vadot          contains:
65fac71e4eSEmmanuel Vadot            enum:
66*b2d2a78aSEmmanuel Vadot              - renesas,r9a07g043u-fcpvd
67fac71e4eSEmmanuel Vadot              - renesas,r9a07g044-fcpvd
68fac71e4eSEmmanuel Vadot              - renesas,r9a07g054-fcpvd
69fac71e4eSEmmanuel Vadot    then:
70fac71e4eSEmmanuel Vadot      properties:
71fac71e4eSEmmanuel Vadot        clocks:
72fac71e4eSEmmanuel Vadot          items:
73fac71e4eSEmmanuel Vadot            - description: Main clock
74fac71e4eSEmmanuel Vadot            - description: Register access clock
75fac71e4eSEmmanuel Vadot            - description: Video clock
76fac71e4eSEmmanuel Vadot        clock-names:
77fac71e4eSEmmanuel Vadot          items:
78fac71e4eSEmmanuel Vadot            - const: aclk
79fac71e4eSEmmanuel Vadot            - const: pclk
80fac71e4eSEmmanuel Vadot            - const: vclk
81fac71e4eSEmmanuel Vadot      required:
82fac71e4eSEmmanuel Vadot        - clock-names
83fac71e4eSEmmanuel Vadot    else:
84fac71e4eSEmmanuel Vadot      properties:
85fac71e4eSEmmanuel Vadot        clocks:
86fac71e4eSEmmanuel Vadot          maxItems: 1
87fac71e4eSEmmanuel Vadot        clock-names: false
88fac71e4eSEmmanuel Vadot
89c66ec88fSEmmanuel Vadotexamples:
90c66ec88fSEmmanuel Vadot  # R8A7795 (R-Car H3) FCP for VSP-D1
91c66ec88fSEmmanuel Vadot  - |
92c66ec88fSEmmanuel Vadot    #include <dt-bindings/clock/renesas-cpg-mssr.h>
93c66ec88fSEmmanuel Vadot    #include <dt-bindings/power/r8a7795-sysc.h>
94c66ec88fSEmmanuel Vadot
95c66ec88fSEmmanuel Vadot    fcp@fea2f000 {
96c66ec88fSEmmanuel Vadot        compatible = "renesas,fcpv";
97c66ec88fSEmmanuel Vadot        reg = <0xfea2f000 0x200>;
98c66ec88fSEmmanuel Vadot        clocks = <&cpg CPG_MOD 602>;
99c66ec88fSEmmanuel Vadot        power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
100c66ec88fSEmmanuel Vadot        resets = <&cpg 602>;
101c66ec88fSEmmanuel Vadot        iommus = <&ipmmu_vi0 9>;
102c66ec88fSEmmanuel Vadot    };
103c66ec88fSEmmanuel Vadot...
104