# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/starfive,jh7110-camss.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Starfive SoC CAMSS ISP
maintainers:
- Jack Zhu <[email protected]>
- Changhuang Liang <[email protected]>
description:
The Starfive CAMSS ISP is a Camera interface for Starfive JH7110 SoC. It
consists of a VIN controller (Video In Controller, a top-level control unit)
and an ISP.
properties:
compatible:
const: starfive,jh7110-camss
reg:
maxItems: 2
reg-names:
items:
- const: syscon
- const: isp
clocks:
maxItems: 7
clock-names:
items:
- const: apb_func
- const: wrapper_clk_c
- const: dvp_inv
- const: axiwr
- const: mipi_rx0_pxl
- const: ispcore_2x
- const: isp_axi
resets:
maxItems: 6
reset-names:
items:
- const: wrapper_p
- const: wrapper_c
- const: axird
- const: axiwr
- const: isp_top_n
- const: isp_top_axi
power-domains:
items:
- description: JH7110 ISP Power Domain Switch Controller.
interrupts:
maxItems: 4
ports:
$ref: /schemas/graph.yaml#/properties/ports
properties:
port@0:
$ref: /schemas/graph.yaml#/$defs/port-base
unevaluatedProperties: false
description: Input port for receiving DVP data.
properties:
endpoint:
$ref: video-interfaces.yaml#
unevaluatedProperties: false
properties:
bus-type:
enum: [5, 6]
bus-width:
enum: [8, 10, 12]
data-shift:
enum: [0, 2]
default: 0
hsync-active:
enum: [0, 1]
default: 1
vsync-active:
enum: [0, 1]
default: 1
required:
- bus-type
- bus-width
port@1:
$ref: /schemas/graph.yaml#/properties/port
description: Input port for receiving CSI data.
required:
- port@0
- port@1
required:
- compatible
- reg
- reg-names
- clocks
- clock-names
- resets
- reset-names
- power-domains
- interrupts
- ports
additionalProperties: false
examples:
- |
isp@19840000 {
compatible = "starfive,jh7110-camss";
reg = <0x19840000 0x10000>,
<0x19870000 0x30000>;
reg-names = "syscon", "isp";
clocks = <&ispcrg 0>,
<&ispcrg 13>,
<&ispcrg 2>,
<&ispcrg 12>,
<&ispcrg 1>,
<&syscrg 51>,
<&syscrg 52>;
clock-names = "apb_func",
"wrapper_clk_c",
"dvp_inv",
"axiwr",
"mipi_rx0_pxl",
"ispcore_2x",
"isp_axi";
resets = <&ispcrg 0>,
<&ispcrg 1>,
<&ispcrg 10>,
<&ispcrg 11>,
<&syscrg 41>,
<&syscrg 42>;
reset-names = "wrapper_p",
"wrapper_c",
"axird",
"axiwr",
"isp_top_n",
"isp_top_axi";
power-domains = <&pwrc 5>;
interrupts = <92>, <87>, <88>, <90>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
vin_from_sc2235: endpoint {
remote-endpoint = <&sc2235_to_vin>;
bus-type = <5>;
bus-width = <8>;
data-shift = <2>;
hsync-active = <1>;
vsync-active = <0>;
pclk-sample = <1>;
};
};
port@1 {
reg = <1>;
vin_from_csi2rx: endpoint {
remote-endpoint = <&csi2rx_to_vin>;
};
};
};
};