1*4882a593Smuzhiyun// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*4882a593Smuzhiyun/* 3*4882a593Smuzhiyun * Copyright (c) 2021 Rockchip Electronics Co., Ltd. 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun */ 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun&csi2_dcphy0 { 8*4882a593Smuzhiyun status = "okay"; 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun ports { 11*4882a593Smuzhiyun #address-cells = <1>; 12*4882a593Smuzhiyun #size-cells = <0>; 13*4882a593Smuzhiyun port@0 { 14*4882a593Smuzhiyun reg = <0>; 15*4882a593Smuzhiyun #address-cells = <1>; 16*4882a593Smuzhiyun #size-cells = <0>; 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun dp_mipi_in: endpoint@1 { 19*4882a593Smuzhiyun reg = <1>; 20*4882a593Smuzhiyun remote-endpoint = <<7911d_out>; 21*4882a593Smuzhiyun data-lanes = <1 2 3 4>; 22*4882a593Smuzhiyun }; 23*4882a593Smuzhiyun mipi_in_dcphy0: endpoint@2 { 24*4882a593Smuzhiyun reg = <2>; 25*4882a593Smuzhiyun remote-endpoint = <&ov50c40_out0>; 26*4882a593Smuzhiyun data-lanes = <1 2 3 4>; 27*4882a593Smuzhiyun }; 28*4882a593Smuzhiyun }; 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun port@1 { 31*4882a593Smuzhiyun reg = <1>; 32*4882a593Smuzhiyun #address-cells = <1>; 33*4882a593Smuzhiyun #size-cells = <0>; 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun csidcphy0_out: endpoint@0 { 36*4882a593Smuzhiyun reg = <0>; 37*4882a593Smuzhiyun remote-endpoint = <&mipi0_csi2_input>; 38*4882a593Smuzhiyun }; 39*4882a593Smuzhiyun }; 40*4882a593Smuzhiyun }; 41*4882a593Smuzhiyun}; 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun&csi2_dcphy1 { 44*4882a593Smuzhiyun status = "okay"; 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun ports { 47*4882a593Smuzhiyun #address-cells = <1>; 48*4882a593Smuzhiyun #size-cells = <0>; 49*4882a593Smuzhiyun port@0 { 50*4882a593Smuzhiyun reg = <0>; 51*4882a593Smuzhiyun #address-cells = <1>; 52*4882a593Smuzhiyun #size-cells = <0>; 53*4882a593Smuzhiyun 54*4882a593Smuzhiyun mipi_in_dcphy1: endpoint@1 { 55*4882a593Smuzhiyun reg = <1>; 56*4882a593Smuzhiyun remote-endpoint = <&ov50c40_out1>; 57*4882a593Smuzhiyun data-lanes = <1 2 3 4>; 58*4882a593Smuzhiyun }; 59*4882a593Smuzhiyun }; 60*4882a593Smuzhiyun port@1 { 61*4882a593Smuzhiyun reg = <1>; 62*4882a593Smuzhiyun #address-cells = <1>; 63*4882a593Smuzhiyun #size-cells = <0>; 64*4882a593Smuzhiyun 65*4882a593Smuzhiyun csidcphy1_out: endpoint@0 { 66*4882a593Smuzhiyun reg = <0>; 67*4882a593Smuzhiyun remote-endpoint = <&mipi1_csi2_input>; 68*4882a593Smuzhiyun }; 69*4882a593Smuzhiyun }; 70*4882a593Smuzhiyun }; 71*4882a593Smuzhiyun}; 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun&i2c6 { 74*4882a593Smuzhiyun status = "okay"; 75*4882a593Smuzhiyun pinctrl-names = "default"; 76*4882a593Smuzhiyun pinctrl-0 = <&i2c6m4_xfer>; 77*4882a593Smuzhiyun 78*4882a593Smuzhiyun aw8601: aw8601@c { 79*4882a593Smuzhiyun compatible = "awinic,aw8601"; 80*4882a593Smuzhiyun status = "okay"; 81*4882a593Smuzhiyun reg = <0x0c>; 82*4882a593Smuzhiyun rockchip,vcm-start-current = <56>; 83*4882a593Smuzhiyun rockchip,vcm-rated-current = <96>; 84*4882a593Smuzhiyun rockchip,vcm-step-mode = <4>; 85*4882a593Smuzhiyun rockchip,camera-module-index = <0>; 86*4882a593Smuzhiyun rockchip,camera-module-facing = "back"; 87*4882a593Smuzhiyun }; 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun lt7911d: lt7911d@2b { 90*4882a593Smuzhiyun compatible = "lontium,lt7911d"; 91*4882a593Smuzhiyun status = "okay"; 92*4882a593Smuzhiyun reg = <0x2b>; 93*4882a593Smuzhiyun clocks = <&cru CLK_MIPI_CAMARAOUT_M1>; 94*4882a593Smuzhiyun clock-names = "xvclk"; 95*4882a593Smuzhiyun interrupt-parent = <&gpio3>; 96*4882a593Smuzhiyun interrupts = <RK_PD4 IRQ_TYPE_EDGE_RISING>; 97*4882a593Smuzhiyun power-domains = <&power RK3588_PD_VI>; 98*4882a593Smuzhiyun pinctrl-names = "default"; 99*4882a593Smuzhiyun pinctrl-0 = <&mipim1_camera1_clk>; 100*4882a593Smuzhiyun reset-gpios = <&gpio3 RK_PC4 GPIO_ACTIVE_LOW>; 101*4882a593Smuzhiyun power-gpios = <&gpio1 RK_PA6 GPIO_ACTIVE_HIGH>; 102*4882a593Smuzhiyun // hpd-ctl-gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>; 103*4882a593Smuzhiyun // plugin-det-gpios = <&gpio0 RK_PD6 GPIO_ACTIVE_LOW>; 104*4882a593Smuzhiyun rockchip,camera-module-index = <0>; 105*4882a593Smuzhiyun rockchip,camera-module-facing = "back"; 106*4882a593Smuzhiyun rockchip,camera-module-name = "LT7911D"; 107*4882a593Smuzhiyun rockchip,camera-module-lens-name = "NC"; 108*4882a593Smuzhiyun port { 109*4882a593Smuzhiyun lt7911d_out: endpoint { 110*4882a593Smuzhiyun remote-endpoint = <&dp_mipi_in>; 111*4882a593Smuzhiyun data-lanes = <1 2 3 4>; 112*4882a593Smuzhiyun }; 113*4882a593Smuzhiyun }; 114*4882a593Smuzhiyun }; 115*4882a593Smuzhiyun 116*4882a593Smuzhiyun ov50c40: ov50c40@36 { 117*4882a593Smuzhiyun compatible = "ovti,ov50c40"; 118*4882a593Smuzhiyun status = "okay"; 119*4882a593Smuzhiyun reg = <0x36>; 120*4882a593Smuzhiyun clocks = <&cru CLK_MIPI_CAMARAOUT_M1>; 121*4882a593Smuzhiyun clock-names = "xvclk"; 122*4882a593Smuzhiyun power-domains = <&power RK3588_PD_VI>; 123*4882a593Smuzhiyun pinctrl-names = "default"; 124*4882a593Smuzhiyun pinctrl-0 = <&mipim1_camera1_clk>; 125*4882a593Smuzhiyun rockchip,grf = <&sys_grf>; 126*4882a593Smuzhiyun reset-gpios = <&gpio3 RK_PC4 GPIO_ACTIVE_LOW>; 127*4882a593Smuzhiyun pwdn-gpios = <&gpio3 RK_PD4 GPIO_ACTIVE_LOW>; 128*4882a593Smuzhiyun rockchip,camera-module-index = <0>; 129*4882a593Smuzhiyun rockchip,camera-module-facing = "back"; 130*4882a593Smuzhiyun rockchip,camera-module-name = "HZGA06"; 131*4882a593Smuzhiyun rockchip,camera-module-lens-name = "ZE0082C1"; 132*4882a593Smuzhiyun eeprom-ctrl = <&otp_eeprom>; 133*4882a593Smuzhiyun lens-focus = <&aw8601>; 134*4882a593Smuzhiyun port { 135*4882a593Smuzhiyun ov50c40_out0: endpoint { 136*4882a593Smuzhiyun remote-endpoint = <&mipi_in_dcphy0>; 137*4882a593Smuzhiyun data-lanes = <1 2 3 4>; 138*4882a593Smuzhiyun }; 139*4882a593Smuzhiyun }; 140*4882a593Smuzhiyun }; 141*4882a593Smuzhiyun 142*4882a593Smuzhiyun otp_eeprom: otp_eeprom@50 { 143*4882a593Smuzhiyun compatible = "rk,otp_eeprom"; 144*4882a593Smuzhiyun status = "okay"; 145*4882a593Smuzhiyun reg = <0x50>; 146*4882a593Smuzhiyun }; 147*4882a593Smuzhiyun}; 148*4882a593Smuzhiyun 149*4882a593Smuzhiyun&i2c7 { 150*4882a593Smuzhiyun status = "okay"; 151*4882a593Smuzhiyun pinctrl-names = "default"; 152*4882a593Smuzhiyun pinctrl-0 = <&i2c7m2_xfer>; 153*4882a593Smuzhiyun 154*4882a593Smuzhiyun aw8601b: aw8601b@c { 155*4882a593Smuzhiyun compatible = "awinic,aw8601"; 156*4882a593Smuzhiyun status = "okay"; 157*4882a593Smuzhiyun reg = <0x0c>; 158*4882a593Smuzhiyun rockchip,vcm-start-current = <56>; 159*4882a593Smuzhiyun rockchip,vcm-rated-current = <96>; 160*4882a593Smuzhiyun rockchip,vcm-step-mode = <4>; 161*4882a593Smuzhiyun rockchip,camera-module-index = <1>; 162*4882a593Smuzhiyun rockchip,camera-module-facing = "back"; 163*4882a593Smuzhiyun }; 164*4882a593Smuzhiyun 165*4882a593Smuzhiyun ov50c40b: ov50c40b@36 { 166*4882a593Smuzhiyun compatible = "ovti,ov50c40"; 167*4882a593Smuzhiyun status = "okay"; 168*4882a593Smuzhiyun reg = <0x36>; 169*4882a593Smuzhiyun clocks = <&cru CLK_MIPI_CAMARAOUT_M2>; 170*4882a593Smuzhiyun clock-names = "xvclk"; 171*4882a593Smuzhiyun power-domains = <&power RK3588_PD_VI>; 172*4882a593Smuzhiyun pinctrl-names = "default"; 173*4882a593Smuzhiyun pinctrl-0 = <&mipim1_camera2_clk>; 174*4882a593Smuzhiyun rockchip,grf = <&sys_grf>; 175*4882a593Smuzhiyun reset-gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_LOW>; 176*4882a593Smuzhiyun pwdn-gpios = <&gpio3 RK_PD5 GPIO_ACTIVE_LOW>; 177*4882a593Smuzhiyun rockchip,camera-module-index = <1>; 178*4882a593Smuzhiyun rockchip,camera-module-facing = "back"; 179*4882a593Smuzhiyun rockchip,camera-module-name = "HZGA06"; 180*4882a593Smuzhiyun rockchip,camera-module-lens-name = "ZE0082C1"; 181*4882a593Smuzhiyun eeprom-ctrl = <&otp_eeprom_b>; 182*4882a593Smuzhiyun lens-focus = <&aw8601b>; 183*4882a593Smuzhiyun port { 184*4882a593Smuzhiyun ov50c40_out1: endpoint { 185*4882a593Smuzhiyun remote-endpoint = <&mipi_in_dcphy1>; 186*4882a593Smuzhiyun data-lanes = <1 2 3 4>; 187*4882a593Smuzhiyun }; 188*4882a593Smuzhiyun }; 189*4882a593Smuzhiyun }; 190*4882a593Smuzhiyun 191*4882a593Smuzhiyun otp_eeprom_b: otp_eeprom_b@50 { 192*4882a593Smuzhiyun compatible = "rk,otp_eeprom"; 193*4882a593Smuzhiyun status = "okay"; 194*4882a593Smuzhiyun reg = <0x50>; 195*4882a593Smuzhiyun }; 196*4882a593Smuzhiyun}; 197*4882a593Smuzhiyun 198*4882a593Smuzhiyun&mipi_dcphy0 { 199*4882a593Smuzhiyun status = "okay"; 200*4882a593Smuzhiyun}; 201*4882a593Smuzhiyun 202*4882a593Smuzhiyun&mipi_dcphy1 { 203*4882a593Smuzhiyun status = "okay"; 204*4882a593Smuzhiyun}; 205*4882a593Smuzhiyun 206*4882a593Smuzhiyun&mipi0_csi2 { 207*4882a593Smuzhiyun status = "okay"; 208*4882a593Smuzhiyun 209*4882a593Smuzhiyun ports { 210*4882a593Smuzhiyun #address-cells = <1>; 211*4882a593Smuzhiyun #size-cells = <0>; 212*4882a593Smuzhiyun 213*4882a593Smuzhiyun port@0 { 214*4882a593Smuzhiyun reg = <0>; 215*4882a593Smuzhiyun #address-cells = <1>; 216*4882a593Smuzhiyun #size-cells = <0>; 217*4882a593Smuzhiyun 218*4882a593Smuzhiyun mipi0_csi2_input: endpoint@1 { 219*4882a593Smuzhiyun reg = <1>; 220*4882a593Smuzhiyun remote-endpoint = <&csidcphy0_out>; 221*4882a593Smuzhiyun }; 222*4882a593Smuzhiyun }; 223*4882a593Smuzhiyun 224*4882a593Smuzhiyun port@1 { 225*4882a593Smuzhiyun reg = <1>; 226*4882a593Smuzhiyun #address-cells = <1>; 227*4882a593Smuzhiyun #size-cells = <0>; 228*4882a593Smuzhiyun 229*4882a593Smuzhiyun mipi0_csi2_output: endpoint@0 { 230*4882a593Smuzhiyun reg = <0>; 231*4882a593Smuzhiyun remote-endpoint = <&cif_mipi_in0>; 232*4882a593Smuzhiyun }; 233*4882a593Smuzhiyun }; 234*4882a593Smuzhiyun }; 235*4882a593Smuzhiyun}; 236*4882a593Smuzhiyun 237*4882a593Smuzhiyun&mipi1_csi2 { 238*4882a593Smuzhiyun status = "okay"; 239*4882a593Smuzhiyun 240*4882a593Smuzhiyun ports { 241*4882a593Smuzhiyun #address-cells = <1>; 242*4882a593Smuzhiyun #size-cells = <0>; 243*4882a593Smuzhiyun 244*4882a593Smuzhiyun port@0 { 245*4882a593Smuzhiyun reg = <0>; 246*4882a593Smuzhiyun #address-cells = <1>; 247*4882a593Smuzhiyun #size-cells = <0>; 248*4882a593Smuzhiyun 249*4882a593Smuzhiyun mipi1_csi2_input: endpoint@1 { 250*4882a593Smuzhiyun reg = <1>; 251*4882a593Smuzhiyun remote-endpoint = <&csidcphy1_out>; 252*4882a593Smuzhiyun }; 253*4882a593Smuzhiyun }; 254*4882a593Smuzhiyun 255*4882a593Smuzhiyun port@1 { 256*4882a593Smuzhiyun reg = <1>; 257*4882a593Smuzhiyun #address-cells = <1>; 258*4882a593Smuzhiyun #size-cells = <0>; 259*4882a593Smuzhiyun 260*4882a593Smuzhiyun mipi1_csi2_output: endpoint@0 { 261*4882a593Smuzhiyun reg = <0>; 262*4882a593Smuzhiyun remote-endpoint = <&cif_mipi_in1>; 263*4882a593Smuzhiyun }; 264*4882a593Smuzhiyun }; 265*4882a593Smuzhiyun }; 266*4882a593Smuzhiyun}; 267*4882a593Smuzhiyun 268*4882a593Smuzhiyun&rkcif { 269*4882a593Smuzhiyun status = "okay"; 270*4882a593Smuzhiyun}; 271*4882a593Smuzhiyun 272*4882a593Smuzhiyun&rkcif_mipi_lvds { 273*4882a593Smuzhiyun status = "okay"; 274*4882a593Smuzhiyun 275*4882a593Smuzhiyun port { 276*4882a593Smuzhiyun cif_mipi_in0: endpoint { 277*4882a593Smuzhiyun remote-endpoint = <&mipi0_csi2_output>; 278*4882a593Smuzhiyun }; 279*4882a593Smuzhiyun }; 280*4882a593Smuzhiyun}; 281*4882a593Smuzhiyun 282*4882a593Smuzhiyun&rkcif_mipi_lvds_sditf { 283*4882a593Smuzhiyun status = "okay"; 284*4882a593Smuzhiyun 285*4882a593Smuzhiyun port { 286*4882a593Smuzhiyun mipi_lvds_sditf: endpoint { 287*4882a593Smuzhiyun remote-endpoint = <&isp1_in1>; 288*4882a593Smuzhiyun }; 289*4882a593Smuzhiyun }; 290*4882a593Smuzhiyun}; 291*4882a593Smuzhiyun 292*4882a593Smuzhiyun&rkcif_mipi_lvds1 { 293*4882a593Smuzhiyun status = "okay"; 294*4882a593Smuzhiyun 295*4882a593Smuzhiyun port { 296*4882a593Smuzhiyun cif_mipi_in1: endpoint { 297*4882a593Smuzhiyun remote-endpoint = <&mipi1_csi2_output>; 298*4882a593Smuzhiyun }; 299*4882a593Smuzhiyun }; 300*4882a593Smuzhiyun}; 301*4882a593Smuzhiyun 302*4882a593Smuzhiyun&rkcif_mipi_lvds1_sditf { 303*4882a593Smuzhiyun status = "okay"; 304*4882a593Smuzhiyun 305*4882a593Smuzhiyun port { 306*4882a593Smuzhiyun mipi1_lvds_sditf: endpoint { 307*4882a593Smuzhiyun remote-endpoint = <&isp1_in2>; 308*4882a593Smuzhiyun }; 309*4882a593Smuzhiyun }; 310*4882a593Smuzhiyun}; 311*4882a593Smuzhiyun 312*4882a593Smuzhiyun&rkcif_mmu { 313*4882a593Smuzhiyun status = "okay"; 314*4882a593Smuzhiyun}; 315*4882a593Smuzhiyun 316*4882a593Smuzhiyun&rkisp_unite { 317*4882a593Smuzhiyun status = "okay"; 318*4882a593Smuzhiyun 319*4882a593Smuzhiyun}; 320*4882a593Smuzhiyun 321*4882a593Smuzhiyun&rkisp_unite_mmu { 322*4882a593Smuzhiyun status = "okay"; 323*4882a593Smuzhiyun}; 324*4882a593Smuzhiyun 325*4882a593Smuzhiyun&rkisp0_vir0 { 326*4882a593Smuzhiyun status = "okay"; 327*4882a593Smuzhiyun /* 328*4882a593Smuzhiyun * dual isp process image case 329*4882a593Smuzhiyun * other rkisp hw and virtual nodes should disabled 330*4882a593Smuzhiyun */ 331*4882a593Smuzhiyun rockchip,hw = <&rkisp_unite>; 332*4882a593Smuzhiyun port { 333*4882a593Smuzhiyun #address-cells = <1>; 334*4882a593Smuzhiyun #size-cells = <0>; 335*4882a593Smuzhiyun 336*4882a593Smuzhiyun isp1_in1: endpoint@0 { 337*4882a593Smuzhiyun reg = <0>; 338*4882a593Smuzhiyun remote-endpoint = <&mipi_lvds_sditf>; 339*4882a593Smuzhiyun }; 340*4882a593Smuzhiyun isp1_in2: endpoint@1 { 341*4882a593Smuzhiyun reg = <1>; 342*4882a593Smuzhiyun remote-endpoint = <&mipi1_lvds_sditf>; 343*4882a593Smuzhiyun }; 344*4882a593Smuzhiyun }; 345*4882a593Smuzhiyun}; 346