1# SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/media/rockchip-isp1.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Rockchip SoC Image Signal Processing unit v1 8 9maintainers: 10 - Helen Koike <helen.koike@collabora.com> 11 12description: | 13 Rockchip ISP1 is the Camera interface for the Rockchip series of SoCs 14 which contains image processing, scaling, and compression functions. 15 16properties: 17 compatible: 18 enum: 19 - rockchip,px30-cif-isp 20 - rockchip,rk3399-cif-isp 21 22 reg: 23 maxItems: 1 24 25 interrupts: 26 minItems: 1 27 maxItems: 3 28 29 interrupt-names: 30 items: 31 - const: isp 32 - const: mi 33 - const: mipi 34 35 clocks: 36 minItems: 3 37 items: 38 # isp0 and isp1 39 - description: ISP clock 40 - description: ISP AXI clock 41 - description: ISP AHB clock 42 # only for isp1 43 - description: ISP Pixel clock 44 45 clock-names: 46 minItems: 3 47 items: 48 # isp0 and isp1 49 - const: isp 50 - const: aclk 51 - const: hclk 52 # only for isp1 53 - const: pclk 54 55 iommus: 56 maxItems: 1 57 58 phys: 59 maxItems: 1 60 description: phandle for the PHY port 61 62 phy-names: 63 const: dphy 64 65 power-domains: 66 maxItems: 1 67 68 ports: 69 $ref: /schemas/graph.yaml#/properties/ports 70 71 properties: 72 port@0: 73 $ref: /schemas/graph.yaml#/$defs/port-base 74 unevaluatedProperties: false 75 description: connection point for sensors at MIPI-DPHY RX0 76 77 properties: 78 endpoint: 79 $ref: video-interfaces.yaml# 80 unevaluatedProperties: false 81 82 properties: 83 data-lanes: 84 minItems: 1 85 maxItems: 4 86 87 port@1: 88 $ref: /schemas/graph.yaml#/$defs/port-base 89 unevaluatedProperties: false 90 description: connection point for input on the parallel interface 91 92 properties: 93 bus-type: 94 enum: [5, 6] 95 96 endpoint: 97 $ref: video-interfaces.yaml# 98 unevaluatedProperties: false 99 100 required: 101 - bus-type 102 103 anyOf: 104 - required: 105 - port@0 106 - required: 107 - port@1 108 109required: 110 - compatible 111 - reg 112 - interrupts 113 - clocks 114 - clock-names 115 - iommus 116 - phys 117 - phy-names 118 - power-domains 119 - ports 120 121allOf: 122 - if: 123 properties: 124 compatible: 125 contains: 126 const: rockchip,rk3399-cif-isp 127 then: 128 properties: 129 clocks: 130 minItems: 3 131 maxItems: 4 132 clock-names: 133 minItems: 3 134 maxItems: 4 135 136 - if: 137 properties: 138 compatible: 139 contains: 140 const: rockchip,px30-cif-isp 141 then: 142 required: 143 - interrupt-names 144 145additionalProperties: false 146 147examples: 148 - | 149 150 #include <dt-bindings/clock/rk3399-cru.h> 151 #include <dt-bindings/interrupt-controller/arm-gic.h> 152 #include <dt-bindings/power/rk3399-power.h> 153 154 parent0: parent { 155 #address-cells = <2>; 156 #size-cells = <2>; 157 158 isp0: isp0@ff910000 { 159 compatible = "rockchip,rk3399-cif-isp"; 160 reg = <0x0 0xff910000 0x0 0x4000>; 161 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH 0>; 162 clocks = <&cru SCLK_ISP0>, 163 <&cru ACLK_ISP0_WRAPPER>, 164 <&cru HCLK_ISP0_WRAPPER>; 165 clock-names = "isp", "aclk", "hclk"; 166 iommus = <&isp0_mmu>; 167 phys = <&dphy>; 168 phy-names = "dphy"; 169 power-domains = <&power RK3399_PD_ISP0>; 170 171 ports { 172 #address-cells = <1>; 173 #size-cells = <0>; 174 175 port@0 { 176 reg = <0>; 177 #address-cells = <1>; 178 #size-cells = <0>; 179 180 mipi_in_wcam: endpoint@0 { 181 reg = <0>; 182 remote-endpoint = <&wcam_out>; 183 data-lanes = <1 2>; 184 }; 185 186 mipi_in_ucam: endpoint@1 { 187 reg = <1>; 188 remote-endpoint = <&ucam_out>; 189 data-lanes = <1>; 190 }; 191 }; 192 }; 193 }; 194 195 i2c7: i2c { 196 #address-cells = <1>; 197 #size-cells = <0>; 198 199 wcam: camera@36 { 200 compatible = "ovti,ov5695"; 201 reg = <0x36>; 202 clocks = <&cru SCLK_TESTCLKOUT1>; 203 204 port { 205 wcam_out: endpoint { 206 remote-endpoint = <&mipi_in_wcam>; 207 data-lanes = <1 2>; 208 }; 209 }; 210 }; 211 212 ucam: camera@3c { 213 compatible = "ovti,ov2685"; 214 reg = <0x3c>; 215 216 clocks = <&cru SCLK_TESTCLKOUT1>; 217 clock-names = "xvclk"; 218 219 avdd-supply = <&pp2800_cam>; 220 dovdd-supply = <&pp1800>; 221 dvdd-supply = <&pp1800>; 222 223 port { 224 ucam_out: endpoint { 225 remote-endpoint = <&mipi_in_ucam>; 226 data-lanes = <1>; 227 }; 228 }; 229 }; 230 }; 231 }; 232 233 - | 234 235 #include <dt-bindings/interrupt-controller/arm-gic.h> 236 #include <dt-bindings/power/px30-power.h> 237 238 parent1: parent { 239 #address-cells = <2>; 240 #size-cells = <2>; 241 242 isp: isp@ff4a0000 { 243 compatible = "rockchip,px30-cif-isp"; 244 reg = <0x0 0xff4a0000 0x0 0x8000>; 245 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>, 246 <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>, 247 <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; 248 interrupt-names = "isp", "mi", "mipi"; 249 clocks = <&cru SCLK_ISP0>, 250 <&cru ACLK_ISP0_WRAPPER>, 251 <&cru HCLK_ISP0_WRAPPER>, 252 <&cru PCLK_ISP1_WRAPPER>; 253 clock-names = "isp", "aclk", "hclk", "pclk"; 254 iommus = <&isp_mmu>; 255 phys = <&csi_dphy>; 256 phy-names = "dphy"; 257 power-domains = <&power PX30_PD_VI>; 258 259 ports { 260 #address-cells = <1>; 261 #size-cells = <0>; 262 263 port@0 { 264 reg = <0>; 265 #address-cells = <1>; 266 #size-cells = <0>; 267 268 mipi_in_ucam1: endpoint@0 { 269 reg = <0>; 270 remote-endpoint = <&ucam1_out>; 271 data-lanes = <1 2>; 272 }; 273 }; 274 }; 275 }; 276 277 i2c2: i2c { 278 #address-cells = <1>; 279 #size-cells = <0>; 280 281 ov5695: camera@36 { 282 compatible = "ovti,ov5647"; 283 reg = <0x36>; 284 clocks = <&cru SCLK_CIF_OUT>; 285 286 port { 287 ucam1_out: endpoint { 288 remote-endpoint = <&mipi_in_ucam1>; 289 data-lanes = <1 2>; 290 }; 291 }; 292 }; 293 }; 294 }; 295