xref: /freebsd/sys/contrib/device-tree/Bindings/media/renesas,fcp.yaml (revision fac71e4e09885bb2afa3d984a0c239a52e1a7418)
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:
24*fac71e4eSEmmanuel Vadot    oneOf:
25*fac71e4eSEmmanuel Vadot      - enum:
26c66ec88fSEmmanuel Vadot          - renesas,fcpv # FCP for VSP
27c66ec88fSEmmanuel Vadot          - renesas,fcpf # FCP for FDP
28*fac71e4eSEmmanuel Vadot      - items:
29*fac71e4eSEmmanuel Vadot          - enum:
30*fac71e4eSEmmanuel Vadot              - renesas,r9a07g044-fcpvd # RZ/G2{L,LC}
31*fac71e4eSEmmanuel Vadot              - renesas,r9a07g054-fcpvd # RZ/V2L
32*fac71e4eSEmmanuel Vadot          - const: renesas,fcpv         # Generic FCP for VSP fallback
33c66ec88fSEmmanuel Vadot
34c66ec88fSEmmanuel Vadot  reg:
35c66ec88fSEmmanuel Vadot    maxItems: 1
36c66ec88fSEmmanuel Vadot
37*fac71e4eSEmmanuel Vadot  clocks: true
38*fac71e4eSEmmanuel Vadot
39*fac71e4eSEmmanuel Vadot  clock-names: true
40c66ec88fSEmmanuel Vadot
41c66ec88fSEmmanuel Vadot  iommus:
42c66ec88fSEmmanuel Vadot    maxItems: 1
43c66ec88fSEmmanuel Vadot
44c66ec88fSEmmanuel Vadot  power-domains:
45c66ec88fSEmmanuel Vadot    maxItems: 1
46c66ec88fSEmmanuel Vadot
47c66ec88fSEmmanuel Vadot  resets:
48c66ec88fSEmmanuel Vadot    maxItems: 1
49c66ec88fSEmmanuel Vadot
50c66ec88fSEmmanuel Vadotrequired:
51c66ec88fSEmmanuel Vadot  - compatible
52c66ec88fSEmmanuel Vadot  - reg
53c66ec88fSEmmanuel Vadot  - clocks
54c66ec88fSEmmanuel Vadot  - power-domains
55c66ec88fSEmmanuel Vadot  - resets
56c66ec88fSEmmanuel Vadot
57c66ec88fSEmmanuel VadotadditionalProperties: false
58c66ec88fSEmmanuel Vadot
59*fac71e4eSEmmanuel VadotallOf:
60*fac71e4eSEmmanuel Vadot  - if:
61*fac71e4eSEmmanuel Vadot      properties:
62*fac71e4eSEmmanuel Vadot        compatible:
63*fac71e4eSEmmanuel Vadot          contains:
64*fac71e4eSEmmanuel Vadot            enum:
65*fac71e4eSEmmanuel Vadot              - renesas,r9a07g044-fcpvd
66*fac71e4eSEmmanuel Vadot              - renesas,r9a07g054-fcpvd
67*fac71e4eSEmmanuel Vadot    then:
68*fac71e4eSEmmanuel Vadot      properties:
69*fac71e4eSEmmanuel Vadot        clocks:
70*fac71e4eSEmmanuel Vadot          items:
71*fac71e4eSEmmanuel Vadot            - description: Main clock
72*fac71e4eSEmmanuel Vadot            - description: Register access clock
73*fac71e4eSEmmanuel Vadot            - description: Video clock
74*fac71e4eSEmmanuel Vadot        clock-names:
75*fac71e4eSEmmanuel Vadot          items:
76*fac71e4eSEmmanuel Vadot            - const: aclk
77*fac71e4eSEmmanuel Vadot            - const: pclk
78*fac71e4eSEmmanuel Vadot            - const: vclk
79*fac71e4eSEmmanuel Vadot      required:
80*fac71e4eSEmmanuel Vadot        - clock-names
81*fac71e4eSEmmanuel Vadot    else:
82*fac71e4eSEmmanuel Vadot      properties:
83*fac71e4eSEmmanuel Vadot        clocks:
84*fac71e4eSEmmanuel Vadot          maxItems: 1
85*fac71e4eSEmmanuel Vadot        clock-names: false
86*fac71e4eSEmmanuel Vadot
87c66ec88fSEmmanuel Vadotexamples:
88c66ec88fSEmmanuel Vadot  # R8A7795 (R-Car H3) FCP for VSP-D1
89c66ec88fSEmmanuel Vadot  - |
90c66ec88fSEmmanuel Vadot    #include <dt-bindings/clock/renesas-cpg-mssr.h>
91c66ec88fSEmmanuel Vadot    #include <dt-bindings/power/r8a7795-sysc.h>
92c66ec88fSEmmanuel Vadot
93c66ec88fSEmmanuel Vadot    fcp@fea2f000 {
94c66ec88fSEmmanuel Vadot        compatible = "renesas,fcpv";
95c66ec88fSEmmanuel Vadot        reg = <0xfea2f000 0x200>;
96c66ec88fSEmmanuel Vadot        clocks = <&cpg CPG_MOD 602>;
97c66ec88fSEmmanuel Vadot        power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
98c66ec88fSEmmanuel Vadot        resets = <&cpg 602>;
99c66ec88fSEmmanuel Vadot        iommus = <&ipmmu_vi0 9>;
100c66ec88fSEmmanuel Vadot    };
101c66ec88fSEmmanuel Vadot...
102