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