1*4882a593Smuzhiyun// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*4882a593Smuzhiyun/* 3*4882a593Smuzhiyun * Copyright (c) 2022 Rockchip Electronics Co., Ltd. 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun */ 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun#include <dt-bindings/display/drm_mipi_dsi.h> 8*4882a593Smuzhiyun#include "rk3399-vop-clk-set.dtsi" 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun/ { 11*4882a593Smuzhiyun compatible = "rockchip,linux", "rockchip,rk3399"; 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun aliases { 14*4882a593Smuzhiyun mmc0 = &sdhci; 15*4882a593Smuzhiyun mmc1 = &sdmmc; 16*4882a593Smuzhiyun mmc2 = &sdio0; 17*4882a593Smuzhiyun }; 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun chosen { 20*4882a593Smuzhiyun bootargs = "earlycon=uart8250,mmio32,0xff1a0000 console=ttyFIQ0 rw root=PARTUUID=614e0000-0000 rootfstype=ext4 rootwait coherent_pool=1m"; 21*4882a593Smuzhiyun }; 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun reserved-memory { 24*4882a593Smuzhiyun #address-cells = <2>; 25*4882a593Smuzhiyun #size-cells = <2>; 26*4882a593Smuzhiyun ranges; 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun drm_logo: drm-logo@00000000 { 29*4882a593Smuzhiyun compatible = "rockchip,drm-logo"; 30*4882a593Smuzhiyun reg = <0x0 0x0 0x0 0x0>; 31*4882a593Smuzhiyun }; 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun ramoops_mem: region@110000 { 34*4882a593Smuzhiyun reg = <0x0 0x110000 0x0 0xf0000>; 35*4882a593Smuzhiyun reg-names = "ramoops_mem"; 36*4882a593Smuzhiyun }; 37*4882a593Smuzhiyun }; 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun ramoops: ramoops { 40*4882a593Smuzhiyun compatible = "ramoops"; 41*4882a593Smuzhiyun record-size = <0x0 0x40000>; 42*4882a593Smuzhiyun console-size = <0x0 0x80000>; 43*4882a593Smuzhiyun ftrace-size = <0x0 0x00000>; 44*4882a593Smuzhiyun pmsg-size = <0x0 0x00000>; 45*4882a593Smuzhiyun memory-region = <&ramoops_mem>; 46*4882a593Smuzhiyun }; 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun fiq_debugger: fiq-debugger { 49*4882a593Smuzhiyun compatible = "rockchip,fiq-debugger"; 50*4882a593Smuzhiyun rockchip,serial-id = <2>; 51*4882a593Smuzhiyun rockchip,wake-irq = <0>; 52*4882a593Smuzhiyun rockchip,irq-mode-enable = <1>; /* If enable uart uses irq instead of fiq */ 53*4882a593Smuzhiyun rockchip,baudrate = <1500000>; /* Only 115200 and 1500000 */ 54*4882a593Smuzhiyun interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH 0>; 55*4882a593Smuzhiyun pinctrl-names = "default"; 56*4882a593Smuzhiyun pinctrl-0 = <&uart2c_xfer>; 57*4882a593Smuzhiyun }; 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun cif_isp0: cif_isp@ff910000 { 60*4882a593Smuzhiyun compatible = "rockchip,rk3399-cif-isp"; 61*4882a593Smuzhiyun rockchip,grf = <&grf>; 62*4882a593Smuzhiyun reg = <0x0 0xff910000 0x0 0x4000>, <0x0 0xff968000 0x0 0x8000>; 63*4882a593Smuzhiyun reg-names = "register", "dsihost-register"; 64*4882a593Smuzhiyun clocks = 65*4882a593Smuzhiyun <&cru ACLK_ISP0_NOC>, <&cru ACLK_ISP0_WRAPPER>, 66*4882a593Smuzhiyun <&cru HCLK_ISP0_NOC>, <&cru HCLK_ISP0_WRAPPER>, 67*4882a593Smuzhiyun <&cru SCLK_ISP0>, <&cru SCLK_DPHY_RX0_CFG>, 68*4882a593Smuzhiyun <&cru SCLK_CIF_OUT>, <&cru SCLK_CIF_OUT>, 69*4882a593Smuzhiyun <&cru SCLK_MIPIDPHY_REF>; 70*4882a593Smuzhiyun clock-names = 71*4882a593Smuzhiyun "aclk_isp0_noc", "aclk_isp0_wrapper", 72*4882a593Smuzhiyun "hclk_isp0_noc", "hclk_isp0_wrapper", 73*4882a593Smuzhiyun "clk_isp0", "pclk_dphyrx", 74*4882a593Smuzhiyun "clk_cif_out", "clk_cif_pll", 75*4882a593Smuzhiyun "pclk_dphy_ref"; 76*4882a593Smuzhiyun interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH 0>; 77*4882a593Smuzhiyun interrupt-names = "cif_isp10_irq"; 78*4882a593Smuzhiyun power-domains = <&power RK3399_PD_ISP0>; 79*4882a593Smuzhiyun rockchip,isp,iommu-enable = <1>; 80*4882a593Smuzhiyun iommus = <&isp0_mmu>; 81*4882a593Smuzhiyun status = "disabled"; 82*4882a593Smuzhiyun }; 83*4882a593Smuzhiyun 84*4882a593Smuzhiyun cif_isp1: cif_isp@ff920000 { 85*4882a593Smuzhiyun compatible = "rockchip,rk3399-cif-isp"; 86*4882a593Smuzhiyun rockchip,grf = <&grf>; 87*4882a593Smuzhiyun reg = <0x0 0xff920000 0x0 0x4000>, <0x0 0xff968000 0x0 0x8000>; 88*4882a593Smuzhiyun reg-names = "register", "dsihost-register"; 89*4882a593Smuzhiyun clocks = 90*4882a593Smuzhiyun <&cru ACLK_ISP1_NOC>, <&cru ACLK_ISP1_WRAPPER>, 91*4882a593Smuzhiyun <&cru HCLK_ISP1_NOC>, <&cru HCLK_ISP1_WRAPPER>, 92*4882a593Smuzhiyun <&cru SCLK_ISP1>, <&cru PCLK_ISP1_WRAPPER>, 93*4882a593Smuzhiyun <&cru SCLK_DPHY_TX1RX1_CFG>, 94*4882a593Smuzhiyun <&cru PCLK_MIPI_DSI1>, <&cru SCLK_MIPIDPHY_CFG>, 95*4882a593Smuzhiyun <&cru SCLK_CIF_OUT>, <&cru SCLK_CIF_OUT>, 96*4882a593Smuzhiyun <&cru SCLK_MIPIDPHY_REF>; 97*4882a593Smuzhiyun clock-names = 98*4882a593Smuzhiyun "aclk_isp1_noc", "aclk_isp1_wrapper", 99*4882a593Smuzhiyun "hclk_isp1_noc", "hclk_isp1_wrapper", 100*4882a593Smuzhiyun "clk_isp1", "pclkin_isp1", 101*4882a593Smuzhiyun "pclk_dphytxrx", 102*4882a593Smuzhiyun "pclk_mipi_dsi","mipi_dphy_cfg", 103*4882a593Smuzhiyun "clk_cif_out", "clk_cif_pll", 104*4882a593Smuzhiyun "pclk_dphy_ref"; 105*4882a593Smuzhiyun interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH 0>; 106*4882a593Smuzhiyun interrupt-names = "cif_isp10_irq"; 107*4882a593Smuzhiyun power-domains = <&power RK3399_PD_ISP1>; 108*4882a593Smuzhiyun rockchip,isp,iommu-enable = <1>; 109*4882a593Smuzhiyun iommus = <&isp1_mmu>; 110*4882a593Smuzhiyun status = "disabled"; 111*4882a593Smuzhiyun }; 112*4882a593Smuzhiyun 113*4882a593Smuzhiyun rga: rga@ff680000 { 114*4882a593Smuzhiyun compatible = "rockchip,rga2"; 115*4882a593Smuzhiyun dev_mode = <1>; 116*4882a593Smuzhiyun reg = <0x0 0xff680000 0x0 0x1000>; 117*4882a593Smuzhiyun interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH 0>; 118*4882a593Smuzhiyun clocks = <&cru ACLK_RGA>, <&cru HCLK_RGA>, <&cru SCLK_RGA_CORE>; 119*4882a593Smuzhiyun clock-names = "aclk_rga", "hclk_rga", "clk_rga"; 120*4882a593Smuzhiyun power-domains = <&power RK3399_PD_RGA>; 121*4882a593Smuzhiyun status = "okay"; 122*4882a593Smuzhiyun }; 123*4882a593Smuzhiyun}; 124*4882a593Smuzhiyun 125*4882a593Smuzhiyun&display_subsystem { 126*4882a593Smuzhiyun status = "disabled"; 127*4882a593Smuzhiyun 128*4882a593Smuzhiyun ports = <&vopb_out>, <&vopl_out>; 129*4882a593Smuzhiyun logo-memory-region = <&drm_logo>; 130*4882a593Smuzhiyun 131*4882a593Smuzhiyun route { 132*4882a593Smuzhiyun route_hdmi: route-hdmi { 133*4882a593Smuzhiyun status = "disabled"; 134*4882a593Smuzhiyun logo,uboot = "logo.bmp"; 135*4882a593Smuzhiyun logo,kernel = "logo_kernel.bmp"; 136*4882a593Smuzhiyun logo,mode = "center"; 137*4882a593Smuzhiyun charge_logo,mode = "center"; 138*4882a593Smuzhiyun connect = <&vopb_out_hdmi>; 139*4882a593Smuzhiyun }; 140*4882a593Smuzhiyun 141*4882a593Smuzhiyun route_dsi: route-dsi { 142*4882a593Smuzhiyun status = "disabled"; 143*4882a593Smuzhiyun logo,uboot = "logo.bmp"; 144*4882a593Smuzhiyun logo,kernel = "logo_kernel.bmp"; 145*4882a593Smuzhiyun logo,mode = "center"; 146*4882a593Smuzhiyun charge_logo,mode = "center"; 147*4882a593Smuzhiyun connect = <&vopl_out_dsi>; 148*4882a593Smuzhiyun }; 149*4882a593Smuzhiyun 150*4882a593Smuzhiyun route_edp: route-edp { 151*4882a593Smuzhiyun status = "disabled"; 152*4882a593Smuzhiyun logo,uboot = "logo.bmp"; 153*4882a593Smuzhiyun logo,kernel = "logo_kernel.bmp"; 154*4882a593Smuzhiyun logo,mode = "center"; 155*4882a593Smuzhiyun charge_logo,mode = "center"; 156*4882a593Smuzhiyun connect = <&vopl_out_edp>; 157*4882a593Smuzhiyun }; 158*4882a593Smuzhiyun }; 159*4882a593Smuzhiyun}; 160*4882a593Smuzhiyun 161*4882a593Smuzhiyun&edp { 162*4882a593Smuzhiyun /delete-property/pinctrl-names; 163*4882a593Smuzhiyun /delete-property/pinctrl-0; 164*4882a593Smuzhiyun}; 165*4882a593Smuzhiyun 166*4882a593Smuzhiyun&iep { 167*4882a593Smuzhiyun status = "okay"; 168*4882a593Smuzhiyun}; 169*4882a593Smuzhiyun 170*4882a593Smuzhiyun&iep_mmu { 171*4882a593Smuzhiyun status = "okay"; 172*4882a593Smuzhiyun}; 173*4882a593Smuzhiyun 174*4882a593Smuzhiyun&mpp_srv { 175*4882a593Smuzhiyun status = "okay"; 176*4882a593Smuzhiyun}; 177*4882a593Smuzhiyun 178*4882a593Smuzhiyun&pvtm { 179*4882a593Smuzhiyun status = "okay"; 180*4882a593Smuzhiyun}; 181*4882a593Smuzhiyun 182*4882a593Smuzhiyun&rkvdec { 183*4882a593Smuzhiyun status = "okay"; 184*4882a593Smuzhiyun /* 0 means ion, 1 means drm */ 185*4882a593Smuzhiyun //allocator = <0>; 186*4882a593Smuzhiyun}; 187*4882a593Smuzhiyun 188*4882a593Smuzhiyun&vdec_mmu { 189*4882a593Smuzhiyun status = "okay"; 190*4882a593Smuzhiyun}; 191*4882a593Smuzhiyun 192*4882a593Smuzhiyun&vdpu { 193*4882a593Smuzhiyun status = "okay"; 194*4882a593Smuzhiyun}; 195*4882a593Smuzhiyun 196*4882a593Smuzhiyun&vepu { 197*4882a593Smuzhiyun status = "okay"; 198*4882a593Smuzhiyun}; 199*4882a593Smuzhiyun 200*4882a593Smuzhiyun&vpu_mmu { 201*4882a593Smuzhiyun status = "okay"; 202*4882a593Smuzhiyun}; 203*4882a593Smuzhiyun 204*4882a593Smuzhiyun&uart2 { 205*4882a593Smuzhiyun status = "disabled"; 206*4882a593Smuzhiyun}; 207*4882a593Smuzhiyun 208*4882a593Smuzhiyun&pinctrl { 209*4882a593Smuzhiyun isp { 210*4882a593Smuzhiyun cif_clkout: cif-clkout { 211*4882a593Smuzhiyun rockchip,pins = 212*4882a593Smuzhiyun /* cif_clkout */ 213*4882a593Smuzhiyun <2 RK_PB3 3 &pcfg_pull_none>; 214*4882a593Smuzhiyun }; 215*4882a593Smuzhiyun 216*4882a593Smuzhiyun isp_dvp_d0d7: isp-dvp-d0d7 { 217*4882a593Smuzhiyun rockchip,pins = 218*4882a593Smuzhiyun <4 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>, 219*4882a593Smuzhiyun /* cif_clkout */ 220*4882a593Smuzhiyun <2 RK_PB3 3 &pcfg_pull_none>, 221*4882a593Smuzhiyun /* cif_data0 */ 222*4882a593Smuzhiyun <2 RK_PA0 3 &pcfg_pull_none>, 223*4882a593Smuzhiyun /* cif_data1 */ 224*4882a593Smuzhiyun <2 RK_PA1 3 &pcfg_pull_none>, 225*4882a593Smuzhiyun /* cif_data2 */ 226*4882a593Smuzhiyun <2 RK_PA2 3 &pcfg_pull_none>, 227*4882a593Smuzhiyun /* cif_data3 */ 228*4882a593Smuzhiyun <2 RK_PA3 3 &pcfg_pull_none>, 229*4882a593Smuzhiyun /* cif_data4 */ 230*4882a593Smuzhiyun <2 RK_PA4 3 &pcfg_pull_none>, 231*4882a593Smuzhiyun /* cif_data5 */ 232*4882a593Smuzhiyun <2 RK_PA5 3 &pcfg_pull_none>, 233*4882a593Smuzhiyun /* cif_data6 */ 234*4882a593Smuzhiyun <2 RK_PA6 3 &pcfg_pull_none>, 235*4882a593Smuzhiyun /* cif_data7 */ 236*4882a593Smuzhiyun <2 RK_PA7 3 &pcfg_pull_none>, 237*4882a593Smuzhiyun /* cif_sync */ 238*4882a593Smuzhiyun <2 RK_PB0 3 &pcfg_pull_none>, 239*4882a593Smuzhiyun /* cif_href */ 240*4882a593Smuzhiyun <2 RK_PB1 3 &pcfg_pull_none>, 241*4882a593Smuzhiyun /* cif_clkin */ 242*4882a593Smuzhiyun <2 RK_PB2 3 &pcfg_pull_none>; 243*4882a593Smuzhiyun }; 244*4882a593Smuzhiyun 245*4882a593Smuzhiyun isp_shutter: isp-shutter { 246*4882a593Smuzhiyun rockchip,pins = 247*4882a593Smuzhiyun /* SHUTTEREN */ 248*4882a593Smuzhiyun <1 RK_PA1 1 &pcfg_pull_none>, 249*4882a593Smuzhiyun /* SHUTTERTRIG */ 250*4882a593Smuzhiyun <1 RK_PA0 1 &pcfg_pull_none>; 251*4882a593Smuzhiyun }; 252*4882a593Smuzhiyun 253*4882a593Smuzhiyun isp_flash_trigger: isp-flash-trigger { 254*4882a593Smuzhiyun /* ISP_FLASHTRIGOU */ 255*4882a593Smuzhiyun rockchip,pins = <1 RK_PA3 1 &pcfg_pull_none>; 256*4882a593Smuzhiyun }; 257*4882a593Smuzhiyun 258*4882a593Smuzhiyun isp_flash_trigger_as_gpio: isp-flash-trigger-as-gpio { 259*4882a593Smuzhiyun /* ISP_FLASHTRIGOU */ 260*4882a593Smuzhiyun rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; 261*4882a593Smuzhiyun }; 262*4882a593Smuzhiyun }; 263*4882a593Smuzhiyun 264*4882a593Smuzhiyun cam_pins { 265*4882a593Smuzhiyun cam0_default_pins: cam0-default-pins { 266*4882a593Smuzhiyun rockchip,pins = 267*4882a593Smuzhiyun <4 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>, 268*4882a593Smuzhiyun <2 RK_PB3 3 &pcfg_pull_none>; 269*4882a593Smuzhiyun }; 270*4882a593Smuzhiyun cam0_sleep_pins: cam0-sleep-pins { 271*4882a593Smuzhiyun rockchip,pins = 272*4882a593Smuzhiyun <4 RK_PD3 3 &pcfg_pull_none>, 273*4882a593Smuzhiyun <2 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; 274*4882a593Smuzhiyun }; 275*4882a593Smuzhiyun }; 276*4882a593Smuzhiyun}; 277