Documentation / devicetree / bindings / media / starfive,jh7110-camss.yaml


Based on kernel version 6.11. Page generated on 2024-09-24 08:21 EST.

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 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180
# 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 <jack.zhu@starfivetech.com>
  - Changhuang Liang <changhuang.liang@starfivetech.com>

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>;
                };
            };
        };
    };