xref: /freebsd/sys/contrib/device-tree/Bindings/media/starfive,jh7110-camss.yaml (revision 7fdf597e96a02165cfe22ff357b857d5fa15ed8a)
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/media/starfive,jh7110-camss.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Starfive SoC CAMSS ISP
8
9maintainers:
10  - Jack Zhu <jack.zhu@starfivetech.com>
11  - Changhuang Liang <changhuang.liang@starfivetech.com>
12
13description:
14  The Starfive CAMSS ISP is a Camera interface for Starfive JH7110 SoC. It
15  consists of a VIN controller (Video In Controller, a top-level control unit)
16  and an ISP.
17
18properties:
19  compatible:
20    const: starfive,jh7110-camss
21
22  reg:
23    maxItems: 2
24
25  reg-names:
26    items:
27      - const: syscon
28      - const: isp
29
30  clocks:
31    maxItems: 7
32
33  clock-names:
34    items:
35      - const: apb_func
36      - const: wrapper_clk_c
37      - const: dvp_inv
38      - const: axiwr
39      - const: mipi_rx0_pxl
40      - const: ispcore_2x
41      - const: isp_axi
42
43  resets:
44    maxItems: 6
45
46  reset-names:
47    items:
48      - const: wrapper_p
49      - const: wrapper_c
50      - const: axird
51      - const: axiwr
52      - const: isp_top_n
53      - const: isp_top_axi
54
55  power-domains:
56    items:
57      - description: JH7110 ISP Power Domain Switch Controller.
58
59  interrupts:
60    maxItems: 4
61
62  ports:
63    $ref: /schemas/graph.yaml#/properties/ports
64
65    properties:
66      port@0:
67        $ref: /schemas/graph.yaml#/$defs/port-base
68        unevaluatedProperties: false
69        description: Input port for receiving DVP data.
70
71        properties:
72          endpoint:
73            $ref: video-interfaces.yaml#
74            unevaluatedProperties: false
75
76            properties:
77              bus-type:
78                enum: [5, 6]
79
80              bus-width:
81                enum: [8, 10, 12]
82
83              data-shift:
84                enum: [0, 2]
85                default: 0
86
87              hsync-active:
88                enum: [0, 1]
89                default: 1
90
91              vsync-active:
92                enum: [0, 1]
93                default: 1
94
95            required:
96              - bus-type
97              - bus-width
98
99      port@1:
100        $ref: /schemas/graph.yaml#/properties/port
101        description: Input port for receiving CSI data.
102
103    required:
104      - port@0
105      - port@1
106
107required:
108  - compatible
109  - reg
110  - reg-names
111  - clocks
112  - clock-names
113  - resets
114  - reset-names
115  - power-domains
116  - interrupts
117  - ports
118
119additionalProperties: false
120
121examples:
122  - |
123    isp@19840000 {
124        compatible = "starfive,jh7110-camss";
125        reg = <0x19840000 0x10000>,
126              <0x19870000 0x30000>;
127        reg-names = "syscon", "isp";
128        clocks = <&ispcrg 0>,
129                 <&ispcrg 13>,
130                 <&ispcrg 2>,
131                 <&ispcrg 12>,
132                 <&ispcrg 1>,
133                 <&syscrg 51>,
134                 <&syscrg 52>;
135        clock-names = "apb_func",
136                      "wrapper_clk_c",
137                      "dvp_inv",
138                      "axiwr",
139                      "mipi_rx0_pxl",
140                      "ispcore_2x",
141                      "isp_axi";
142        resets = <&ispcrg 0>,
143                 <&ispcrg 1>,
144                 <&ispcrg 10>,
145                 <&ispcrg 11>,
146                 <&syscrg 41>,
147                 <&syscrg 42>;
148        reset-names = "wrapper_p",
149                      "wrapper_c",
150                      "axird",
151                      "axiwr",
152                      "isp_top_n",
153                      "isp_top_axi";
154        power-domains = <&pwrc 5>;
155        interrupts = <92>, <87>, <88>, <90>;
156
157        ports {
158            #address-cells = <1>;
159            #size-cells = <0>;
160            port@0 {
161                reg = <0>;
162                vin_from_sc2235: endpoint {
163                    remote-endpoint = <&sc2235_to_vin>;
164                    bus-type = <5>;
165                    bus-width = <8>;
166                    data-shift = <2>;
167                    hsync-active = <1>;
168                    vsync-active = <0>;
169                    pclk-sample = <1>;
170                };
171            };
172
173            port@1 {
174                reg = <1>;
175                vin_from_csi2rx: endpoint {
176                    remote-endpoint = <&csi2rx_to_vin>;
177                };
178            };
179        };
180    };
181