Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'v5.16-rockchip-dts64-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into arm/dt

This contains the parts that were originally meant for 5.15 + some
new thing:

New boards: Firefly roc-rk3399-pc-pls and rk3328-pc; Scarlet-Dumo
tablet variant; Rock Pi 4 A+, B+; Pine64 Quartz64-A (rk3566-based)

Big additions for the rk3568: tsadc; saradc; gpio-support; gmac 1+2;
watchdog; pmu; io-domains and enabling these new things on the
rk3568-evb.

Addition of the rk3566 - a variant of the rk3568 with slightly less
peripherals.

SFC (serial flash controller) for rk3308 and px30 (including the
Odroid Go2)

Support for the rk3399's second image signal processor and its coresight
component. And camera + vpu support on px30.

A number of smaller additions to multiple boards (Rock Pi 4, Pinebook Pro
and helios64, lion-haikou, Odroid-Go2) and cleanups in some parts.

* tag 'v5.16-rockchip-dts64-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: (65 commits)
arm64: dts: rockchip: add phandles to muxed i2c buses on rk3368-lion
arm64: dts: rockchip: define iodomains for rk3368-lion
arm64: dts: rockchip: fix LDO_REG4 / LDO_REG7 confusion on rk3368-lion
arm64: dts: rockchip: align operating-points table name with dtschema
arm64: dts: rockchip: hook up camera on px30-evb
arm64: dts: rockchip: add isp node for px30
arm64: dts: rockchip: add Coresight debug range for RK3399
arm64: dts: rockchip: Correct regulator for USB host on Odroid-Go2
arm64: dts: rockchip: fix PCI reg address warning on rk3399-gru
arm64: dts: rockchip: add saradc to rk3568-evb1-v10
arm64: dts: rockchip: Fix GPU register width for RK3328
arm64: dts: rockchip: Re-add interrupt-names for RK3399's vpu
arm64: dts: rockchip: add missing rockchip,grf property to rk356x
arm64: dts: rockchip: add RK3399 Gru gpio-line-names
arm64: dts: rockchip: Enable SFC for Odroid Go Advance
arm64: dts: rockchip: Add SFC to RK3308
arm64: dts: rockchip: Add SFC to PX30
arm64: dts: rockchip: add thermal support to Quartz64 Model A
arm64: dts: rockchip: add rk3568 tsadc nodes
arm64: dts: rockchip: add rk356x gpio debounce clocks
...

Link: https://lore.kernel.org/r/4439872.CQOukoFCf9@phil
Signed-off-by: Arnd Bergmann <arnd@arndb.de>

+3165 -621
+47 -1
Documentation/devicetree/bindings/arm/rockchip.yaml
··· 115 115 - const: firefly,roc-rk3328-cc 116 116 - const: rockchip,rk3328 117 117 118 + - description: Firefly ROC-RK3328-PC 119 + items: 120 + - const: firefly,roc-rk3328-pc 121 + - const: rockchip,rk3328 122 + 118 123 - description: Firefly ROC-RK3399-PC 119 124 items: 120 125 - enum: 121 126 - firefly,roc-rk3399-pc 122 127 - firefly,roc-rk3399-pc-mezzanine 128 + - const: rockchip,rk3399 129 + 130 + - description: Firefly ROC-RK3399-PC-PLUS 131 + items: 132 + - enum: 133 + - firefly,roc-rk3399-pc-plus 123 134 - const: rockchip,rk3399 124 135 125 136 - description: FriendlyElec NanoPi R2S ··· 297 286 - const: google,veyron-pinky 298 287 - const: google,veyron 299 288 - const: rockchip,rk3288 289 + 290 + - description: Google Scarlet - Dumo (ASUS Chromebook Tablet CT100) 291 + items: 292 + - const: google,scarlet-rev15-sku0 293 + - const: google,scarlet-rev15 294 + - const: google,scarlet-rev14-sku0 295 + - const: google,scarlet-rev14 296 + - const: google,scarlet-rev13-sku0 297 + - const: google,scarlet-rev13 298 + - const: google,scarlet-rev12-sku0 299 + - const: google,scarlet-rev12 300 + - const: google,scarlet-rev11-sku0 301 + - const: google,scarlet-rev11 302 + - const: google,scarlet-rev10-sku0 303 + - const: google,scarlet-rev10 304 + - const: google,scarlet-rev9-sku0 305 + - const: google,scarlet-rev9 306 + - const: google,scarlet-rev8-sku0 307 + - const: google,scarlet-rev8 308 + - const: google,scarlet-rev7-sku0 309 + - const: google,scarlet-rev7 310 + - const: google,scarlet-rev6-sku0 311 + - const: google,scarlet-rev6 312 + - const: google,scarlet-rev5-sku0 313 + - const: google,scarlet-rev5 314 + - const: google,scarlet 315 + - const: google,gru 316 + - const: rockchip,rk3399 300 317 301 318 - description: Google Scarlet - Kingdisplay (Acer Chromebook Tab 10) 302 319 items: ··· 494 455 - const: pine64,rockpro64 495 456 - const: rockchip,rk3399 496 457 458 + - description: Pine64 Quartz64 Model A 459 + items: 460 + - const: pine64,quartz64-a 461 + - const: rockchip,rk3566 462 + 497 463 - description: Radxa Rock 498 464 items: 499 465 - const: radxa,rock 500 466 - const: rockchip,rk3188 501 467 502 - - description: Radxa ROCK Pi 4A/B/C 468 + - description: Radxa ROCK Pi 4A/A+/B/B+/C 503 469 items: 504 470 - enum: 505 471 - radxa,rockpi4a 472 + - radxa,rockpi4a-plus 506 473 - radxa,rockpi4b 474 + - radxa,rockpi4b-plus 507 475 - radxa,rockpi4c 508 476 - const: radxa,rockpi4 509 477 - const: rockchip,rk3399
+2
Documentation/devicetree/bindings/arm/rockchip/pmu.yaml
··· 23 23 - rockchip,rk3066-pmu 24 24 - rockchip,rk3288-pmu 25 25 - rockchip,rk3399-pmu 26 + - rockchip,rk3568-pmu 26 27 27 28 required: 28 29 - compatible ··· 36 35 - rockchip,rk3066-pmu 37 36 - rockchip,rk3288-pmu 38 37 - rockchip,rk3399-pmu 38 + - rockchip,rk3568-pmu 39 39 - const: syscon 40 40 - const: simple-mfd 41 41
+6
arch/arm64/boot/dts/rockchip/Makefile
··· 13 13 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-rock64.dtb 14 14 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-rock-pi-e.dtb 15 15 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-roc-cc.dtb 16 + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-roc-pc.dtb 16 17 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-evb-act8846.dtb 17 18 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-geekbox.dtb 18 19 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-lion-haikou.dtb ··· 25 24 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-firefly.dtb 26 25 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-gru-bob.dtb 27 26 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-gru-kevin.dtb 27 + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-gru-scarlet-dumo.dtb 28 28 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-gru-scarlet-inx.dtb 29 29 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-gru-scarlet-kd.dtb 30 30 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-hugsun-x99.dtb ··· 44 42 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-puma-haikou.dtb 45 43 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-roc-pc.dtb 46 44 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-roc-pc-mezzanine.dtb 45 + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-roc-pc-plus.dtb 47 46 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-rock-pi-4a.dtb 47 + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-rock-pi-4a-plus.dtb 48 48 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-rock-pi-4b.dtb 49 + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-rock-pi-4b-plus.dtb 49 50 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-rock-pi-4c.dtb 50 51 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-rock960.dtb 51 52 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-rockpro64-v2.dtb ··· 56 51 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire.dtb 57 52 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire-excavator.dtb 58 53 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399pro-rock-pi-n10.dtb 54 + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-quartz64-a.dtb 59 55 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-evb1-v10.dtb
+52
arch/arm64/boot/dts/rockchip/px30-evb.dts
··· 114 114 cpu-supply = <&vdd_arm>; 115 115 }; 116 116 117 + &csi_dphy { 118 + status = "okay"; 119 + }; 120 + 117 121 &display_subsystem { 118 122 status = "okay"; 119 123 }; ··· 432 428 }; 433 429 }; 434 430 431 + &i2c2 { 432 + status = "okay"; 433 + 434 + clock-frequency = <100000>; 435 + 436 + /* These are relatively safe rise/fall times; TODO: measure */ 437 + i2c-scl-falling-time-ns = <50>; 438 + i2c-scl-rising-time-ns = <300>; 439 + 440 + ov5695: ov5695@36 { 441 + compatible = "ovti,ov5695"; 442 + reg = <0x36>; 443 + avdd-supply = <&vcc2v8_dvp>; 444 + clocks = <&cru SCLK_CIF_OUT>; 445 + clock-names = "xvclk"; 446 + dvdd-supply = <&vcc1v5_dvp>; 447 + dovdd-supply = <&vcc1v8_dvp>; 448 + pinctrl-names = "default"; 449 + pinctrl-0 = <&cif_clkout_m0>; 450 + reset-gpios = <&gpio2 14 GPIO_ACTIVE_LOW>; 451 + 452 + port { 453 + ucam_out: endpoint { 454 + remote-endpoint = <&mipi_in_ucam>; 455 + data-lanes = <1 2>; 456 + }; 457 + }; 458 + }; 459 + }; 460 + 435 461 &i2s1_2ch { 436 462 status = "okay"; 437 463 }; ··· 475 441 vccio4-supply = <&vcc3v0_pmu>; 476 442 vccio5-supply = <&vcc_3v0>; 477 443 vccio6-supply = <&vccio_flash>; 444 + }; 445 + 446 + &isp { 447 + status = "okay"; 448 + 449 + ports { 450 + port@0 { 451 + mipi_in_ucam: endpoint@0 { 452 + reg = <0>; 453 + data-lanes = <1 2>; 454 + remote-endpoint = <&ucam_out>; 455 + }; 456 + }; 457 + }; 458 + }; 459 + 460 + &isp_mmu { 461 + status = "okay"; 478 462 }; 479 463 480 464 &pinctrl {
+116 -2
arch/arm64/boot/dts/rockchip/px30.dtsi
··· 110 110 }; 111 111 }; 112 112 113 - cpu0_opp_table: cpu0-opp-table { 113 + cpu0_opp_table: opp-table-0 { 114 114 compatible = "operating-points-v2"; 115 115 opp-shared; 116 116 ··· 864 864 status = "disabled"; 865 865 }; 866 866 867 + csi_dphy: phy@ff2f0000 { 868 + compatible = "rockchip,px30-csi-dphy"; 869 + reg = <0x0 0xff2f0000 0x0 0x4000>; 870 + clocks = <&cru PCLK_MIPICSIPHY>; 871 + clock-names = "pclk"; 872 + #phy-cells = <0>; 873 + power-domains = <&power PX30_PD_VI>; 874 + resets = <&cru SRST_MIPICSIPHY_P>; 875 + reset-names = "apb"; 876 + rockchip,grf = <&grf>; 877 + status = "disabled"; 878 + }; 879 + 867 880 usb20_otg: usb@ff300000 { 868 881 compatible = "rockchip,px30-usb", "rockchip,rk3066-usb", 869 882 "snps,dwc2"; ··· 987 974 status = "disabled"; 988 975 }; 989 976 977 + sfc: spi@ff3a0000 { 978 + compatible = "rockchip,sfc"; 979 + reg = <0x0 0xff3a0000 0x0 0x4000>; 980 + interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>; 981 + clocks = <&cru SCLK_SFC>, <&cru HCLK_SFC>; 982 + clock-names = "clk_sfc", "hclk_sfc"; 983 + pinctrl-0 = <&sfc_clk &sfc_cs0 &sfc_bus4>; 984 + pinctrl-names = "default"; 985 + power-domains = <&power PX30_PD_MMC_NAND>; 986 + status = "disabled"; 987 + }; 988 + 990 989 nfc: nand-controller@ff3b0000 { 991 990 compatible = "rockchip,px30-nfc"; 992 991 reg = <0x0 0xff3b0000 0x0 0x4000>; ··· 1014 989 status = "disabled"; 1015 990 }; 1016 991 1017 - gpu_opp_table: opp-table2 { 992 + gpu_opp_table: opp-table-1 { 1018 993 compatible = "operating-points-v2"; 1019 994 1020 995 opp-200000000 { ··· 1047 1022 power-domains = <&power PX30_PD_GPU>; 1048 1023 operating-points-v2 = <&gpu_opp_table>; 1049 1024 status = "disabled"; 1025 + }; 1026 + 1027 + vpu: video-codec@ff442000 { 1028 + compatible = "rockchip,px30-vpu"; 1029 + reg = <0x0 0xff442000 0x0 0x800>; 1030 + interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>, 1031 + <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; 1032 + interrupt-names = "vepu", "vdpu"; 1033 + clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>; 1034 + clock-names = "aclk", "hclk"; 1035 + iommus = <&vpu_mmu>; 1036 + power-domains = <&power PX30_PD_VPU>; 1037 + }; 1038 + 1039 + vpu_mmu: iommu@ff442800 { 1040 + compatible = "rockchip,iommu"; 1041 + reg = <0x0 0xff442800 0x0 0x100>; 1042 + interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; 1043 + clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>; 1044 + clock-names = "aclk", "iface"; 1045 + #iommu-cells = <0>; 1046 + power-domains = <&power PX30_PD_VPU>; 1050 1047 }; 1051 1048 1052 1049 dsi: dsi@ff450000 { ··· 1187 1140 power-domains = <&power PX30_PD_VO>; 1188 1141 #iommu-cells = <0>; 1189 1142 status = "disabled"; 1143 + }; 1144 + 1145 + isp: isp@ff4a0000 { 1146 + compatible = "rockchip,px30-cif-isp"; /*rk3326-rkisp1*/ 1147 + reg = <0x0 0xff4a0000 0x0 0x8000>; 1148 + interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>, 1149 + <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>, 1150 + <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; 1151 + interrupt-names = "isp", "mi", "mipi"; 1152 + clocks = <&cru SCLK_ISP>, 1153 + <&cru ACLK_ISP>, 1154 + <&cru HCLK_ISP>, 1155 + <&cru PCLK_ISP>; 1156 + clock-names = "isp", "aclk", "hclk", "pclk"; 1157 + iommus = <&isp_mmu>; 1158 + phys = <&csi_dphy>; 1159 + phy-names = "dphy"; 1160 + power-domains = <&power PX30_PD_VI>; 1161 + status = "disabled"; 1162 + 1163 + ports { 1164 + #address-cells = <1>; 1165 + #size-cells = <0>; 1166 + 1167 + port@0 { 1168 + reg = <0>; 1169 + #address-cells = <1>; 1170 + #size-cells = <0>; 1171 + }; 1172 + }; 1173 + }; 1174 + 1175 + isp_mmu: iommu@ff4a8000 { 1176 + compatible = "rockchip,iommu"; 1177 + reg = <0x0 0xff4a8000 0x0 0x100>; 1178 + interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>; 1179 + clocks = <&cru ACLK_ISP>, <&cru HCLK_ISP>; 1180 + clock-names = "aclk", "iface"; 1181 + power-domains = <&power PX30_PD_VI>; 1182 + rockchip,disable-mmu-reset; 1183 + #iommu-cells = <0>; 1190 1184 }; 1191 1185 1192 1186 qos_gmac: qos@ff518000 { ··· 2058 1970 <1 RK_PA5 1 &pcfg_pull_up_12ma>, 2059 1971 <1 RK_PA6 1 &pcfg_pull_up_12ma>, 2060 1972 <1 RK_PA7 1 &pcfg_pull_up_12ma>; 1973 + }; 1974 + }; 1975 + 1976 + sfc { 1977 + sfc_bus4: sfc-bus4 { 1978 + rockchip,pins = 1979 + <1 RK_PA0 3 &pcfg_pull_none>, 1980 + <1 RK_PA1 3 &pcfg_pull_none>, 1981 + <1 RK_PA2 3 &pcfg_pull_none>, 1982 + <1 RK_PA3 3 &pcfg_pull_none>; 1983 + }; 1984 + 1985 + sfc_bus2: sfc-bus2 { 1986 + rockchip,pins = 1987 + <1 RK_PA0 3 &pcfg_pull_none>, 1988 + <1 RK_PA1 3 &pcfg_pull_none>; 1989 + }; 1990 + 1991 + sfc_cs0: sfc-cs0 { 1992 + rockchip,pins = 1993 + <1 RK_PA4 3 &pcfg_pull_none>; 1994 + }; 1995 + 1996 + sfc_clk: sfc-clk { 1997 + rockchip,pins = 1998 + <1 RK_PB1 3 &pcfg_pull_none>; 2061 1999 }; 2062 2000 }; 2063 2001
+38 -1
arch/arm64/boot/dts/rockchip/rk3308.dtsi
··· 99 99 }; 100 100 }; 101 101 102 - cpu0_opp_table: cpu0-opp-table { 102 + cpu0_opp_table: opp-table-0 { 103 103 compatible = "operating-points-v2"; 104 104 opp-shared; 105 105 ··· 731 731 status = "disabled"; 732 732 }; 733 733 734 + sfc: spi@ff4c0000 { 735 + compatible = "rockchip,sfc"; 736 + reg = <0x0 0xff4c0000 0x0 0x4000>; 737 + interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 738 + clocks = <&cru SCLK_SFC>, <&cru HCLK_SFC>; 739 + clock-names = "clk_sfc", "hclk_sfc"; 740 + pinctrl-0 = <&sfc_clk &sfc_cs0 &sfc_bus4>; 741 + pinctrl-names = "default"; 742 + status = "disabled"; 743 + }; 744 + 734 745 cru: clock-controller@ff500000 { 735 746 compatible = "rockchip,rk3308-cru"; 736 747 reg = <0x0 0xff500000 0x0 0x1000>; ··· 1012 1001 <3 RK_PA5 1 &pcfg_pull_up_12ma>, 1013 1002 <3 RK_PA6 1 &pcfg_pull_up_12ma>, 1014 1003 <3 RK_PA7 1 &pcfg_pull_up_12ma>; 1004 + }; 1005 + }; 1006 + 1007 + sfc { 1008 + sfc_bus4: sfc-bus4 { 1009 + rockchip,pins = 1010 + <3 RK_PA0 3 &pcfg_pull_none>, 1011 + <3 RK_PA1 3 &pcfg_pull_none>, 1012 + <3 RK_PA2 3 &pcfg_pull_none>, 1013 + <3 RK_PA3 3 &pcfg_pull_none>; 1014 + }; 1015 + 1016 + sfc_bus2: sfc-bus2 { 1017 + rockchip,pins = 1018 + <3 RK_PA0 3 &pcfg_pull_none>, 1019 + <3 RK_PA1 3 &pcfg_pull_none>; 1020 + }; 1021 + 1022 + sfc_cs0: sfc-cs0 { 1023 + rockchip,pins = 1024 + <3 RK_PA4 3 &pcfg_pull_none>; 1025 + }; 1026 + 1027 + sfc_clk: sfc-clk { 1028 + rockchip,pins = 1029 + <3 RK_PA5 3 &pcfg_pull_none>; 1015 1030 }; 1016 1031 }; 1017 1032
-3
arch/arm64/boot/dts/rockchip/rk3318-a95x-z2.dts
··· 185 185 assigned-clock-parents = <&cru SCLK_MAC2PHY_SRC>; 186 186 assigned-clock-rate = <50000000>; 187 187 assigned-clocks = <&cru SCLK_MAC2PHY>; 188 - clock_in_out = "output"; 189 188 status = "okay"; 190 189 }; 191 190 ··· 193 194 }; 194 195 195 196 &hdmi { 196 - ddc-i2c-scl-high-time-ns = <9625>; 197 - ddc-i2c-scl-low-time-ns = <10000>; 198 197 status = "okay"; 199 198 }; 200 199
+27 -1
arch/arm64/boot/dts/rockchip/rk3326-odroid-go2.dts
··· 207 207 gpio = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>; 208 208 enable-active-high; 209 209 regulator-always-on; 210 - vin-supply = <&vccsys>; 210 + regulator-boot-on; 211 + vin-supply = <&usb_midu>; 211 212 }; 212 213 }; 213 214 ··· 312 311 vcc5-supply = <&vccsys>; 313 312 vcc6-supply = <&vccsys>; 314 313 vcc7-supply = <&vccsys>; 314 + vcc8-supply = <&vccsys>; 315 315 316 316 regulators { 317 317 vdd_logic: DCDC_REG1 { ··· 462 460 regulator-suspend-microvolt = <3000000>; 463 461 }; 464 462 }; 463 + 464 + usb_midu: BOOST { 465 + regulator-name = "usb_midu"; 466 + regulator-min-microvolt = <5000000>; 467 + regulator-max-microvolt = <5400000>; 468 + regulator-always-on; 469 + regulator-boot-on; 470 + }; 465 471 }; 466 472 467 473 rk817_codec: codec { ··· 525 515 vmmc-supply = <&vcc_sd>; 526 516 vqmmc-supply = <&vccio_sd>; 527 517 status = "okay"; 518 + }; 519 + 520 + &sfc { 521 + pinctrl-0 = <&sfc_clk &sfc_cs0 &sfc_bus2>; 522 + pinctrl-names = "default"; 523 + #address-cells = <1>; 524 + #size-cells = <0>; 525 + status = "okay"; 526 + 527 + flash@0 { 528 + compatible = "jedec,spi-nor"; 529 + reg = <0>; 530 + spi-max-frequency = <108000000>; 531 + spi-rx-bus-width = <2>; 532 + spi-tx-bus-width = <1>; 533 + }; 528 534 }; 529 535 530 536 &tsadc {
+110
arch/arm64/boot/dts/rockchip/rk3328-roc-pc.dts
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 + // Copyright (c) 2021 T-Chip Intelligent Technology Co., Ltd 3 + 4 + /dts-v1/; 5 + 6 + #include <dt-bindings/input/input.h> 7 + 8 + #include "rk3328-roc-cc.dts" 9 + 10 + / { 11 + model = "Firefly ROC-RK3328-PC"; 12 + compatible = "firefly,roc-rk3328-pc", "rockchip,rk3328"; 13 + 14 + adc-keys { 15 + compatible = "adc-keys"; 16 + io-channels = <&saradc 0>; 17 + io-channel-names = "buttons"; 18 + keyup-threshold-microvolt = <1750000>; 19 + 20 + /* This button is unpopulated out of the factory. */ 21 + button-recovery { 22 + label = "Recovery"; 23 + linux,code = <KEY_VENDOR>; 24 + press-threshold-microvolt = <10000>; 25 + }; 26 + }; 27 + 28 + ir-receiver { 29 + compatible = "gpio-ir-receiver"; 30 + gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_LOW>; 31 + linux,rc-map-name = "rc-khadas"; 32 + pinctrl-names = "default"; 33 + pinctrl-0 = <&ir_int>; 34 + }; 35 + 36 + sdio_pwrseq: sdio-pwrseq { 37 + compatible = "mmc-pwrseq-simple"; 38 + pinctrl-names = "default"; 39 + pinctrl-0 = <&wifi_en>, <&wifi_host_wake>; 40 + reset-gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_LOW>; 41 + }; 42 + }; 43 + 44 + &codec { 45 + mute-gpios = <&grf_gpio 0 GPIO_ACTIVE_LOW>; 46 + }; 47 + 48 + &gpu { 49 + mali-supply = <&vdd_logic>; 50 + }; 51 + 52 + &pinctrl { 53 + ir { 54 + ir_int: ir-int { 55 + rockchip,pins = <2 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; 56 + }; 57 + }; 58 + 59 + sdmmcio { 60 + sdio_per_pin: sdio-per-pin { 61 + rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_down>; 62 + }; 63 + }; 64 + 65 + wifi { 66 + wifi_en: wifi-en { 67 + rockchip,pins = <3 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; 68 + }; 69 + 70 + wifi_host_wake: wifi-host-wake { 71 + rockchip,pins = <3 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none_4ma>; 72 + }; 73 + 74 + bt_rst: bt-rst { 75 + rockchip,pins = <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>; 76 + }; 77 + 78 + bt_en: bt-en { 79 + rockchip,pins = <1 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; 80 + }; 81 + }; 82 + }; 83 + 84 + &pmic_int_l { 85 + rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>; 86 + }; 87 + 88 + &rk805 { 89 + interrupt-parent = <&gpio0>; 90 + interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>; 91 + }; 92 + 93 + &saradc { 94 + vref-supply = <&vcc_18>; 95 + status = "okay"; 96 + }; 97 + 98 + &usb20_host_drv { 99 + rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>; 100 + }; 101 + 102 + &vcc_host1_5v { 103 + gpio = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>; 104 + }; 105 + 106 + &vcc_sdio { 107 + gpios = <&gpio0 RK_PD3 GPIO_ACTIVE_HIGH>; 108 + pinctrl-names = "default"; 109 + pinctrl-0 = <&sdio_per_pin>; 110 + };
+1 -1
arch/arm64/boot/dts/rockchip/rk3328-rock64.dts
··· 345 345 &spi0 { 346 346 status = "okay"; 347 347 348 - spiflash@0 { 348 + flash@0 { 349 349 compatible = "jedec,spi-nor"; 350 350 reg = <0>; 351 351
+2 -7
arch/arm64/boot/dts/rockchip/rk3328.dtsi
··· 105 105 }; 106 106 }; 107 107 108 - cpu0_opp_table: opp_table0 { 108 + cpu0_opp_table: opp-table-0 { 109 109 compatible = "operating-points-v2"; 110 110 opp-shared; 111 111 ··· 599 599 600 600 gpu: gpu@ff300000 { 601 601 compatible = "rockchip,rk3328-mali", "arm,mali-450"; 602 - reg = <0x0 0xff300000 0x0 0x40000>; 602 + reg = <0x0 0xff300000 0x0 0x30000>; 603 603 interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>, 604 604 <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>, 605 605 <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>, ··· 623 623 compatible = "rockchip,iommu"; 624 624 reg = <0x0 0xff330200 0 0x100>; 625 625 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; 626 - interrupt-names = "h265e_mmu"; 627 626 clocks = <&cru ACLK_H265>, <&cru PCLK_H265>; 628 627 clock-names = "aclk", "iface"; 629 628 #iommu-cells = <0>; ··· 633 634 compatible = "rockchip,iommu"; 634 635 reg = <0x0 0xff340800 0x0 0x40>; 635 636 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 636 - interrupt-names = "vepu_mmu"; 637 637 clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>; 638 638 clock-names = "aclk", "iface"; 639 639 #iommu-cells = <0>; ··· 654 656 compatible = "rockchip,iommu"; 655 657 reg = <0x0 0xff350800 0x0 0x40>; 656 658 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 657 - interrupt-names = "vpu_mmu"; 658 659 clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>; 659 660 clock-names = "aclk", "iface"; 660 661 #iommu-cells = <0>; ··· 664 667 compatible = "rockchip,iommu"; 665 668 reg = <0x0 0xff360480 0x0 0x40>, <0x0 0xff3604c0 0x0 0x40>; 666 669 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; 667 - interrupt-names = "rkvdec_mmu"; 668 670 clocks = <&cru ACLK_RKVDEC>, <&cru HCLK_RKVDEC>; 669 671 clock-names = "aclk", "iface"; 670 672 #iommu-cells = <0>; ··· 696 700 compatible = "rockchip,iommu"; 697 701 reg = <0x0 0xff373f00 0x0 0x100>; 698 702 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 699 - interrupt-names = "vop_mmu"; 700 703 clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>; 701 704 clock-names = "aclk", "iface"; 702 705 #iommu-cells = <0>;
+33 -14
arch/arm64/boot/dts/rockchip/rk3368-lion.dtsi
··· 29 29 i2c-parent = <&i2c1>; 30 30 mux-gpios = <&gpio1 RK_PA7 GPIO_ACTIVE_HIGH>; 31 31 32 - /* Q7_GPO_I2C */ 33 - i2c@0 { 32 + /* Q7_GP0_I2C */ 33 + i2c_gp0: i2c@0 { 34 34 reg = <0>; 35 35 #address-cells = <1>; 36 36 #size-cells = <0>; 37 37 }; 38 38 39 39 /* Q7_SMB */ 40 - i2c@1 { 40 + i2c_smb: i2c@1 { 41 41 reg = <1>; 42 42 #address-cells = <1>; 43 43 #size-cells = <0>; ··· 52 52 mux-gpios = <&gpio1 RK_PB4 GPIO_ACTIVE_HIGH>; 53 53 54 54 /* Q7_LVDS_BLC_I2C */ 55 - i2c@0 { 55 + i2c_lvds_blc: i2c@0 { 56 56 reg = <0>; 57 57 #address-cells = <1>; 58 58 #size-cells = <0>; ··· 69 69 }; 70 70 }; 71 71 72 - /* Q7_GP2_I2C */ 73 - i2c@1 { 72 + /* Q7_GP2_I2C = LVDS_DID_CLK/DAT */ 73 + i2c_gp2: i2c@1 { 74 74 reg = <1>; 75 75 #address-cells = <1>; 76 76 #size-cells = <0>; ··· 144 144 mmc-hs200-1_8v; 145 145 non-removable; 146 146 vmmc-supply = <&vcc33_io>; 147 - vqmmc-supply = <&vcc18_io>; 147 + vqmmc-supply = <&vcc_18>; 148 148 pinctrl-names = "default"; 149 149 pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_bus8>; 150 150 status = "okay"; ··· 238 238 regulator-boot-on; 239 239 }; 240 240 241 - vcc18_io: LDO_REG4 { 242 - regulator-name = "vcc18_io"; 243 - regulator-min-microvolt = <1800000>; 244 - regulator-max-microvolt = <1800000>; 245 - regulator-boot-on; 246 - }; 247 - 248 241 vdd10_video: LDO_REG6 { 249 242 regulator-name = "vdd10_video"; 250 243 regulator-min-microvolt = <1000000>; 251 244 regulator-max-microvolt = <1000000>; 252 245 regulator-always-on; 253 246 regulator-boot-on; 247 + }; 248 + 249 + vcc_18: LDO_REG7 { 250 + regulator-always-on; 251 + regulator-boot-on; 252 + regulator-min-microvolt = <1800000>; 253 + regulator-max-microvolt = <1800000>; 254 + regulator-name = "vcc_18"; 254 255 }; 255 256 256 257 vcc18_video: LDO_REG8 { ··· 273 272 status = "okay"; 274 273 }; 275 274 275 + /* The RK3368-uQ7 "Lion" has most IO voltages hardwired to 3.3V. */ 276 + &io_domains { 277 + audio-supply = <&vcc33_io>; 278 + dvp-supply = <&vcc33_io>; 279 + flash0-supply = <&vcc_18>; 280 + gpio30-supply = <&vcc33_io>; 281 + gpio1830-supply = <&vcc33_io>; 282 + sdcard-supply = <&vcc33_io>; 283 + wifi-supply = <&vcc33_io>; 284 + status = "okay"; 285 + }; 286 + 276 287 &pinctrl { 277 288 leds { 278 289 module_led_pins: module-led-pins { ··· 302 289 rockchip,pins = <0 RK_PA0 2 &pcfg_pull_none>; 303 290 }; 304 291 }; 292 + }; 293 + 294 + &pmu_io_domains { 295 + pmu-supply = <&vcc33_io>; 296 + vop-supply = <&vcc33_io>; 297 + status = "okay"; 305 298 }; 306 299 307 300 &spi1 {
-5
arch/arm64/boot/dts/rockchip/rk3368.dtsi
··· 709 709 compatible = "rockchip,iommu"; 710 710 reg = <0x0 0xff900800 0x0 0x100>; 711 711 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 712 - interrupt-names = "iep_mmu"; 713 712 clocks = <&cru ACLK_IEP>, <&cru HCLK_IEP>; 714 713 clock-names = "aclk", "iface"; 715 714 #iommu-cells = <0>; ··· 720 721 reg = <0x0 0xff914000 0x0 0x100>, 721 722 <0x0 0xff915000 0x0 0x100>; 722 723 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 723 - interrupt-names = "isp_mmu"; 724 724 clocks = <&cru ACLK_ISP>, <&cru HCLK_ISP>; 725 725 clock-names = "aclk", "iface"; 726 726 #iommu-cells = <0>; ··· 731 733 compatible = "rockchip,iommu"; 732 734 reg = <0x0 0xff930300 0x0 0x100>; 733 735 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; 734 - interrupt-names = "vop_mmu"; 735 736 clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>; 736 737 clock-names = "aclk", "iface"; 737 738 #iommu-cells = <0>; ··· 742 745 reg = <0x0 0xff9a0440 0x0 0x40>, 743 746 <0x0 0xff9a0480 0x0 0x40>; 744 747 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; 745 - interrupt-names = "hevc_mmu"; 746 748 clocks = <&cru ACLK_VIDEO>, <&cru HCLK_VIDEO>; 747 749 clock-names = "aclk", "iface"; 748 750 #iommu-cells = <0>; ··· 753 757 reg = <0x0 0xff9a0800 0x0 0x100>; 754 758 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>, 755 759 <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 756 - interrupt-names = "vepu_mmu", "vdpu_mmu"; 757 760 clocks = <&cru ACLK_VIDEO>, <&cru HCLK_VIDEO>; 758 761 clock-names = "aclk", "iface"; 759 762 #iommu-cells = <0>;
+176
arch/arm64/boot/dts/rockchip/rk3399-gru-chromebook.dtsi
··· 251 251 }; 252 252 }; 253 253 254 + &gpio0 { 255 + gpio-line-names = /* GPIO0 A 0-7 */ 256 + "AP_RTC_CLK_IN", 257 + "EC_AP_INT_L", 258 + "PP1800_AUDIO_EN", 259 + "BT_HOST_WAKE_L", 260 + "WLAN_MODULE_PD_L", 261 + "H1_INT_OD_L", 262 + "CENTERLOGIC_DVS_PWM", 263 + "", 264 + 265 + /* GPIO0 B 0-4 */ 266 + "WIFI_HOST_WAKE_L", 267 + "PMUIO2_33_18_L", 268 + "PP1500_EN", 269 + "AP_EC_WARM_RESET_REQ", 270 + "PP3000_EN"; 271 + }; 272 + 273 + &gpio1 { 274 + gpio-line-names = /* GPIO1 A 0-7 */ 275 + "", 276 + "", 277 + "SPK_PA_EN", 278 + "", 279 + "TRACKPAD_INT_L", 280 + "AP_EC_S3_S0_L", 281 + "AP_EC_OVERTEMP", 282 + "AP_SPI_FLASH_MISO", 283 + 284 + /* GPIO1 B 0-7 */ 285 + "AP_SPI_FLASH_MOSI_R", 286 + "AP_SPI_FLASH_CLK_R", 287 + "AP_SPI_FLASH_CS_L_R", 288 + "WLAN_MODULE_RESET_L", 289 + "WIFI_DISABLE_L", 290 + "MIC_INT", 291 + "", 292 + "AP_I2C_DVS_SDA", 293 + 294 + /* GPIO1 C 0-7 */ 295 + "AP_I2C_DVS_SCL", 296 + "AP_BL_EN", 297 + /* 298 + * AP_FLASH_WP is crossystem ABI. Schematics call it 299 + * AP_FW_WP or CPU1_FW_WP, depending on the variant. 300 + */ 301 + "AP_FLASH_WP", 302 + "LITCPU_DVS_PWM", 303 + "AP_I2C_AUDIO_SDA", 304 + "AP_I2C_AUDIO_SCL", 305 + "", 306 + "HEADSET_INT_L"; 307 + }; 308 + 309 + &gpio2 { 310 + gpio-line-names = /* GPIO2 A 0-7 */ 311 + "", 312 + "", 313 + "SD_IO_PWR_EN", 314 + "", 315 + "", 316 + "", 317 + "", 318 + "", 319 + 320 + /* GPIO2 B 0-7 */ 321 + "", 322 + "", 323 + "", 324 + "", 325 + "", 326 + "", 327 + "", 328 + "", 329 + 330 + /* GPIO2 C 0-7 */ 331 + "", 332 + "", 333 + "", 334 + "", 335 + "AP_SPI_EC_MISO", 336 + "AP_SPI_EC_MOSI", 337 + "AP_SPI_EC_CLK", 338 + "AP_SPI_EC_CS_L", 339 + 340 + /* GPIO2 D 0-4 */ 341 + "BT_DEV_WAKE_L", 342 + "", 343 + "WIFI_PCIE_CLKREQ_L", 344 + "WIFI_PERST_L", 345 + "SD_PWR_3000_1800_L"; 346 + }; 347 + 348 + &gpio3 { 349 + gpio-line-names = /* GPIO3 A 0-7 */ 350 + "", 351 + "", 352 + "", 353 + "", 354 + "AP_SPI_TPM_MISO", 355 + "AP_SPI_TPM_MOSI_R", 356 + "AP_SPI_TPM_CLK_R", 357 + "AP_SPI_TPM_CS_L_R", 358 + 359 + /* GPIO3 B 0-7 */ 360 + "EC_IN_RW", 361 + "", 362 + "AP_I2C_TP_SDA", 363 + "AP_I2C_TP_SCL", 364 + "AP_I2C_TP_PU_EN", 365 + "TOUCH_INT_L", 366 + "", 367 + "", 368 + 369 + /* GPIO3 C 0-7 */ 370 + "", 371 + "", 372 + "", 373 + "", 374 + "", 375 + "", 376 + "", 377 + "", 378 + 379 + /* GPIO3 D 0-7 */ 380 + "I2S0_SCLK", 381 + "I2S0_LRCK_RX", 382 + "I2S0_LRCK_TX", 383 + "I2S0_SDI_0", 384 + "I2S0_SDI_1", 385 + "", 386 + "I2S0_SDO_1", 387 + "I2S0_SDO_0"; 388 + }; 389 + 390 + &gpio4 { 391 + gpio-line-names = /* GPIO4 A 0-7 */ 392 + "I2S_MCLK", 393 + "AP_I2C_MIC_SDA", 394 + "AP_I2C_MIC_SCL", 395 + "", 396 + "", 397 + "", 398 + "", 399 + "", 400 + 401 + /* GPIO4 B 0-7 */ 402 + "", 403 + "", 404 + "", 405 + "", 406 + "", 407 + "", 408 + "", 409 + "", 410 + 411 + /* GPIO4 C 0-7 */ 412 + "AP_I2C_TS_SDA", 413 + "AP_I2C_TS_SCL", 414 + "GPU_DVS_PWM", 415 + "UART_DBG_TX_AP_RX", 416 + "UART_AP_TX_DBG_RX", 417 + "", 418 + "BIGCPU_DVS_PWM", 419 + "EDP_HPD_3V0", 420 + 421 + /* GPIO4 D 0-5 */ 422 + "SD_CARD_DET_L", 423 + "USB_DP_HPD", 424 + "TOUCH_RESET_L", 425 + "PP3300_DISP_EN", 426 + "", 427 + "SD_SLOT_PWR_EN"; 428 + }; 429 + 254 430 ap_i2c_mic: &i2c1 { 255 431 status = "okay"; 256 432
+41
arch/arm64/boot/dts/rockchip/rk3399-gru-scarlet-dumo.dts
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 + /* 3 + * Google Gru-Scarlet Rev5+ (SKU-0) board device tree source 4 + * 5 + * Copyright 2021 Google LLC. 6 + */ 7 + 8 + /dts-v1/; 9 + 10 + #include "rk3399-gru-scarlet.dtsi" 11 + 12 + / { 13 + model = "Google Scarlet"; 14 + compatible = "google,scarlet-rev15-sku0", "google,scarlet-rev15", 15 + "google,scarlet-rev14-sku0", "google,scarlet-rev14", 16 + "google,scarlet-rev13-sku0", "google,scarlet-rev13", 17 + "google,scarlet-rev12-sku0", "google,scarlet-rev12", 18 + "google,scarlet-rev11-sku0", "google,scarlet-rev11", 19 + "google,scarlet-rev10-sku0", "google,scarlet-rev10", 20 + "google,scarlet-rev9-sku0", "google,scarlet-rev9", 21 + "google,scarlet-rev8-sku0", "google,scarlet-rev8", 22 + "google,scarlet-rev7-sku0", "google,scarlet-rev7", 23 + "google,scarlet-rev6-sku0", "google,scarlet-rev6", 24 + "google,scarlet-rev5-sku0", "google,scarlet-rev5", 25 + "google,scarlet", "google,gru", "rockchip,rk3399"; 26 + }; 27 + 28 + &mipi_panel { 29 + compatible = "innolux,p097pfg"; 30 + avdd-supply = <&ppvarp_lcd>; 31 + avee-supply = <&ppvarn_lcd>; 32 + }; 33 + 34 + &pci_rootport { 35 + wifi@0,0 { 36 + compatible = "qcom,ath10k"; 37 + reg = <0x00010000 0x0 0x00000000 0x0 0x00000000>, 38 + <0x03010010 0x0 0x00000000 0x0 0x00200000>; 39 + qcom,ath10k-calibration-variant = "GO_DUMO"; 40 + }; 41 + };
+180
arch/arm64/boot/dts/rockchip/rk3399-gru-scarlet.dtsi
··· 389 389 <400000000>; 390 390 }; 391 391 392 + &gpio0 { 393 + gpio-line-names = /* GPIO0 A 0-7 */ 394 + "CLK_32K_AP", 395 + "EC_IN_RW_OD", 396 + "SPK_PA_EN", 397 + "WLAN_PERST_1V8_L", 398 + "WLAN_PD_1V8_L", 399 + "WLAN_RF_KILL_1V8_L", 400 + "BIGCPU_DVS_PWM", 401 + "SD_CD_L_JTAG_EN", 402 + 403 + /* GPIO0 B 0-5 */ 404 + "BT_EN_BT_RF_KILL_1V8_L", 405 + "PMUIO2_33_18_L_PP3300_S0_EN", 406 + "TOUCH_RESET_L", 407 + "AP_EC_WARM_RESET_REQ", 408 + "PEN_RESET_L", 409 + /* 410 + * AP_FLASH_WP_L is crossystem ABI. Schematics call 411 + * it AP_FLASH_WP_R_ODL. 412 + */ 413 + "AP_FLASH_WP_L"; 414 + }; 415 + 416 + &gpio1 { 417 + gpio-line-names = /* GPIO1 A 0-7 */ 418 + "PEN_INT_ODL", 419 + "PEN_EJECT_ODL", 420 + "BT_HOST_WAKE_1V8_L", 421 + "WLAN_HOST_WAKE_1V8_L", 422 + "TOUCH_INT_ODL", 423 + "AP_EC_S3_S0_L", 424 + "AP_EC_OVERTEMP", 425 + "AP_SPI_FLASH_MISO", 426 + 427 + /* GPIO1 B 0-7 */ 428 + "AP_SPI_FLASH_MOSI_R", 429 + "AP_SPI_FLASH_CLK_R", 430 + "AP_SPI_FLASH_CS_L_R", 431 + "SD_CARD_DET_ODL", 432 + "", 433 + "AP_EXPANSION_IO1", 434 + "AP_EXPANSION_IO2", 435 + "AP_I2C_DISP_SDA", 436 + 437 + /* GPIO1 C 0-7 */ 438 + "AP_I2C_DISP_SCL", 439 + "H1_INT_ODL", 440 + "EC_AP_INT_ODL", 441 + "LITCPU_DVS_PWM", 442 + "AP_I2C_AUDIO_SDA", 443 + "AP_I2C_AUDIO_SCL", 444 + "AP_EXPANSION_IO3", 445 + "HEADSET_INT_ODL", 446 + 447 + /* GPIO1 D0 */ 448 + "AP_EXPANSION_IO4"; 449 + }; 450 + 451 + &gpio2 { 452 + gpio-line-names = /* GPIO2 A 0-7 */ 453 + "AP_I2C_PEN_SDA", 454 + "AP_I2C_PEN_SCL", 455 + "SD_IO_PWR_EN", 456 + "UCAM_RST_L", 457 + "PP1250_CAM_EN", 458 + "WCAM_RST_L", 459 + "AP_EXPANSION_IO5", 460 + "AP_I2C_CAM_SDA", 461 + 462 + /* GPIO2 B 0-7 */ 463 + "AP_I2C_CAM_SCL", 464 + "AP_H1_SPI_MISO", 465 + "AP_H1_SPI_MOSI", 466 + "AP_H1_SPI_CLK", 467 + "AP_H1_SPI_CS_L", 468 + "", 469 + "", 470 + "", 471 + 472 + /* GPIO2 C 0-7 */ 473 + "UART_EXPANSION_TX_AP_RX", 474 + "UART_AP_TX_EXPANSION_RX", 475 + "UART_EXPANSION_RTS_AP_CTS", 476 + "UART_AP_RTS_EXPANSION_CTS", 477 + "AP_SPI_EC_MISO", 478 + "AP_SPI_EC_MOSI", 479 + "AP_SPI_EC_CLK", 480 + "AP_SPI_EC_CS_L", 481 + 482 + /* GPIO2 D 0-4 */ 483 + "PP2800_CAM_EN", 484 + "CLK_24M_CAM", 485 + "WLAN_PCIE_CLKREQ_1V8_L", 486 + "", 487 + "SD_PWR_3000_1800_L"; 488 + }; 489 + 490 + &gpio3 { 491 + gpio-line-names = /* GPIO3 A 0-7 */ 492 + "", 493 + "", 494 + "", 495 + "", 496 + "", 497 + "", 498 + "", 499 + "", 500 + 501 + /* GPIO3 B 0-7 */ 502 + "", 503 + "", 504 + "", 505 + "", 506 + "", 507 + "", 508 + "", 509 + "", 510 + 511 + /* GPIO3 C 0-7 */ 512 + "", 513 + "", 514 + "", 515 + "", 516 + "", 517 + "", 518 + "", 519 + "", 520 + 521 + /* GPIO3 D 0-7 */ 522 + "I2S0_SCLK", 523 + "I2S0_LRCK_RX", 524 + "I2S0_LRCK_TX", 525 + "I2S0_SDI_0", 526 + "STRAP_LCDBIAS_L", 527 + "STRAP_FEATURE_1", 528 + "STRAP_FEATURE_2", 529 + "I2S0_SDO_0"; 530 + }; 531 + 532 + &gpio4 { 533 + gpio-line-names = /* GPIO4 A 0-7 */ 534 + "I2S_MCLK", 535 + "AP_I2C_EXPANSION_SDA", 536 + "AP_I2C_EXPANSION_SCL", 537 + "DMIC_EN", 538 + "", 539 + "", 540 + "", 541 + "", 542 + 543 + /* GPIO4 B 0-7 */ 544 + "", 545 + "", 546 + "", 547 + "", 548 + "", 549 + "", 550 + "", 551 + "", 552 + 553 + /* GPIO4 C 0-7 */ 554 + "AP_I2C_TS_SDA", 555 + "AP_I2C_TS_SCL", 556 + "GPU_DVS_PWM", 557 + "UART_DBG_TX_AP_RX", 558 + "UART_AP_TX_DBG_RX", 559 + "BL_EN", 560 + "BL_PWM", 561 + "", 562 + 563 + /* GPIO4 D 0-5 */ 564 + "", 565 + "DISPLAY_RST_L", 566 + "", 567 + "PPVARP_LCD_EN", 568 + "PPVARN_LCD_EN", 569 + "SD_SLOT_PWR_EN"; 570 + }; 571 + 392 572 &i2c_tunnel { 393 573 google,remote-bus = <0>; 394 574 };
+2 -2
arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi
··· 461 461 vpcie0v9-supply = <&pp900_pcie>; 462 462 463 463 pci_rootport: pcie@0,0 { 464 - reg = <0x83000000 0x0 0x00000000 0x0 0x00000000>; 464 + reg = <0x0000 0 0 0 0>; 465 465 #address-cells = <3>; 466 466 #size-cells = <2>; 467 467 ranges; ··· 543 543 pinctrl-names = "default", "sleep"; 544 544 pinctrl-1 = <&spi1_sleep>; 545 545 546 - spiflash@0 { 546 + flash@0 { 547 547 compatible = "jedec,spi-nor"; 548 548 reg = <0>; 549 549
+36
arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts
··· 21 21 aliases { 22 22 mmc0 = &sdmmc; 23 23 mmc1 = &sdhci; 24 + spi1 = &spi1; 25 + spi2 = &spi2; 26 + spi5 = &spi5; 24 27 }; 25 28 26 29 avdd_0v9_s0: avdd-0v9-s0 { ··· 44 41 regulator-min-microvolt = <1800000>; 45 42 regulator-max-microvolt = <1800000>; 46 43 vin-supply = <&vcc3v3_sys_s3>; 44 + }; 45 + 46 + chosen { 47 + stdout-path = "serial2:1500000n8"; 47 48 }; 48 49 49 50 clkin_gmac: external-gmac-clock { ··· 476 469 status = "okay"; 477 470 }; 478 471 472 + &spi1 { 473 + status = "okay"; 474 + 475 + spiflash: flash@0 { 476 + compatible = "jedec,spi-nor"; 477 + reg = <0x0>; 478 + spi-max-frequency = <25000000>; 479 + status = "okay"; 480 + m25p,fast-read; 481 + }; 482 + }; 483 + 484 + /* UEXT connector */ 485 + &spi2 { 486 + status = "okay"; 487 + }; 488 + 489 + &spi5 { 490 + status = "okay"; 491 + }; 492 + 479 493 &tcphy1 { 480 494 /* phy for &usbdrd_dwc3_1 */ 495 + status = "okay"; 496 + }; 497 + 498 + &tsadc { 499 + /* tshut mode 0:CRU 1:GPIO */ 500 + rockchip,hw-tshut-mode = <1>; 501 + /* tshut polarity 0:LOW 1:HIGH */ 502 + rockchip,hw-tshut-polarity = <1>; 481 503 status = "okay"; 482 504 }; 483 505
+3 -3
arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi
··· 4 4 */ 5 5 6 6 / { 7 - cluster0_opp: opp-table0 { 7 + cluster0_opp: opp-table-0 { 8 8 compatible = "operating-points-v2"; 9 9 opp-shared; 10 10 ··· 39 39 }; 40 40 }; 41 41 42 - cluster1_opp: opp-table1 { 42 + cluster1_opp: opp-table-1 { 43 43 compatible = "operating-points-v2"; 44 44 opp-shared; 45 45 ··· 82 82 }; 83 83 }; 84 84 85 - gpu_opp_table: opp-table2 { 85 + gpu_opp_table: opp-table-2 { 86 86 compatible = "operating-points-v2"; 87 87 88 88 opp00 {
+3 -3
arch/arm64/boot/dts/rockchip/rk3399-opp.dtsi
··· 4 4 */ 5 5 6 6 / { 7 - cluster0_opp: opp-table0 { 7 + cluster0_opp: opp-table-0 { 8 8 compatible = "operating-points-v2"; 9 9 opp-shared; 10 10 ··· 35 35 }; 36 36 }; 37 37 38 - cluster1_opp: opp-table1 { 38 + cluster1_opp: opp-table-1 { 39 39 compatible = "operating-points-v2"; 40 40 opp-shared; 41 41 ··· 74 74 }; 75 75 }; 76 76 77 - gpu_opp_table: opp-table2 { 77 + gpu_opp_table: opp-table-2 { 78 78 compatible = "operating-points-v2"; 79 79 80 80 opp00 {
+1 -5
arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts
··· 385 385 }; 386 386 }; 387 387 388 - &cdn_dp { 389 - status = "okay"; 390 - }; 391 - 392 388 &cpu_b0 { 393 389 cpu-supply = <&vdd_cpu_b>; 394 390 }; ··· 707 711 708 712 connector { 709 713 compatible = "usb-c-connector"; 710 - data-role = "host"; 714 + data-role = "dual"; 711 715 label = "USB-C"; 712 716 op-sink-microwatt = <1000000>; 713 717 power-role = "dual";
+218
arch/arm64/boot/dts/rockchip/rk3399-roc-pc-plus.dts
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 + /* 3 + * Copyright (c) 2017 T-Chip Intelligent Technology Co., Ltd 4 + */ 5 + 6 + /dts-v1/; 7 + #include "rk3399-roc-pc.dtsi" 8 + 9 + /* 10 + * Notice: 11 + * 1. rk3399-roc-pc-plus is powered by dc_12v directly. 12 + * 2. rk3399-roc-pc-plus has only vcc_bus_typec0 in schematic, which is coresponding 13 + * to vcc_vbus_typec1 in rk3399-roc-pc. 14 + * For simplicity, reserve the node name of vcc_vbus_typec1. 15 + * 3. vcc5v0_host is actually 2 regulators (host0, 1) controlled by the same gpio. 16 + */ 17 + 18 + /delete-node/ &fusb1; 19 + /delete-node/ &hub_rst; 20 + /delete-node/ &mp8859; 21 + /delete-node/ &vcc_sys_en; 22 + /delete-node/ &vcc_vbus_typec0; 23 + /delete-node/ &yellow_led; 24 + 25 + / { 26 + model = "Firefly ROC-RK3399-PC-PLUS Board"; 27 + compatible = "firefly,roc-rk3399-pc-plus", "rockchip,rk3399"; 28 + 29 + dc_12v: dc-12v { 30 + compatible = "regulator-fixed"; 31 + regulator-name = "dc_12v"; 32 + regulator-always-on; 33 + regulator-boot-on; 34 + regulator-min-microvolt = <12000000>; 35 + regulator-max-microvolt = <12000000>; 36 + }; 37 + 38 + es8388-sound { 39 + compatible = "simple-audio-card"; 40 + pinctrl-names = "default"; 41 + pinctrl-0 = <&hp_det_pin>; 42 + simple-audio-card,name = "rockchip,es8388-codec"; 43 + simple-audio-card,format = "i2s"; 44 + simple-audio-card,mclk-fs = <256>; 45 + simple-audio-card,widgets = 46 + "Microphone", "Mic Jack", 47 + "Headphone", "Headphones"; 48 + simple-audio-card,routing = 49 + "LINPUT1", "Mic Jack", 50 + "Headphone Amp INL", "LOUT2", 51 + "Headphone Amp INR", "ROUT2", 52 + "Headphones", "Headphone Amp OUTL", 53 + "Headphones", "Headphone Amp OUTR"; 54 + simple-audio-card,hp-det-gpio = <&gpio2 RK_PA6 GPIO_ACTIVE_HIGH>; 55 + simple-audio-card,aux-devs = <&headphones_amp>; 56 + simple-audio-card,pin-switches = "Headphones"; 57 + 58 + simple-audio-card,codec { 59 + sound-dai = <&es8388>; 60 + }; 61 + 62 + simple-audio-card,cpu { 63 + sound-dai = <&i2s1>; 64 + }; 65 + }; 66 + 67 + gpio-fan { 68 + #cooling-cells = <2>; 69 + compatible = "gpio-fan"; 70 + gpio-fan,speed-map = <0 0 3000 1>; 71 + gpios = <&gpio1 RK_PA1 GPIO_ACTIVE_HIGH>; 72 + }; 73 + 74 + /delete-node/ gpio-keys; 75 + 76 + /* not amplifier, used as switcher only */ 77 + headphones_amp: headphones-amp { 78 + compatible = "simple-audio-amplifier"; 79 + pinctrl-names = "default"; 80 + pinctrl-0 = <&ear_ctl_pin>; 81 + enable-gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>; 82 + sound-name-prefix = "Headphone Amp"; 83 + VCC-supply = <&vcca3v0_codec>; 84 + }; 85 + 86 + ir-receiver { 87 + linux,rc-map-name = "rc-khadas"; 88 + }; 89 + 90 + leds { 91 + pinctrl-names = "default"; 92 + pinctrl-0 = <&work_led_pin>, <&diy_led_pin>; 93 + }; 94 + }; 95 + 96 + &fusb0 { 97 + vbus-supply = <&vcc_vbus_typec1>; 98 + }; 99 + 100 + &i2c0 { 101 + hym8563: hym8563@51 { 102 + compatible = "haoyu,hym8563"; 103 + reg = <0x51>; 104 + interrupt-parent = <&gpio0>; 105 + interrupts = <RK_PA5 IRQ_TYPE_EDGE_FALLING>; 106 + #clock-cells = <0>; 107 + clock-frequency = <32768>; 108 + clock-output-names = "xin32k"; 109 + pinctrl-names = "default"; 110 + pinctrl-0 = <&hym8563_int>; 111 + }; 112 + }; 113 + 114 + &i2c1 { 115 + es8388: es8388@11 { 116 + compatible = "everest,es8388"; 117 + reg = <0x11>; 118 + clock-names = "mclk"; 119 + clocks = <&cru SCLK_I2S_8CH_OUT>; 120 + #sound-dai-cells = <0>; 121 + }; 122 + }; 123 + 124 + /* <4 RK_PA0 1 &pcfg_pull_none> is used as i2s_8ch_mclk_pin */ 125 + &i2s0_8ch_bus { 126 + rockchip,pins = 127 + <3 RK_PD0 1 &pcfg_pull_none>, 128 + <3 RK_PD1 1 &pcfg_pull_none>, 129 + <3 RK_PD2 1 &pcfg_pull_none>, 130 + <3 RK_PD3 1 &pcfg_pull_none>, 131 + <3 RK_PD4 1 &pcfg_pull_none>, 132 + <3 RK_PD5 1 &pcfg_pull_none>, 133 + <3 RK_PD6 1 &pcfg_pull_none>, 134 + <3 RK_PD7 1 &pcfg_pull_none>; 135 + }; 136 + 137 + &i2s1 { 138 + pinctrl-names = "default"; 139 + pinctrl-0 = <&i2s_8ch_mclk_pin>, <&i2s1_2ch_bus>; 140 + rockchip,playback-channels = <2>; 141 + rockchip,capture-channels = <2>; 142 + status = "okay"; 143 + }; 144 + 145 + &pinctrl { 146 + es8388 { 147 + ear_ctl_pin: ear-ctl-pin { 148 + rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_output_high>; 149 + }; 150 + 151 + hp_det_pin: hp-det-pin { 152 + rockchip,pins = <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_down>; 153 + }; 154 + }; 155 + 156 + hym8563 { 157 + hym8563_int: hym8563-int { 158 + rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>; 159 + }; 160 + }; 161 + 162 + i2s1 { 163 + i2s_8ch_mclk_pin: i2s-8ch-mclk-pin { 164 + rockchip,pins = <4 RK_PA0 1 &pcfg_pull_none>; 165 + }; 166 + }; 167 + }; 168 + 169 + &u2phy0 { 170 + status = "okay"; 171 + 172 + u2phy0_otg: otg-port { 173 + phy-supply = <&vcc_vbus_typec1>; 174 + status = "okay"; 175 + }; 176 + 177 + u2phy0_host: host-port { 178 + phy-supply = <&vcc5v0_host>; 179 + status = "okay"; 180 + }; 181 + }; 182 + 183 + &u2phy1 { 184 + status = "okay"; 185 + 186 + u2phy1_otg: otg-port { 187 + phy-supply = <&vcc5v0_host>; 188 + status = "okay"; 189 + }; 190 + 191 + u2phy1_host: host-port { 192 + phy-supply = <&vcc5v0_host>; 193 + status = "okay"; 194 + }; 195 + }; 196 + 197 + &uart0 { 198 + pinctrl-names = "default"; 199 + pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>; 200 + status = "okay"; 201 + }; 202 + 203 + &usbdrd_dwc3_0 { 204 + dr_mode = "host"; 205 + status = "okay"; 206 + }; 207 + 208 + &vcc_sys { 209 + /* vcc_sys is fixed, not controlled by any gpio */ 210 + /delete-property/ gpio; 211 + /delete-property/ pinctrl-names; 212 + /delete-property/ pinctrl-0; 213 + }; 214 + 215 + &vcc5v0_host { 216 + pinctrl-names = "default"; 217 + pinctrl-0 = <&vcc5v0_host_en>; 218 + };
+54
arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi
··· 36 36 reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>; 37 37 }; 38 38 39 + sound { 40 + compatible = "audio-graph-card"; 41 + label = "Analog"; 42 + dais = <&i2s0_p0>; 43 + }; 44 + 45 + sound-dit { 46 + compatible = "audio-graph-card"; 47 + label = "SPDIF"; 48 + dais = <&spdif_p0>; 49 + }; 50 + 51 + spdif-dit { 52 + compatible = "linux,spdif-dit"; 53 + #sound-dai-cells = <0>; 54 + 55 + port { 56 + dit_p0_0: endpoint { 57 + remote-endpoint = <&spdif_p0_0>; 58 + }; 59 + }; 60 + }; 61 + 39 62 vcc12v_dcin: dc-12v { 40 63 compatible = "regulator-fixed"; 41 64 regulator-name = "vcc12v_dcin"; ··· 445 422 i2c-scl-rising-time-ns = <300>; 446 423 i2c-scl-falling-time-ns = <15>; 447 424 status = "okay"; 425 + 426 + es8316: codec@11 { 427 + compatible = "everest,es8316"; 428 + reg = <0x11>; 429 + clocks = <&cru SCLK_I2S_8CH_OUT>; 430 + clock-names = "mclk"; 431 + #sound-dai-cells = <0>; 432 + 433 + port { 434 + es8316_p0_0: endpoint { 435 + remote-endpoint = <&i2s0_p0_0>; 436 + }; 437 + }; 438 + }; 448 439 }; 449 440 450 441 &i2c3 { ··· 478 441 rockchip,capture-channels = <2>; 479 442 rockchip,playback-channels = <2>; 480 443 status = "okay"; 444 + 445 + i2s0_p0: port { 446 + i2s0_p0_0: endpoint { 447 + dai-format = "i2s"; 448 + mclk-fs = <256>; 449 + remote-endpoint = <&es8316_p0_0>; 450 + }; 451 + }; 481 452 }; 482 453 483 454 &i2s1 { ··· 646 601 mmc-hs400-enhanced-strobe; 647 602 non-removable; 648 603 status = "okay"; 604 + }; 605 + 606 + &spdif { 607 + 608 + spdif_p0: port { 609 + spdif_p0_0: endpoint { 610 + remote-endpoint = <&dit_p0_0>; 611 + }; 612 + }; 649 613 }; 650 614 651 615 &tcphy0 {
+14
arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4a-plus.dts
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 + /* 3 + * Copyright (c) 2019 Akash Gajjar <Akash_Gajjar@mentor.com> 4 + * Copyright (c) 2019 Pragnesh Patel <Pragnesh_Patel@mentor.com> 5 + */ 6 + 7 + /dts-v1/; 8 + #include "rk3399-rock-pi-4.dtsi" 9 + #include "rk3399-op1-opp.dtsi" 10 + 11 + / { 12 + model = "Radxa ROCK Pi 4A+"; 13 + compatible = "radxa,rockpi4a-plus", "radxa,rockpi4", "rockchip,rk3399"; 14 + };
+47
arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4b-plus.dts
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 + /* 3 + * Copyright (c) 2019 Akash Gajjar <Akash_Gajjar@mentor.com> 4 + * Copyright (c) 2019 Pragnesh Patel <Pragnesh_Patel@mentor.com> 5 + */ 6 + 7 + /dts-v1/; 8 + #include "rk3399-rock-pi-4.dtsi" 9 + #include "rk3399-op1-opp.dtsi" 10 + 11 + / { 12 + model = "Radxa ROCK Pi 4B+"; 13 + compatible = "radxa,rockpi4b-plus", "radxa,rockpi4", "rockchip,rk3399"; 14 + 15 + aliases { 16 + mmc2 = &sdio0; 17 + }; 18 + }; 19 + 20 + &sdio0 { 21 + status = "okay"; 22 + 23 + brcmf: wifi@1 { 24 + compatible = "brcm,bcm4329-fmac"; 25 + reg = <1>; 26 + interrupt-parent = <&gpio0>; 27 + interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>; 28 + interrupt-names = "host-wake"; 29 + pinctrl-names = "default"; 30 + pinctrl-0 = <&wifi_host_wake_l>; 31 + }; 32 + }; 33 + 34 + &uart0 { 35 + status = "okay"; 36 + 37 + bluetooth { 38 + compatible = "brcm,bcm43438-bt"; 39 + clocks = <&rk808 1>; 40 + clock-names = "ext_clock"; 41 + device-wakeup-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>; 42 + host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>; 43 + shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>; 44 + pinctrl-names = "default"; 45 + pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>; 46 + }; 47 + };
+29
arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dtsi
··· 69 69 70 70 fan: pwm-fan { 71 71 compatible = "pwm-fan"; 72 + cooling-levels = <0 100 150 200 255>; 72 73 #cooling-cells = <2>; 73 74 fan-supply = <&vcc12v_dcin>; 74 75 pwms = <&pwm1 0 50000 0>; ··· 244 243 245 244 &cpu_b1 { 246 245 cpu-supply = <&vdd_cpu_b>; 246 + }; 247 + 248 + &cpu_thermal { 249 + trips { 250 + cpu_warm: cpu_warm { 251 + temperature = <55000>; 252 + hysteresis = <2000>; 253 + type = "active"; 254 + }; 255 + 256 + cpu_hot: cpu_hot { 257 + temperature = <65000>; 258 + hysteresis = <2000>; 259 + type = "active"; 260 + }; 261 + }; 262 + 263 + cooling-maps { 264 + map2 { 265 + trip = <&cpu_warm>; 266 + cooling-device = <&fan THERMAL_NO_LIMIT 1>; 267 + }; 268 + 269 + map3 { 270 + trip = <&cpu_hot>; 271 + cooling-device = <&fan 2 THERMAL_NO_LIMIT>; 272 + }; 273 + }; 247 274 }; 248 275 249 276 &emmc_phy {
+87 -7
arch/arm64/boot/dts/rockchip/rk3399.dtsi
··· 361 361 status = "disabled"; 362 362 }; 363 363 364 + debug@fe430000 { 365 + compatible = "arm,coresight-cpu-debug", "arm,primecell"; 366 + reg = <0 0xfe430000 0 0x1000>; 367 + clocks = <&cru PCLK_COREDBG_L>; 368 + clock-names = "apb_pclk"; 369 + cpu = <&cpu_l0>; 370 + }; 371 + 372 + debug@fe432000 { 373 + compatible = "arm,coresight-cpu-debug", "arm,primecell"; 374 + reg = <0 0xfe432000 0 0x1000>; 375 + clocks = <&cru PCLK_COREDBG_L>; 376 + clock-names = "apb_pclk"; 377 + cpu = <&cpu_l1>; 378 + }; 379 + 380 + debug@fe434000 { 381 + compatible = "arm,coresight-cpu-debug", "arm,primecell"; 382 + reg = <0 0xfe434000 0 0x1000>; 383 + clocks = <&cru PCLK_COREDBG_L>; 384 + clock-names = "apb_pclk"; 385 + cpu = <&cpu_l2>; 386 + }; 387 + 388 + debug@fe436000 { 389 + compatible = "arm,coresight-cpu-debug", "arm,primecell"; 390 + reg = <0 0xfe436000 0 0x1000>; 391 + clocks = <&cru PCLK_COREDBG_L>; 392 + clock-names = "apb_pclk"; 393 + cpu = <&cpu_l3>; 394 + }; 395 + 396 + debug@fe610000 { 397 + compatible = "arm,coresight-cpu-debug", "arm,primecell"; 398 + reg = <0 0xfe610000 0 0x1000>; 399 + clocks = <&cru PCLK_COREDBG_B>; 400 + clock-names = "apb_pclk"; 401 + cpu = <&cpu_b0>; 402 + }; 403 + 404 + debug@fe710000 { 405 + compatible = "arm,coresight-cpu-debug", "arm,primecell"; 406 + reg = <0 0xfe710000 0 0x1000>; 407 + clocks = <&cru PCLK_COREDBG_B>; 408 + clock-names = "apb_pclk"; 409 + cpu = <&cpu_b1>; 410 + }; 411 + 364 412 usbdrd3_0: usb@fe800000 { 365 413 compatible = "rockchip,rk3399-dwc3"; 366 414 #address-cells = <2>; ··· 1299 1251 compatible = "rockchip,iommu"; 1300 1252 reg = <0x0 0xff650800 0x0 0x40>; 1301 1253 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH 0>; 1302 - interrupt-names = "vpu_mmu"; 1303 1254 clocks = <&cru ACLK_VCODEC>, <&cru HCLK_VCODEC>; 1304 1255 clock-names = "aclk", "iface"; 1305 1256 #iommu-cells = <0>; ··· 1320 1273 compatible = "rockchip,iommu"; 1321 1274 reg = <0x0 0xff660480 0x0 0x40>, <0x0 0xff6604c0 0x0 0x40>; 1322 1275 interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH 0>; 1323 - interrupt-names = "vdec_mmu"; 1324 1276 clocks = <&cru ACLK_VDU>, <&cru HCLK_VDU>; 1325 1277 clock-names = "aclk", "iface"; 1326 1278 power-domains = <&power RK3399_PD_VDU>; ··· 1330 1284 compatible = "rockchip,iommu"; 1331 1285 reg = <0x0 0xff670800 0x0 0x40>; 1332 1286 interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH 0>; 1333 - interrupt-names = "iep_mmu"; 1334 1287 clocks = <&cru ACLK_IEP>, <&cru HCLK_IEP>; 1335 1288 clock-names = "aclk", "iface"; 1336 1289 #iommu-cells = <0>; ··· 1711 1666 compatible = "rockchip,iommu"; 1712 1667 reg = <0x0 0xff8f3f00 0x0 0x100>; 1713 1668 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH 0>; 1714 - interrupt-names = "vopl_mmu"; 1715 1669 clocks = <&cru ACLK_VOP1>, <&cru HCLK_VOP1>; 1716 1670 clock-names = "aclk", "iface"; 1717 1671 power-domains = <&power RK3399_PD_VOPL>; ··· 1767 1723 compatible = "rockchip,iommu"; 1768 1724 reg = <0x0 0xff903f00 0x0 0x100>; 1769 1725 interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH 0>; 1770 - interrupt-names = "vopb_mmu"; 1771 1726 clocks = <&cru ACLK_VOP0>, <&cru HCLK_VOP0>; 1772 1727 clock-names = "aclk", "iface"; 1773 1728 power-domains = <&power RK3399_PD_VOPB>; ··· 1804 1761 compatible = "rockchip,iommu"; 1805 1762 reg = <0x0 0xff914000 0x0 0x100>, <0x0 0xff915000 0x0 0x100>; 1806 1763 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH 0>; 1807 - interrupt-names = "isp0_mmu"; 1808 1764 clocks = <&cru ACLK_ISP0_WRAPPER>, <&cru HCLK_ISP0_WRAPPER>; 1809 1765 clock-names = "aclk", "iface"; 1810 1766 #iommu-cells = <0>; ··· 1811 1769 rockchip,disable-mmu-reset; 1812 1770 }; 1813 1771 1772 + isp1: isp1@ff920000 { 1773 + compatible = "rockchip,rk3399-cif-isp"; 1774 + reg = <0x0 0xff920000 0x0 0x4000>; 1775 + interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH 0>; 1776 + clocks = <&cru SCLK_ISP1>, 1777 + <&cru ACLK_ISP1_WRAPPER>, 1778 + <&cru HCLK_ISP1_WRAPPER>; 1779 + clock-names = "isp", "aclk", "hclk"; 1780 + iommus = <&isp1_mmu>; 1781 + phys = <&mipi_dsi1>; 1782 + phy-names = "dphy"; 1783 + power-domains = <&power RK3399_PD_ISP1>; 1784 + status = "disabled"; 1785 + 1786 + ports { 1787 + #address-cells = <1>; 1788 + #size-cells = <0>; 1789 + 1790 + port@0 { 1791 + reg = <0>; 1792 + #address-cells = <1>; 1793 + #size-cells = <0>; 1794 + }; 1795 + }; 1796 + }; 1797 + 1814 1798 isp1_mmu: iommu@ff924000 { 1815 1799 compatible = "rockchip,iommu"; 1816 1800 reg = <0x0 0xff924000 0x0 0x100>, <0x0 0xff925000 0x0 0x100>; 1817 1801 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH 0>; 1818 - interrupt-names = "isp1_mmu"; 1819 1802 clocks = <&cru ACLK_ISP1_WRAPPER>, <&cru HCLK_ISP1_WRAPPER>; 1820 1803 clock-names = "aclk", "iface"; 1821 1804 #iommu-cells = <0>; ··· 1945 1878 rockchip,grf = <&grf>; 1946 1879 #address-cells = <1>; 1947 1880 #size-cells = <0>; 1881 + #phy-cells = <0>; 1948 1882 status = "disabled"; 1949 1883 1950 1884 ports { ··· 2179 2111 clock { 2180 2112 clk_32k: clk-32k { 2181 2113 rockchip,pins = <0 RK_PA0 2 &pcfg_pull_none>; 2114 + }; 2115 + }; 2116 + 2117 + cif { 2118 + cif_clkin: cif-clkin { 2119 + rockchip,pins = 2120 + <2 RK_PB2 3 &pcfg_pull_none>; 2121 + }; 2122 + 2123 + cif_clkouta: cif-clkouta { 2124 + rockchip,pins = 2125 + <2 RK_PB3 3 &pcfg_pull_none>; 2182 2126 }; 2183 2127 }; 2184 2128
+497
arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 + 3 + /dts-v1/; 4 + 5 + #include <dt-bindings/gpio/gpio.h> 6 + #include <dt-bindings/pinctrl/rockchip.h> 7 + #include "rk3566.dtsi" 8 + 9 + / { 10 + model = "Pine64 RK3566 Quartz64-A Board"; 11 + compatible = "pine64,quartz64-a", "rockchip,rk3566"; 12 + 13 + aliases { 14 + ethernet0 = &gmac1; 15 + mmc0 = &sdmmc0; 16 + mmc1 = &sdhci; 17 + }; 18 + 19 + chosen: chosen { 20 + stdout-path = "serial2:1500000n8"; 21 + }; 22 + 23 + gmac1_clkin: external-gmac1-clock { 24 + compatible = "fixed-clock"; 25 + clock-frequency = <125000000>; 26 + clock-output-names = "gmac1_clkin"; 27 + #clock-cells = <0>; 28 + }; 29 + 30 + fan: gpio_fan { 31 + compatible = "gpio-fan"; 32 + gpios = <&gpio0 RK_PD5 GPIO_ACTIVE_HIGH>; 33 + gpio-fan,speed-map = <0 0 34 + 4500 1>; 35 + #cooling-cells = <2>; 36 + }; 37 + 38 + leds { 39 + compatible = "gpio-leds"; 40 + 41 + led-work { 42 + label = "work-led"; 43 + default-state = "off"; 44 + gpios = <&gpio0 RK_PD3 GPIO_ACTIVE_HIGH>; 45 + pinctrl-names = "default"; 46 + pinctrl-0 = <&work_led_enable_h>; 47 + retain-state-suspended; 48 + }; 49 + 50 + led-diy { 51 + label = "diy-led"; 52 + default-state = "on"; 53 + gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>; 54 + linux,default-trigger = "heartbeat"; 55 + pinctrl-names = "default"; 56 + pinctrl-0 = <&diy_led_enable_h>; 57 + retain-state-suspended; 58 + }; 59 + }; 60 + 61 + vcc12v_dcin: vcc12v_dcin { 62 + compatible = "regulator-fixed"; 63 + regulator-name = "vcc12v_dcin"; 64 + regulator-always-on; 65 + regulator-boot-on; 66 + regulator-min-microvolt = <12000000>; 67 + regulator-max-microvolt = <12000000>; 68 + }; 69 + 70 + /* vbus feeds the rk817 usb input. 71 + * With no battery attached, also feeds vcc_bat+ 72 + * via ON/OFF_BAT jumper 73 + */ 74 + vbus: vbus { 75 + compatible = "regulator-fixed"; 76 + regulator-name = "vbus"; 77 + regulator-always-on; 78 + regulator-boot-on; 79 + regulator-min-microvolt = <5000000>; 80 + regulator-max-microvolt = <5000000>; 81 + vin-supply = <&vcc12v_dcin>; 82 + }; 83 + 84 + vcc5v0_usb: vcc5v0_usb { 85 + compatible = "regulator-fixed"; 86 + regulator-name = "vcc5v0_usb"; 87 + regulator-always-on; 88 + regulator-boot-on; 89 + regulator-min-microvolt = <5000000>; 90 + regulator-max-microvolt = <5000000>; 91 + vin-supply = <&vcc12v_dcin>; 92 + }; 93 + 94 + vcc3v3_sd: vcc3v3_sd { 95 + compatible = "regulator-fixed"; 96 + enable-active-low; 97 + gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>; 98 + pinctrl-names = "default"; 99 + pinctrl-0 = <&vcc_sd_h>; 100 + regulator-boot-on; 101 + regulator-name = "vcc3v3_sd"; 102 + regulator-min-microvolt = <3300000>; 103 + regulator-max-microvolt = <3300000>; 104 + vin-supply = <&vcc_3v3>; 105 + }; 106 + 107 + /* sourced from vbus and vcc_bat+ via rk817 sw5 */ 108 + vcc_sys: vcc_sys { 109 + compatible = "regulator-fixed"; 110 + regulator-name = "vcc_sys"; 111 + regulator-always-on; 112 + regulator-boot-on; 113 + regulator-min-microvolt = <4400000>; 114 + regulator-max-microvolt = <4400000>; 115 + vin-supply = <&vbus>; 116 + }; 117 + }; 118 + 119 + &cpu0 { 120 + cpu-supply = <&vdd_cpu>; 121 + }; 122 + 123 + &cpu1 { 124 + cpu-supply = <&vdd_cpu>; 125 + }; 126 + 127 + &cpu2 { 128 + cpu-supply = <&vdd_cpu>; 129 + }; 130 + 131 + &cpu3 { 132 + cpu-supply = <&vdd_cpu>; 133 + }; 134 + 135 + &cpu_thermal { 136 + trips { 137 + cpu_hot: cpu_hot { 138 + temperature = <55000>; 139 + hysteresis = <2000>; 140 + type = "active"; 141 + }; 142 + }; 143 + 144 + cooling-maps { 145 + map1 { 146 + trip = <&cpu_hot>; 147 + cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 148 + }; 149 + }; 150 + }; 151 + 152 + &gmac1 { 153 + assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>; 154 + assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>, <&gmac1_clkin>; 155 + clock_in_out = "input"; 156 + phy-supply = <&vcc_3v3>; 157 + phy-mode = "rgmii"; 158 + pinctrl-names = "default"; 159 + pinctrl-0 = <&gmac1m0_miim 160 + &gmac1m0_tx_bus2 161 + &gmac1m0_rx_bus2 162 + &gmac1m0_rgmii_clk 163 + &gmac1m0_clkinout 164 + &gmac1m0_rgmii_bus>; 165 + snps,reset-gpio = <&gpio0 RK_PC3 GPIO_ACTIVE_LOW>; 166 + snps,reset-active-low; 167 + /* Reset time is 20ms, 100ms for rtl8211f */ 168 + snps,reset-delays-us = <0 20000 100000>; 169 + tx_delay = <0x30>; 170 + rx_delay = <0x10>; 171 + phy-handle = <&rgmii_phy1>; 172 + status = "okay"; 173 + }; 174 + 175 + &i2c0 { 176 + status = "okay"; 177 + 178 + vdd_cpu: regulator@1c { 179 + compatible = "tcs,tcs4525"; 180 + reg = <0x1c>; 181 + fcs,suspend-voltage-selector = <1>; 182 + regulator-name = "vdd_cpu"; 183 + regulator-min-microvolt = <800000>; 184 + regulator-max-microvolt = <1150000>; 185 + regulator-ramp-delay = <2300>; 186 + regulator-always-on; 187 + regulator-boot-on; 188 + vin-supply = <&vcc_sys>; 189 + 190 + regulator-state-mem { 191 + regulator-off-in-suspend; 192 + }; 193 + }; 194 + 195 + rk817: pmic@20 { 196 + compatible = "rockchip,rk817"; 197 + reg = <0x20>; 198 + interrupt-parent = <&gpio0>; 199 + interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>; 200 + clock-output-names = "rk808-clkout1", "rk808-clkout2"; 201 + 202 + pinctrl-names = "default"; 203 + pinctrl-0 = <&pmic_int_l>; 204 + rockchip,system-power-controller; 205 + wakeup-source; 206 + #clock-cells = <1>; 207 + 208 + vcc1-supply = <&vcc_sys>; 209 + vcc2-supply = <&vcc_sys>; 210 + vcc3-supply = <&vcc_sys>; 211 + vcc4-supply = <&vcc_sys>; 212 + vcc5-supply = <&vcc_sys>; 213 + vcc6-supply = <&vcc_sys>; 214 + vcc7-supply = <&vcc_sys>; 215 + vcc8-supply = <&vcc_sys>; 216 + vcc9-supply = <&dcdc_boost>; 217 + 218 + regulators { 219 + vdd_logic: DCDC_REG1 { 220 + regulator-always-on; 221 + regulator-boot-on; 222 + regulator-min-microvolt = <500000>; 223 + regulator-max-microvolt = <1350000>; 224 + regulator-init-microvolt = <900000>; 225 + regulator-ramp-delay = <6001>; 226 + regulator-initial-mode = <0x2>; 227 + regulator-name = "vdd_logic"; 228 + regulator-state-mem { 229 + regulator-on-in-suspend; 230 + regulator-suspend-microvolt = <900000>; 231 + }; 232 + }; 233 + 234 + vdd_gpu: DCDC_REG2 { 235 + regulator-always-on; 236 + regulator-boot-on; 237 + regulator-min-microvolt = <500000>; 238 + regulator-max-microvolt = <1350000>; 239 + regulator-init-microvolt = <900000>; 240 + regulator-ramp-delay = <6001>; 241 + regulator-initial-mode = <0x2>; 242 + regulator-name = "vdd_gpu"; 243 + regulator-state-mem { 244 + regulator-off-in-suspend; 245 + }; 246 + }; 247 + 248 + vcc_ddr: DCDC_REG3 { 249 + regulator-always-on; 250 + regulator-boot-on; 251 + regulator-min-microvolt = <1100000>; 252 + regulator-max-microvolt = <1100000>; 253 + regulator-initial-mode = <0x2>; 254 + regulator-name = "vcc_ddr"; 255 + regulator-state-mem { 256 + regulator-on-in-suspend; 257 + }; 258 + }; 259 + 260 + vcc_3v3: DCDC_REG4 { 261 + regulator-always-on; 262 + regulator-boot-on; 263 + regulator-min-microvolt = <3300000>; 264 + regulator-max-microvolt = <3300000>; 265 + regulator-initial-mode = <0x2>; 266 + regulator-name = "vcc_3v3"; 267 + regulator-state-mem { 268 + regulator-off-in-suspend; 269 + }; 270 + }; 271 + 272 + vcca1v8_pmu: LDO_REG1 { 273 + regulator-always-on; 274 + regulator-boot-on; 275 + regulator-min-microvolt = <1800000>; 276 + regulator-max-microvolt = <1800000>; 277 + regulator-name = "vcca1v8_pmu"; 278 + regulator-state-mem { 279 + regulator-on-in-suspend; 280 + regulator-suspend-microvolt = <1800000>; 281 + }; 282 + }; 283 + 284 + vdda_0v9: LDO_REG2 { 285 + regulator-always-on; 286 + regulator-boot-on; 287 + regulator-min-microvolt = <900000>; 288 + regulator-max-microvolt = <900000>; 289 + regulator-name = "vdda_0v9"; 290 + regulator-state-mem { 291 + regulator-off-in-suspend; 292 + }; 293 + }; 294 + 295 + vdda0v9_pmu: LDO_REG3 { 296 + regulator-always-on; 297 + regulator-boot-on; 298 + regulator-min-microvolt = <900000>; 299 + regulator-max-microvolt = <900000>; 300 + regulator-name = "vdda0v9_pmu"; 301 + regulator-state-mem { 302 + regulator-on-in-suspend; 303 + regulator-suspend-microvolt = <900000>; 304 + }; 305 + }; 306 + 307 + vccio_acodec: LDO_REG4 { 308 + regulator-always-on; 309 + regulator-boot-on; 310 + regulator-min-microvolt = <3300000>; 311 + regulator-max-microvolt = <3300000>; 312 + regulator-name = "vccio_acodec"; 313 + regulator-state-mem { 314 + regulator-off-in-suspend; 315 + }; 316 + }; 317 + 318 + vccio_sd: LDO_REG5 { 319 + regulator-always-on; 320 + regulator-boot-on; 321 + regulator-min-microvolt = <1800000>; 322 + regulator-max-microvolt = <3300000>; 323 + regulator-name = "vccio_sd"; 324 + regulator-state-mem { 325 + regulator-off-in-suspend; 326 + }; 327 + }; 328 + 329 + vcc3v3_pmu: LDO_REG6 { 330 + regulator-always-on; 331 + regulator-boot-on; 332 + regulator-min-microvolt = <3300000>; 333 + regulator-max-microvolt = <3300000>; 334 + regulator-name = "vcc3v3_pmu"; 335 + regulator-state-mem { 336 + regulator-on-in-suspend; 337 + regulator-suspend-microvolt = <3300000>; 338 + }; 339 + }; 340 + 341 + vcc_1v8: LDO_REG7 { 342 + regulator-always-on; 343 + regulator-boot-on; 344 + regulator-min-microvolt = <1800000>; 345 + regulator-max-microvolt = <1800000>; 346 + regulator-name = "vcc_1v8"; 347 + regulator-state-mem { 348 + regulator-off-in-suspend; 349 + }; 350 + }; 351 + 352 + vcc1v8_dvp: LDO_REG8 { 353 + regulator-always-on; 354 + regulator-boot-on; 355 + regulator-min-microvolt = <1800000>; 356 + regulator-max-microvolt = <1800000>; 357 + regulator-name = "vcc1v8_dvp"; 358 + regulator-state-mem { 359 + regulator-off-in-suspend; 360 + }; 361 + }; 362 + 363 + vcc2v8_dvp: LDO_REG9 { 364 + regulator-always-on; 365 + regulator-boot-on; 366 + regulator-min-microvolt = <2800000>; 367 + regulator-max-microvolt = <2800000>; 368 + regulator-name = "vcc2v8_dvp"; 369 + regulator-state-mem { 370 + regulator-off-in-suspend; 371 + }; 372 + }; 373 + 374 + dcdc_boost: BOOST { 375 + regulator-always-on; 376 + regulator-boot-on; 377 + regulator-min-microvolt = <5000000>; 378 + regulator-max-microvolt = <5000000>; 379 + regulator-name = "boost"; 380 + regulator-state-mem { 381 + regulator-off-in-suspend; 382 + }; 383 + }; 384 + 385 + otg_switch: OTG_SWITCH { 386 + regulator-name = "otg_switch"; 387 + regulator-state-mem { 388 + regulator-off-in-suspend; 389 + }; 390 + }; 391 + }; 392 + }; 393 + }; 394 + 395 + &mdio1 { 396 + rgmii_phy1: ethernet-phy@0 { 397 + compatible = "ethernet-phy-ieee802.3-c22"; 398 + reg = <0>; 399 + }; 400 + }; 401 + 402 + &pinctrl { 403 + bt { 404 + bt_enable_h: bt-enable-h { 405 + rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>; 406 + }; 407 + 408 + bt_host_wake_l: bt-host-wake-l { 409 + rockchip,pins = <2 RK_PC0 RK_FUNC_GPIO &pcfg_pull_down>; 410 + }; 411 + 412 + bt_wake_l: bt-wake-l { 413 + rockchip,pins = <2 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; 414 + }; 415 + }; 416 + 417 + leds { 418 + work_led_enable_h: work-led-enable-h { 419 + rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; 420 + }; 421 + 422 + diy_led_enable_h: diy-led-enable-h { 423 + rockchip,pins = <0 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>; 424 + }; 425 + }; 426 + 427 + pmic { 428 + pmic_int_l: pmic-int-l { 429 + rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; 430 + }; 431 + }; 432 + 433 + vcc_sd { 434 + vcc_sd_h: vcc-sd-h { 435 + rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>; 436 + }; 437 + }; 438 + }; 439 + 440 + &sdhci { 441 + bus-width = <8>; 442 + mmc-hs200-1_8v; 443 + non-removable; 444 + vmmc-supply = <&vcc_3v3>; 445 + vqmmc-supply = <&vcc_1v8>; 446 + status = "okay"; 447 + }; 448 + 449 + &sdmmc0 { 450 + bus-width = <4>; 451 + cap-sd-highspeed; 452 + cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>; 453 + disable-wp; 454 + pinctrl-names = "default"; 455 + pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>; 456 + vmmc-supply = <&vcc3v3_sd>; 457 + vqmmc-supply = <&vccio_sd>; 458 + status = "okay"; 459 + }; 460 + 461 + &tsadc { 462 + /* tshut mode 0:CRU 1:GPIO */ 463 + rockchip,hw-tshut-mode = <1>; 464 + /* tshut polarity 0:LOW 1:HIGH */ 465 + rockchip,hw-tshut-polarity = <0>; 466 + status = "okay"; 467 + }; 468 + 469 + &uart0 { 470 + pinctrl-names = "default"; 471 + pinctrl-0 = <&uart0_xfer>; 472 + status = "okay"; 473 + }; 474 + 475 + &uart1 { 476 + pinctrl-names = "default"; 477 + pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn>; 478 + status = "okay"; 479 + uart-has-rtscts; 480 + 481 + bluetooth { 482 + compatible = "brcm,bcm43438-bt"; 483 + clocks = <&rk817 1>; 484 + clock-names = "lpo"; 485 + device-wake-gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>; 486 + host-wake-gpios = <&gpio2 RK_PC0 GPIO_ACTIVE_HIGH>; 487 + shutdown-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>; 488 + pinctrl-names = "default"; 489 + pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>; 490 + vbat-supply = <&vcc_sys>; 491 + vddio-supply = <&vcca1v8_pmu>; 492 + }; 493 + }; 494 + 495 + &uart2 { 496 + status = "okay"; 497 + };
+20
arch/arm64/boot/dts/rockchip/rk3566.dtsi
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 + 3 + #include "rk356x.dtsi" 4 + 5 + / { 6 + compatible = "rockchip,rk3566"; 7 + }; 8 + 9 + &power { 10 + power-domain@RK3568_PD_PIPE { 11 + reg = <RK3568_PD_PIPE>; 12 + clocks = <&cru PCLK_PIPE>; 13 + pm_qos = <&qos_pcie2x1>, 14 + <&qos_sata1>, 15 + <&qos_sata2>, 16 + <&qos_usb3_0>, 17 + <&qos_usb3_1>; 18 + #power-domain-cells = <0>; 19 + }; 20 + };
+313
arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts
··· 13 13 model = "Rockchip RK3568 EVB1 DDR4 V10 Board"; 14 14 compatible = "rockchip,rk3568-evb1-v10", "rockchip,rk3568"; 15 15 16 + aliases { 17 + ethernet0 = &gmac0; 18 + ethernet1 = &gmac1; 19 + mmc0 = &sdmmc0; 20 + mmc1 = &sdhci; 21 + }; 22 + 16 23 chosen: chosen { 17 24 stdout-path = "serial2:1500000n8"; 18 25 }; ··· 74 67 }; 75 68 }; 76 69 70 + &gmac0 { 71 + assigned-clocks = <&cru SCLK_GMAC0_RX_TX>, <&cru SCLK_GMAC0>; 72 + assigned-clock-parents = <&cru SCLK_GMAC0_RGMII_SPEED>; 73 + assigned-clock-rates = <0>, <125000000>; 74 + clock_in_out = "output"; 75 + phy-handle = <&rgmii_phy0>; 76 + phy-mode = "rgmii-id"; 77 + pinctrl-names = "default"; 78 + pinctrl-0 = <&gmac0_miim 79 + &gmac0_tx_bus2 80 + &gmac0_rx_bus2 81 + &gmac0_rgmii_clk 82 + &gmac0_rgmii_bus>; 83 + status = "okay"; 84 + }; 85 + 86 + &gmac1 { 87 + assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>; 88 + assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>; 89 + assigned-clock-rates = <0>, <125000000>; 90 + clock_in_out = "output"; 91 + phy-handle = <&rgmii_phy1>; 92 + phy-mode = "rgmii-id"; 93 + pinctrl-names = "default"; 94 + pinctrl-0 = <&gmac1m1_miim 95 + &gmac1m1_tx_bus2 96 + &gmac1m1_rx_bus2 97 + &gmac1m1_rgmii_clk 98 + &gmac1m1_rgmii_bus>; 99 + status = "okay"; 100 + }; 101 + 102 + &i2c0 { 103 + status = "okay"; 104 + 105 + rk809: pmic@20 { 106 + compatible = "rockchip,rk809"; 107 + reg = <0x20>; 108 + interrupt-parent = <&gpio0>; 109 + interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>; 110 + #clock-cells = <1>; 111 + pinctrl-names = "default"; 112 + pinctrl-0 = <&pmic_int>; 113 + rockchip,system-power-controller; 114 + vcc1-supply = <&vcc3v3_sys>; 115 + vcc2-supply = <&vcc3v3_sys>; 116 + vcc3-supply = <&vcc3v3_sys>; 117 + vcc4-supply = <&vcc3v3_sys>; 118 + vcc5-supply = <&vcc3v3_sys>; 119 + vcc6-supply = <&vcc3v3_sys>; 120 + vcc7-supply = <&vcc3v3_sys>; 121 + vcc8-supply = <&vcc3v3_sys>; 122 + vcc9-supply = <&vcc3v3_sys>; 123 + wakeup-source; 124 + 125 + regulators { 126 + vdd_logic: DCDC_REG1 { 127 + regulator-name = "vdd_logic"; 128 + regulator-always-on; 129 + regulator-boot-on; 130 + regulator-init-microvolt = <900000>; 131 + regulator-initial-mode = <0x2>; 132 + regulator-min-microvolt = <500000>; 133 + regulator-max-microvolt = <1350000>; 134 + regulator-ramp-delay = <6001>; 135 + 136 + regulator-state-mem { 137 + regulator-off-in-suspend; 138 + }; 139 + }; 140 + 141 + vdd_gpu: DCDC_REG2 { 142 + regulator-name = "vdd_gpu"; 143 + regulator-init-microvolt = <900000>; 144 + regulator-initial-mode = <0x2>; 145 + regulator-min-microvolt = <500000>; 146 + regulator-max-microvolt = <1350000>; 147 + regulator-ramp-delay = <6001>; 148 + 149 + regulator-state-mem { 150 + regulator-off-in-suspend; 151 + }; 152 + }; 153 + 154 + vcc_ddr: DCDC_REG3 { 155 + regulator-name = "vcc_ddr"; 156 + regulator-always-on; 157 + regulator-boot-on; 158 + regulator-initial-mode = <0x2>; 159 + 160 + regulator-state-mem { 161 + regulator-on-in-suspend; 162 + }; 163 + }; 164 + 165 + vdd_npu: DCDC_REG4 { 166 + regulator-name = "vdd_npu"; 167 + regulator-init-microvolt = <900000>; 168 + regulator-initial-mode = <0x2>; 169 + regulator-min-microvolt = <500000>; 170 + regulator-max-microvolt = <1350000>; 171 + regulator-ramp-delay = <6001>; 172 + 173 + regulator-state-mem { 174 + regulator-off-in-suspend; 175 + }; 176 + }; 177 + 178 + vcc_1v8: DCDC_REG5 { 179 + regulator-name = "vcc_1v8"; 180 + regulator-always-on; 181 + regulator-boot-on; 182 + regulator-min-microvolt = <1800000>; 183 + regulator-max-microvolt = <1800000>; 184 + 185 + regulator-state-mem { 186 + regulator-off-in-suspend; 187 + }; 188 + }; 189 + 190 + vdda0v9_image: LDO_REG1 { 191 + regulator-name = "vdda0v9_image"; 192 + regulator-min-microvolt = <900000>; 193 + regulator-max-microvolt = <900000>; 194 + 195 + regulator-state-mem { 196 + regulator-off-in-suspend; 197 + }; 198 + }; 199 + 200 + vdda_0v9: LDO_REG2 { 201 + regulator-name = "vdda_0v9"; 202 + regulator-always-on; 203 + regulator-boot-on; 204 + regulator-min-microvolt = <900000>; 205 + regulator-max-microvolt = <900000>; 206 + 207 + regulator-state-mem { 208 + regulator-off-in-suspend; 209 + }; 210 + }; 211 + 212 + vdda0v9_pmu: LDO_REG3 { 213 + regulator-name = "vdda0v9_pmu"; 214 + regulator-always-on; 215 + regulator-boot-on; 216 + regulator-min-microvolt = <900000>; 217 + regulator-max-microvolt = <900000>; 218 + 219 + regulator-state-mem { 220 + regulator-on-in-suspend; 221 + regulator-suspend-microvolt = <900000>; 222 + }; 223 + }; 224 + 225 + vccio_acodec: LDO_REG4 { 226 + regulator-name = "vccio_acodec"; 227 + regulator-min-microvolt = <3300000>; 228 + regulator-max-microvolt = <3300000>; 229 + 230 + regulator-state-mem { 231 + regulator-off-in-suspend; 232 + }; 233 + }; 234 + 235 + vccio_sd: LDO_REG5 { 236 + regulator-name = "vccio_sd"; 237 + regulator-min-microvolt = <1800000>; 238 + regulator-max-microvolt = <3300000>; 239 + 240 + regulator-state-mem { 241 + regulator-off-in-suspend; 242 + }; 243 + }; 244 + 245 + vcc3v3_pmu: LDO_REG6 { 246 + regulator-name = "vcc3v3_pmu"; 247 + regulator-always-on; 248 + regulator-boot-on; 249 + regulator-min-microvolt = <3300000>; 250 + regulator-max-microvolt = <3300000>; 251 + 252 + regulator-state-mem { 253 + regulator-on-in-suspend; 254 + regulator-suspend-microvolt = <3300000>; 255 + }; 256 + }; 257 + 258 + vcca_1v8: LDO_REG7 { 259 + regulator-name = "vcca_1v8"; 260 + regulator-always-on; 261 + regulator-boot-on; 262 + regulator-min-microvolt = <1800000>; 263 + regulator-max-microvolt = <1800000>; 264 + 265 + regulator-state-mem { 266 + regulator-off-in-suspend; 267 + }; 268 + }; 269 + 270 + vcca1v8_pmu: LDO_REG8 { 271 + regulator-name = "vcca1v8_pmu"; 272 + regulator-always-on; 273 + regulator-boot-on; 274 + regulator-min-microvolt = <1800000>; 275 + regulator-max-microvolt = <1800000>; 276 + 277 + regulator-state-mem { 278 + regulator-on-in-suspend; 279 + regulator-suspend-microvolt = <1800000>; 280 + }; 281 + }; 282 + 283 + vcca1v8_image: LDO_REG9 { 284 + regulator-name = "vcca1v8_image"; 285 + regulator-min-microvolt = <1800000>; 286 + regulator-max-microvolt = <1800000>; 287 + 288 + regulator-state-mem { 289 + regulator-off-in-suspend; 290 + }; 291 + }; 292 + 293 + vcc_3v3: SWITCH_REG1 { 294 + regulator-name = "vcc_3v3"; 295 + regulator-always-on; 296 + regulator-boot-on; 297 + 298 + regulator-state-mem { 299 + regulator-off-in-suspend; 300 + }; 301 + }; 302 + 303 + vcc3v3_sd: SWITCH_REG2 { 304 + regulator-name = "vcc3v3_sd"; 305 + 306 + regulator-state-mem { 307 + regulator-off-in-suspend; 308 + }; 309 + }; 310 + }; 311 + }; 312 + }; 313 + 314 + &mdio0 { 315 + rgmii_phy0: ethernet-phy@0 { 316 + compatible = "ethernet-phy-ieee802.3-c22"; 317 + reg = <0x0>; 318 + reset-assert-us = <20000>; 319 + reset-deassert-us = <100000>; 320 + reset-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_LOW>; 321 + }; 322 + }; 323 + 324 + &mdio1 { 325 + rgmii_phy1: ethernet-phy@0 { 326 + compatible = "ethernet-phy-ieee802.3-c22"; 327 + reg = <0x0>; 328 + reset-assert-us = <20000>; 329 + reset-deassert-us = <100000>; 330 + reset-gpios = <&gpio2 RK_PD1 GPIO_ACTIVE_LOW>; 331 + }; 332 + }; 333 + 334 + &pinctrl { 335 + pmic { 336 + pmic_int: pmic_int { 337 + rockchip,pins = 338 + <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; 339 + }; 340 + }; 341 + }; 342 + 343 + &pmu_io_domains { 344 + pmuio1-supply = <&vcc3v3_pmu>; 345 + pmuio2-supply = <&vcc3v3_pmu>; 346 + vccio1-supply = <&vccio_acodec>; 347 + vccio2-supply = <&vcc_1v8>; 348 + vccio3-supply = <&vccio_sd>; 349 + vccio4-supply = <&vcc_1v8>; 350 + vccio5-supply = <&vcc_3v3>; 351 + vccio6-supply = <&vcc_1v8>; 352 + vccio7-supply = <&vcc_3v3>; 353 + status = "okay"; 354 + }; 355 + 356 + &saradc { 357 + vref-supply = <&vcca_1v8>; 358 + status = "okay"; 359 + }; 360 + 77 361 &sdhci { 78 362 bus-width = <8>; 79 363 max-frequency = <200000000>; 80 364 non-removable; 365 + pinctrl-names = "default"; 366 + pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>; 367 + status = "okay"; 368 + }; 369 + 370 + &sdmmc0 { 371 + bus-width = <4>; 372 + cap-sd-highspeed; 373 + cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>; 374 + disable-wp; 375 + pinctrl-names = "default"; 376 + pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>; 377 + sd-uhs-sdr104; 378 + vmmc-supply = <&vcc3v3_sd>; 379 + vqmmc-supply = <&vccio_sd>; 81 380 status = "okay"; 82 381 }; 83 382
+9
arch/arm64/boot/dts/rockchip/rk3568-pinctrl.dtsi
··· 3108 3108 <4 RK_PA0 3 &pcfg_pull_none_drv_level_2>; 3109 3109 }; 3110 3110 }; 3111 + 3112 + tsadc { 3113 + /omit-if-no-ref/ 3114 + tsadc_pin: tsadc-pin { 3115 + rockchip,pins = 3116 + /* tsadc_pin */ 3117 + <0 RK_PA1 0 &pcfg_pull_none>; 3118 + }; 3119 + }; 3111 3120 };
+70 -566
arch/arm64/boot/dts/rockchip/rk3568.dtsi
··· 3 3 * Copyright (c) 2021 Rockchip Electronics Co., Ltd. 4 4 */ 5 5 6 - #include <dt-bindings/clock/rk3568-cru.h> 7 - #include <dt-bindings/interrupt-controller/arm-gic.h> 8 - #include <dt-bindings/interrupt-controller/irq.h> 9 - #include <dt-bindings/phy/phy.h> 10 - #include <dt-bindings/pinctrl/rockchip.h> 11 - #include <dt-bindings/soc/rockchip,boot-mode.h> 12 - #include <dt-bindings/thermal/thermal.h> 6 + #include "rk356x.dtsi" 13 7 14 8 / { 15 9 compatible = "rockchip,rk3568"; 16 10 17 - interrupt-parent = <&gic>; 18 - #address-cells = <2>; 19 - #size-cells = <2>; 20 - 21 - aliases { 22 - gpio0 = &gpio0; 23 - gpio1 = &gpio1; 24 - gpio2 = &gpio2; 25 - gpio3 = &gpio3; 26 - gpio4 = &gpio4; 27 - i2c0 = &i2c0; 28 - i2c1 = &i2c1; 29 - i2c2 = &i2c2; 30 - i2c3 = &i2c3; 31 - i2c4 = &i2c4; 32 - i2c5 = &i2c5; 33 - serial0 = &uart0; 34 - serial1 = &uart1; 35 - serial2 = &uart2; 36 - serial3 = &uart3; 37 - serial4 = &uart4; 38 - serial5 = &uart5; 39 - serial6 = &uart6; 40 - serial7 = &uart7; 41 - serial8 = &uart8; 42 - serial9 = &uart9; 11 + qos_pcie3x1: qos@fe190080 { 12 + compatible = "rockchip,rk3568-qos", "syscon"; 13 + reg = <0x0 0xfe190080 0x0 0x20>; 43 14 }; 44 15 45 - cpus { 46 - #address-cells = <2>; 47 - #size-cells = <0>; 48 - 49 - cpu0: cpu@0 { 50 - device_type = "cpu"; 51 - compatible = "arm,cortex-a55"; 52 - reg = <0x0 0x0>; 53 - clocks = <&scmi_clk 0>; 54 - enable-method = "psci"; 55 - operating-points-v2 = <&cpu0_opp_table>; 56 - }; 57 - 58 - cpu1: cpu@100 { 59 - device_type = "cpu"; 60 - compatible = "arm,cortex-a55"; 61 - reg = <0x0 0x100>; 62 - enable-method = "psci"; 63 - operating-points-v2 = <&cpu0_opp_table>; 64 - }; 65 - 66 - cpu2: cpu@200 { 67 - device_type = "cpu"; 68 - compatible = "arm,cortex-a55"; 69 - reg = <0x0 0x200>; 70 - enable-method = "psci"; 71 - operating-points-v2 = <&cpu0_opp_table>; 72 - }; 73 - 74 - cpu3: cpu@300 { 75 - device_type = "cpu"; 76 - compatible = "arm,cortex-a55"; 77 - reg = <0x0 0x300>; 78 - enable-method = "psci"; 79 - operating-points-v2 = <&cpu0_opp_table>; 80 - }; 16 + qos_pcie3x2: qos@fe190100 { 17 + compatible = "rockchip,rk3568-qos", "syscon"; 18 + reg = <0x0 0xfe190100 0x0 0x20>; 81 19 }; 82 20 83 - cpu0_opp_table: cpu0-opp-table { 84 - compatible = "operating-points-v2"; 85 - opp-shared; 86 - 87 - opp-408000000 { 88 - opp-hz = /bits/ 64 <408000000>; 89 - opp-microvolt = <900000 900000 1150000>; 90 - clock-latency-ns = <40000>; 91 - }; 92 - 93 - opp-600000000 { 94 - opp-hz = /bits/ 64 <600000000>; 95 - opp-microvolt = <900000 900000 1150000>; 96 - }; 97 - 98 - opp-816000000 { 99 - opp-hz = /bits/ 64 <816000000>; 100 - opp-microvolt = <900000 900000 1150000>; 101 - opp-suspend; 102 - }; 103 - 104 - opp-1104000000 { 105 - opp-hz = /bits/ 64 <1104000000>; 106 - opp-microvolt = <900000 900000 1150000>; 107 - }; 108 - 109 - opp-1416000000 { 110 - opp-hz = /bits/ 64 <1416000000>; 111 - opp-microvolt = <900000 900000 1150000>; 112 - }; 113 - 114 - opp-1608000000 { 115 - opp-hz = /bits/ 64 <1608000000>; 116 - opp-microvolt = <975000 975000 1150000>; 117 - }; 118 - 119 - opp-1800000000 { 120 - opp-hz = /bits/ 64 <1800000000>; 121 - opp-microvolt = <1050000 1050000 1150000>; 122 - }; 123 - 124 - opp-1992000000 { 125 - opp-hz = /bits/ 64 <1992000000>; 126 - opp-microvolt = <1150000 1150000 1150000>; 127 - }; 21 + qos_sata0: qos@fe190200 { 22 + compatible = "rockchip,rk3568-qos", "syscon"; 23 + reg = <0x0 0xfe190200 0x0 0x20>; 128 24 }; 129 25 130 - firmware { 131 - scmi: scmi { 132 - compatible = "arm,scmi-smc"; 133 - arm,smc-id = <0x82000010>; 134 - shmem = <&scmi_shmem>; 135 - #address-cells = <1>; 136 - #size-cells = <0>; 137 - 138 - scmi_clk: protocol@14 { 139 - reg = <0x14>; 140 - #clock-cells = <1>; 141 - }; 142 - }; 143 - }; 144 - 145 - pmu { 146 - compatible = "arm,cortex-a55-pmu"; 147 - interrupts = <GIC_SPI 228 IRQ_TYPE_LEVEL_HIGH>, 148 - <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>, 149 - <GIC_SPI 230 IRQ_TYPE_LEVEL_HIGH>, 150 - <GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>; 151 - interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; 152 - }; 153 - 154 - psci { 155 - compatible = "arm,psci-1.0"; 156 - method = "smc"; 157 - }; 158 - 159 - timer { 160 - compatible = "arm,armv8-timer"; 161 - interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>, 162 - <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH>, 163 - <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>, 164 - <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH>; 165 - arm,no-tick-in-suspend; 166 - }; 167 - 168 - xin24m: xin24m { 169 - compatible = "fixed-clock"; 170 - clock-frequency = <24000000>; 171 - clock-output-names = "xin24m"; 172 - #clock-cells = <0>; 173 - }; 174 - 175 - xin32k: xin32k { 176 - compatible = "fixed-clock"; 177 - clock-frequency = <32768>; 178 - clock-output-names = "xin32k"; 179 - pinctrl-0 = <&clk32k_out0>; 180 - pinctrl-names = "default"; 181 - #clock-cells = <0>; 182 - }; 183 - 184 - sram@10f000 { 185 - compatible = "mmio-sram"; 186 - reg = <0x0 0x0010f000 0x0 0x100>; 187 - #address-cells = <1>; 188 - #size-cells = <1>; 189 - ranges = <0 0x0 0x0010f000 0x100>; 190 - 191 - scmi_shmem: sram@0 { 192 - compatible = "arm,scmi-shmem"; 193 - reg = <0x0 0x100>; 194 - }; 195 - }; 196 - 197 - gic: interrupt-controller@fd400000 { 198 - compatible = "arm,gic-v3"; 199 - reg = <0x0 0xfd400000 0 0x10000>, /* GICD */ 200 - <0x0 0xfd460000 0 0x80000>; /* GICR */ 201 - interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 202 - interrupt-controller; 203 - #interrupt-cells = <3>; 204 - mbi-alias = <0x0 0xfd100000>; 205 - mbi-ranges = <296 24>; 206 - msi-controller; 207 - }; 208 - 209 - pmugrf: syscon@fdc20000 { 210 - compatible = "rockchip,rk3568-pmugrf", "syscon", "simple-mfd"; 211 - reg = <0x0 0xfdc20000 0x0 0x10000>; 212 - }; 213 - 214 - grf: syscon@fdc60000 { 215 - compatible = "rockchip,rk3568-grf", "syscon", "simple-mfd"; 216 - reg = <0x0 0xfdc60000 0x0 0x10000>; 217 - }; 218 - 219 - pmucru: clock-controller@fdd00000 { 220 - compatible = "rockchip,rk3568-pmucru"; 221 - reg = <0x0 0xfdd00000 0x0 0x1000>; 222 - #clock-cells = <1>; 223 - #reset-cells = <1>; 224 - }; 225 - 226 - cru: clock-controller@fdd20000 { 227 - compatible = "rockchip,rk3568-cru"; 228 - reg = <0x0 0xfdd20000 0x0 0x1000>; 229 - #clock-cells = <1>; 230 - #reset-cells = <1>; 231 - }; 232 - 233 - i2c0: i2c@fdd40000 { 234 - compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c"; 235 - reg = <0x0 0xfdd40000 0x0 0x1000>; 236 - interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; 237 - clocks = <&pmucru CLK_I2C0>, <&pmucru PCLK_I2C0>; 238 - clock-names = "i2c", "pclk"; 239 - pinctrl-0 = <&i2c0_xfer>; 240 - pinctrl-names = "default"; 241 - #address-cells = <1>; 242 - #size-cells = <0>; 243 - status = "disabled"; 244 - }; 245 - 246 - uart0: serial@fdd50000 { 247 - compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart"; 248 - reg = <0x0 0xfdd50000 0x0 0x100>; 249 - interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>; 250 - clocks = <&pmucru SCLK_UART0>, <&pmucru PCLK_UART0>; 251 - clock-names = "baudclk", "apb_pclk"; 252 - dmas = <&dmac0 0>, <&dmac0 1>; 253 - pinctrl-0 = <&uart0_xfer>; 254 - pinctrl-names = "default"; 255 - reg-io-width = <4>; 256 - reg-shift = <2>; 257 - status = "disabled"; 258 - }; 259 - 260 - sdmmc2: mmc@fe000000 { 261 - compatible = "rockchip,rk3568-dw-mshc", "rockchip,rk3288-dw-mshc"; 262 - reg = <0x0 0xfe000000 0x0 0x4000>; 263 - interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; 264 - clocks = <&cru HCLK_SDMMC2>, <&cru CLK_SDMMC2>, 265 - <&cru SCLK_SDMMC2_DRV>, <&cru SCLK_SDMMC2_SAMPLE>; 266 - clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; 267 - fifo-depth = <0x100>; 268 - max-frequency = <150000000>; 269 - resets = <&cru SRST_SDMMC2>; 270 - reset-names = "reset"; 271 - status = "disabled"; 272 - }; 273 - 274 - sdmmc0: mmc@fe2b0000 { 275 - compatible = "rockchip,rk3568-dw-mshc", "rockchip,rk3288-dw-mshc"; 276 - reg = <0x0 0xfe2b0000 0x0 0x4000>; 277 - interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 278 - clocks = <&cru HCLK_SDMMC0>, <&cru CLK_SDMMC0>, 279 - <&cru SCLK_SDMMC0_DRV>, <&cru SCLK_SDMMC0_SAMPLE>; 280 - clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; 281 - fifo-depth = <0x100>; 282 - max-frequency = <150000000>; 283 - resets = <&cru SRST_SDMMC0>; 284 - reset-names = "reset"; 285 - status = "disabled"; 286 - }; 287 - 288 - sdmmc1: mmc@fe2c0000 { 289 - compatible = "rockchip,rk3568-dw-mshc", "rockchip,rk3288-dw-mshc"; 290 - reg = <0x0 0xfe2c0000 0x0 0x4000>; 291 - interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; 292 - clocks = <&cru HCLK_SDMMC1>, <&cru CLK_SDMMC1>, 293 - <&cru SCLK_SDMMC1_DRV>, <&cru SCLK_SDMMC1_SAMPLE>; 294 - clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; 295 - fifo-depth = <0x100>; 296 - max-frequency = <150000000>; 297 - resets = <&cru SRST_SDMMC1>; 298 - reset-names = "reset"; 299 - status = "disabled"; 300 - }; 301 - 302 - sdhci: mmc@fe310000 { 303 - compatible = "rockchip,rk3568-dwcmshc"; 304 - reg = <0x0 0xfe310000 0x0 0x10000>; 305 - interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; 306 - assigned-clocks = <&cru BCLK_EMMC>, <&cru TCLK_EMMC>; 307 - assigned-clock-rates = <200000000>, <24000000>; 308 - clocks = <&cru CCLK_EMMC>, <&cru HCLK_EMMC>, 309 - <&cru ACLK_EMMC>, <&cru BCLK_EMMC>, 310 - <&cru TCLK_EMMC>; 311 - clock-names = "core", "bus", "axi", "block", "timer"; 312 - status = "disabled"; 313 - }; 314 - 315 - dmac0: dmac@fe530000 { 316 - compatible = "arm,pl330", "arm,primecell"; 317 - reg = <0x0 0xfe530000 0x0 0x4000>; 318 - interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>, 319 - <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 320 - arm,pl330-periph-burst; 321 - clocks = <&cru ACLK_BUS>; 322 - clock-names = "apb_pclk"; 323 - #dma-cells = <1>; 324 - }; 325 - 326 - dmac1: dmac@fe550000 { 327 - compatible = "arm,pl330", "arm,primecell"; 328 - reg = <0x0 0xfe550000 0x0 0x4000>; 329 - interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>, 330 - <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; 331 - arm,pl330-periph-burst; 332 - clocks = <&cru ACLK_BUS>; 333 - clock-names = "apb_pclk"; 334 - #dma-cells = <1>; 335 - }; 336 - 337 - i2c1: i2c@fe5a0000 { 338 - compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c"; 339 - reg = <0x0 0xfe5a0000 0x0 0x1000>; 340 - interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>; 341 - clocks = <&cru CLK_I2C1>, <&cru PCLK_I2C1>; 342 - clock-names = "i2c", "pclk"; 343 - pinctrl-0 = <&i2c1_xfer>; 344 - pinctrl-names = "default"; 345 - #address-cells = <1>; 346 - #size-cells = <0>; 347 - status = "disabled"; 348 - }; 349 - 350 - i2c2: i2c@fe5b0000 { 351 - compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c"; 352 - reg = <0x0 0xfe5b0000 0x0 0x1000>; 353 - interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; 354 - clocks = <&cru CLK_I2C2>, <&cru PCLK_I2C2>; 355 - clock-names = "i2c", "pclk"; 356 - pinctrl-0 = <&i2c2m0_xfer>; 357 - pinctrl-names = "default"; 358 - #address-cells = <1>; 359 - #size-cells = <0>; 360 - status = "disabled"; 361 - }; 362 - 363 - i2c3: i2c@fe5c0000 { 364 - compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c"; 365 - reg = <0x0 0xfe5c0000 0x0 0x1000>; 366 - interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>; 367 - clocks = <&cru CLK_I2C3>, <&cru PCLK_I2C3>; 368 - clock-names = "i2c", "pclk"; 369 - pinctrl-0 = <&i2c3m0_xfer>; 370 - pinctrl-names = "default"; 371 - #address-cells = <1>; 372 - #size-cells = <0>; 373 - status = "disabled"; 374 - }; 375 - 376 - i2c4: i2c@fe5d0000 { 377 - compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c"; 378 - reg = <0x0 0xfe5d0000 0x0 0x1000>; 379 - interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; 380 - clocks = <&cru CLK_I2C4>, <&cru PCLK_I2C4>; 381 - clock-names = "i2c", "pclk"; 382 - pinctrl-0 = <&i2c4m0_xfer>; 383 - pinctrl-names = "default"; 384 - #address-cells = <1>; 385 - #size-cells = <0>; 386 - status = "disabled"; 387 - }; 388 - 389 - i2c5: i2c@fe5e0000 { 390 - compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c"; 391 - reg = <0x0 0xfe5e0000 0x0 0x1000>; 392 - interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>; 393 - clocks = <&cru CLK_I2C5>, <&cru PCLK_I2C5>; 394 - clock-names = "i2c", "pclk"; 395 - pinctrl-0 = <&i2c5m0_xfer>; 396 - pinctrl-names = "default"; 397 - #address-cells = <1>; 398 - #size-cells = <0>; 399 - status = "disabled"; 400 - }; 401 - 402 - uart1: serial@fe650000 { 403 - compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart"; 404 - reg = <0x0 0xfe650000 0x0 0x100>; 405 - interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>; 406 - clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>; 407 - clock-names = "baudclk", "apb_pclk"; 408 - dmas = <&dmac0 2>, <&dmac0 3>; 409 - pinctrl-0 = <&uart1m0_xfer>; 410 - pinctrl-names = "default"; 411 - reg-io-width = <4>; 412 - reg-shift = <2>; 413 - status = "disabled"; 414 - }; 415 - 416 - uart2: serial@fe660000 { 417 - compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart"; 418 - reg = <0x0 0xfe660000 0x0 0x100>; 419 - interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>; 420 - clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>; 421 - clock-names = "baudclk", "apb_pclk"; 422 - dmas = <&dmac0 4>, <&dmac0 5>; 423 - pinctrl-0 = <&uart2m0_xfer>; 424 - pinctrl-names = "default"; 425 - reg-io-width = <4>; 426 - reg-shift = <2>; 427 - status = "disabled"; 428 - }; 429 - 430 - uart3: serial@fe670000 { 431 - compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart"; 432 - reg = <0x0 0xfe670000 0x0 0x100>; 433 - interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; 434 - clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>; 435 - clock-names = "baudclk", "apb_pclk"; 436 - dmas = <&dmac0 6>, <&dmac0 7>; 437 - pinctrl-0 = <&uart3m0_xfer>; 438 - pinctrl-names = "default"; 439 - reg-io-width = <4>; 440 - reg-shift = <2>; 441 - status = "disabled"; 442 - }; 443 - 444 - uart4: serial@fe680000 { 445 - compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart"; 446 - reg = <0x0 0xfe680000 0x0 0x100>; 447 - interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; 448 - clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>; 449 - clock-names = "baudclk", "apb_pclk"; 450 - dmas = <&dmac0 8>, <&dmac0 9>; 451 - pinctrl-0 = <&uart4m0_xfer>; 452 - pinctrl-names = "default"; 453 - reg-io-width = <4>; 454 - reg-shift = <2>; 455 - status = "disabled"; 456 - }; 457 - 458 - uart5: serial@fe690000 { 459 - compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart"; 460 - reg = <0x0 0xfe690000 0x0 0x100>; 461 - interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>; 462 - clocks = <&cru SCLK_UART5>, <&cru PCLK_UART5>; 463 - clock-names = "baudclk", "apb_pclk"; 464 - dmas = <&dmac0 10>, <&dmac0 11>; 465 - pinctrl-0 = <&uart5m0_xfer>; 466 - pinctrl-names = "default"; 467 - reg-io-width = <4>; 468 - reg-shift = <2>; 469 - status = "disabled"; 470 - }; 471 - 472 - uart6: serial@fe6a0000 { 473 - compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart"; 474 - reg = <0x0 0xfe6a0000 0x0 0x100>; 475 - interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>; 476 - clocks = <&cru SCLK_UART6>, <&cru PCLK_UART6>; 477 - clock-names = "baudclk", "apb_pclk"; 478 - dmas = <&dmac0 12>, <&dmac0 13>; 479 - pinctrl-0 = <&uart6m0_xfer>; 480 - pinctrl-names = "default"; 481 - reg-io-width = <4>; 482 - reg-shift = <2>; 483 - status = "disabled"; 484 - }; 485 - 486 - uart7: serial@fe6b0000 { 487 - compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart"; 488 - reg = <0x0 0xfe6b0000 0x0 0x100>; 489 - interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>; 490 - clocks = <&cru SCLK_UART7>, <&cru PCLK_UART7>; 491 - clock-names = "baudclk", "apb_pclk"; 492 - dmas = <&dmac0 14>, <&dmac0 15>; 493 - pinctrl-0 = <&uart7m0_xfer>; 494 - pinctrl-names = "default"; 495 - reg-io-width = <4>; 496 - reg-shift = <2>; 497 - status = "disabled"; 498 - }; 499 - 500 - uart8: serial@fe6c0000 { 501 - compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart"; 502 - reg = <0x0 0xfe6c0000 0x0 0x100>; 503 - interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>; 504 - clocks = <&cru SCLK_UART8>, <&cru PCLK_UART8>; 505 - clock-names = "baudclk", "apb_pclk"; 506 - dmas = <&dmac0 16>, <&dmac0 17>; 507 - pinctrl-0 = <&uart8m0_xfer>; 508 - pinctrl-names = "default"; 509 - reg-io-width = <4>; 510 - reg-shift = <2>; 511 - status = "disabled"; 512 - }; 513 - 514 - uart9: serial@fe6d0000 { 515 - compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart"; 516 - reg = <0x0 0xfe6d0000 0x0 0x100>; 517 - interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>; 518 - clocks = <&cru SCLK_UART9>, <&cru PCLK_UART9>; 519 - clock-names = "baudclk", "apb_pclk"; 520 - dmas = <&dmac0 18>, <&dmac0 19>; 521 - pinctrl-0 = <&uart9m0_xfer>; 522 - pinctrl-names = "default"; 523 - reg-io-width = <4>; 524 - reg-shift = <2>; 525 - status = "disabled"; 526 - }; 527 - 528 - pinctrl: pinctrl { 529 - compatible = "rockchip,rk3568-pinctrl"; 26 + gmac0: ethernet@fe2a0000 { 27 + compatible = "rockchip,rk3568-gmac", "snps,dwmac-4.20a"; 28 + reg = <0x0 0xfe2a0000 0x0 0x10000>; 29 + interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>, 30 + <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; 31 + interrupt-names = "macirq", "eth_wake_irq"; 32 + clocks = <&cru SCLK_GMAC0>, <&cru SCLK_GMAC0_RX_TX>, 33 + <&cru SCLK_GMAC0_RX_TX>, <&cru CLK_MAC0_REFOUT>, 34 + <&cru ACLK_GMAC0>, <&cru PCLK_GMAC0>, 35 + <&cru SCLK_GMAC0_RX_TX>, <&cru CLK_GMAC0_PTP_REF>, 36 + <&cru PCLK_XPCS>; 37 + clock-names = "stmmaceth", "mac_clk_rx", 38 + "mac_clk_tx", "clk_mac_refout", 39 + "aclk_mac", "pclk_mac", 40 + "clk_mac_speed", "ptp_ref", 41 + "pclk_xpcs"; 42 + resets = <&cru SRST_A_GMAC0>; 43 + reset-names = "stmmaceth"; 530 44 rockchip,grf = <&grf>; 531 - rockchip,pmu = <&pmugrf>; 532 - #address-cells = <2>; 533 - #size-cells = <2>; 534 - ranges; 45 + snps,axi-config = <&gmac0_stmmac_axi_setup>; 46 + snps,mixed-burst; 47 + snps,mtl-rx-config = <&gmac0_mtl_rx_setup>; 48 + snps,mtl-tx-config = <&gmac0_mtl_tx_setup>; 49 + snps,tso; 50 + status = "disabled"; 535 51 536 - gpio0: gpio@fdd60000 { 537 - compatible = "rockchip,gpio-bank"; 538 - reg = <0x0 0xfdd60000 0x0 0x100>; 539 - interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; 540 - clocks = <&pmucru PCLK_GPIO0>; 541 - gpio-controller; 542 - #gpio-cells = <2>; 543 - interrupt-controller; 544 - #interrupt-cells = <2>; 52 + mdio0: mdio { 53 + compatible = "snps,dwmac-mdio"; 54 + #address-cells = <0x1>; 55 + #size-cells = <0x0>; 545 56 }; 546 57 547 - gpio1: gpio@fe740000 { 548 - compatible = "rockchip,gpio-bank"; 549 - reg = <0x0 0xfe740000 0x0 0x100>; 550 - interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; 551 - clocks = <&cru PCLK_GPIO1>; 552 - gpio-controller; 553 - #gpio-cells = <2>; 554 - interrupt-controller; 555 - #interrupt-cells = <2>; 58 + gmac0_stmmac_axi_setup: stmmac-axi-config { 59 + snps,blen = <0 0 0 0 16 8 4>; 60 + snps,rd_osr_lmt = <8>; 61 + snps,wr_osr_lmt = <4>; 556 62 }; 557 63 558 - gpio2: gpio@fe750000 { 559 - compatible = "rockchip,gpio-bank"; 560 - reg = <0x0 0xfe750000 0x0 0x100>; 561 - interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; 562 - clocks = <&cru PCLK_GPIO2>; 563 - gpio-controller; 564 - #gpio-cells = <2>; 565 - interrupt-controller; 566 - #interrupt-cells = <2>; 64 + gmac0_mtl_rx_setup: rx-queues-config { 65 + snps,rx-queues-to-use = <1>; 66 + queue0 {}; 567 67 }; 568 68 569 - gpio3: gpio@fe760000 { 570 - compatible = "rockchip,gpio-bank"; 571 - reg = <0x0 0xfe760000 0x0 0x100>; 572 - interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 573 - clocks = <&cru PCLK_GPIO3>; 574 - gpio-controller; 575 - #gpio-cells = <2>; 576 - interrupt-controller; 577 - #interrupt-cells = <2>; 578 - }; 579 - 580 - gpio4: gpio@fe770000 { 581 - compatible = "rockchip,gpio-bank"; 582 - reg = <0x0 0xfe770000 0x0 0x100>; 583 - interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 584 - clocks = <&cru PCLK_GPIO4>; 585 - gpio-controller; 586 - #gpio-cells = <2>; 587 - interrupt-controller; 588 - #interrupt-cells = <2>; 69 + gmac0_mtl_tx_setup: tx-queues-config { 70 + snps,tx-queues-to-use = <1>; 71 + queue0 {}; 589 72 }; 590 73 }; 591 74 }; 592 75 593 - #include "rk3568-pinctrl.dtsi" 76 + &cpu0_opp_table { 77 + opp-1992000000 { 78 + opp-hz = /bits/ 64 <1992000000>; 79 + opp-microvolt = <1150000 1150000 1150000>; 80 + }; 81 + }; 82 + 83 + &power { 84 + power-domain@RK3568_PD_PIPE { 85 + reg = <RK3568_PD_PIPE>; 86 + clocks = <&cru PCLK_PIPE>; 87 + pm_qos = <&qos_pcie2x1>, 88 + <&qos_pcie3x1>, 89 + <&qos_pcie3x2>, 90 + <&qos_sata0>, 91 + <&qos_sata1>, 92 + <&qos_sata2>, 93 + <&qos_usb3_0>, 94 + <&qos_usb3_1>; 95 + #power-domain-cells = <0>; 96 + }; 97 + };
+931
arch/arm64/boot/dts/rockchip/rk356x.dtsi
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 + /* 3 + * Copyright (c) 2021 Rockchip Electronics Co., Ltd. 4 + */ 5 + 6 + #include <dt-bindings/clock/rk3568-cru.h> 7 + #include <dt-bindings/interrupt-controller/arm-gic.h> 8 + #include <dt-bindings/interrupt-controller/irq.h> 9 + #include <dt-bindings/phy/phy.h> 10 + #include <dt-bindings/pinctrl/rockchip.h> 11 + #include <dt-bindings/power/rk3568-power.h> 12 + #include <dt-bindings/soc/rockchip,boot-mode.h> 13 + #include <dt-bindings/thermal/thermal.h> 14 + 15 + / { 16 + interrupt-parent = <&gic>; 17 + #address-cells = <2>; 18 + #size-cells = <2>; 19 + 20 + aliases { 21 + gpio0 = &gpio0; 22 + gpio1 = &gpio1; 23 + gpio2 = &gpio2; 24 + gpio3 = &gpio3; 25 + gpio4 = &gpio4; 26 + i2c0 = &i2c0; 27 + i2c1 = &i2c1; 28 + i2c2 = &i2c2; 29 + i2c3 = &i2c3; 30 + i2c4 = &i2c4; 31 + i2c5 = &i2c5; 32 + serial0 = &uart0; 33 + serial1 = &uart1; 34 + serial2 = &uart2; 35 + serial3 = &uart3; 36 + serial4 = &uart4; 37 + serial5 = &uart5; 38 + serial6 = &uart6; 39 + serial7 = &uart7; 40 + serial8 = &uart8; 41 + serial9 = &uart9; 42 + }; 43 + 44 + cpus { 45 + #address-cells = <2>; 46 + #size-cells = <0>; 47 + 48 + cpu0: cpu@0 { 49 + device_type = "cpu"; 50 + compatible = "arm,cortex-a55"; 51 + reg = <0x0 0x0>; 52 + clocks = <&scmi_clk 0>; 53 + #cooling-cells = <2>; 54 + enable-method = "psci"; 55 + operating-points-v2 = <&cpu0_opp_table>; 56 + }; 57 + 58 + cpu1: cpu@100 { 59 + device_type = "cpu"; 60 + compatible = "arm,cortex-a55"; 61 + reg = <0x0 0x100>; 62 + #cooling-cells = <2>; 63 + enable-method = "psci"; 64 + operating-points-v2 = <&cpu0_opp_table>; 65 + }; 66 + 67 + cpu2: cpu@200 { 68 + device_type = "cpu"; 69 + compatible = "arm,cortex-a55"; 70 + reg = <0x0 0x200>; 71 + #cooling-cells = <2>; 72 + enable-method = "psci"; 73 + operating-points-v2 = <&cpu0_opp_table>; 74 + }; 75 + 76 + cpu3: cpu@300 { 77 + device_type = "cpu"; 78 + compatible = "arm,cortex-a55"; 79 + reg = <0x0 0x300>; 80 + #cooling-cells = <2>; 81 + enable-method = "psci"; 82 + operating-points-v2 = <&cpu0_opp_table>; 83 + }; 84 + }; 85 + 86 + cpu0_opp_table: opp-table-0 { 87 + compatible = "operating-points-v2"; 88 + opp-shared; 89 + 90 + opp-408000000 { 91 + opp-hz = /bits/ 64 <408000000>; 92 + opp-microvolt = <900000 900000 1150000>; 93 + clock-latency-ns = <40000>; 94 + }; 95 + 96 + opp-600000000 { 97 + opp-hz = /bits/ 64 <600000000>; 98 + opp-microvolt = <900000 900000 1150000>; 99 + }; 100 + 101 + opp-816000000 { 102 + opp-hz = /bits/ 64 <816000000>; 103 + opp-microvolt = <900000 900000 1150000>; 104 + opp-suspend; 105 + }; 106 + 107 + opp-1104000000 { 108 + opp-hz = /bits/ 64 <1104000000>; 109 + opp-microvolt = <900000 900000 1150000>; 110 + }; 111 + 112 + opp-1416000000 { 113 + opp-hz = /bits/ 64 <1416000000>; 114 + opp-microvolt = <900000 900000 1150000>; 115 + }; 116 + 117 + opp-1608000000 { 118 + opp-hz = /bits/ 64 <1608000000>; 119 + opp-microvolt = <975000 975000 1150000>; 120 + }; 121 + 122 + opp-1800000000 { 123 + opp-hz = /bits/ 64 <1800000000>; 124 + opp-microvolt = <1050000 1050000 1150000>; 125 + }; 126 + }; 127 + 128 + firmware { 129 + scmi: scmi { 130 + compatible = "arm,scmi-smc"; 131 + arm,smc-id = <0x82000010>; 132 + shmem = <&scmi_shmem>; 133 + #address-cells = <1>; 134 + #size-cells = <0>; 135 + 136 + scmi_clk: protocol@14 { 137 + reg = <0x14>; 138 + #clock-cells = <1>; 139 + }; 140 + }; 141 + }; 142 + 143 + pmu { 144 + compatible = "arm,cortex-a55-pmu"; 145 + interrupts = <GIC_SPI 228 IRQ_TYPE_LEVEL_HIGH>, 146 + <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>, 147 + <GIC_SPI 230 IRQ_TYPE_LEVEL_HIGH>, 148 + <GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>; 149 + interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; 150 + }; 151 + 152 + psci { 153 + compatible = "arm,psci-1.0"; 154 + method = "smc"; 155 + }; 156 + 157 + timer { 158 + compatible = "arm,armv8-timer"; 159 + interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>, 160 + <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH>, 161 + <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>, 162 + <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH>; 163 + arm,no-tick-in-suspend; 164 + }; 165 + 166 + xin24m: xin24m { 167 + compatible = "fixed-clock"; 168 + clock-frequency = <24000000>; 169 + clock-output-names = "xin24m"; 170 + #clock-cells = <0>; 171 + }; 172 + 173 + xin32k: xin32k { 174 + compatible = "fixed-clock"; 175 + clock-frequency = <32768>; 176 + clock-output-names = "xin32k"; 177 + pinctrl-0 = <&clk32k_out0>; 178 + pinctrl-names = "default"; 179 + #clock-cells = <0>; 180 + }; 181 + 182 + sram@10f000 { 183 + compatible = "mmio-sram"; 184 + reg = <0x0 0x0010f000 0x0 0x100>; 185 + #address-cells = <1>; 186 + #size-cells = <1>; 187 + ranges = <0 0x0 0x0010f000 0x100>; 188 + 189 + scmi_shmem: sram@0 { 190 + compatible = "arm,scmi-shmem"; 191 + reg = <0x0 0x100>; 192 + }; 193 + }; 194 + 195 + gic: interrupt-controller@fd400000 { 196 + compatible = "arm,gic-v3"; 197 + reg = <0x0 0xfd400000 0 0x10000>, /* GICD */ 198 + <0x0 0xfd460000 0 0x80000>; /* GICR */ 199 + interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 200 + interrupt-controller; 201 + #interrupt-cells = <3>; 202 + mbi-alias = <0x0 0xfd410000>; 203 + mbi-ranges = <296 24>; 204 + msi-controller; 205 + }; 206 + 207 + pmugrf: syscon@fdc20000 { 208 + compatible = "rockchip,rk3568-pmugrf", "syscon", "simple-mfd"; 209 + reg = <0x0 0xfdc20000 0x0 0x10000>; 210 + 211 + pmu_io_domains: io-domains { 212 + compatible = "rockchip,rk3568-pmu-io-voltage-domain"; 213 + status = "disabled"; 214 + }; 215 + }; 216 + 217 + grf: syscon@fdc60000 { 218 + compatible = "rockchip,rk3568-grf", "syscon", "simple-mfd"; 219 + reg = <0x0 0xfdc60000 0x0 0x10000>; 220 + }; 221 + 222 + pmucru: clock-controller@fdd00000 { 223 + compatible = "rockchip,rk3568-pmucru"; 224 + reg = <0x0 0xfdd00000 0x0 0x1000>; 225 + #clock-cells = <1>; 226 + #reset-cells = <1>; 227 + }; 228 + 229 + cru: clock-controller@fdd20000 { 230 + compatible = "rockchip,rk3568-cru"; 231 + reg = <0x0 0xfdd20000 0x0 0x1000>; 232 + #clock-cells = <1>; 233 + #reset-cells = <1>; 234 + assigned-clocks = <&cru PLL_GPLL>, <&pmucru PLL_PPLL>; 235 + assigned-clock-rates = <1200000000>, <200000000>; 236 + rockchip,grf = <&grf>; 237 + }; 238 + 239 + i2c0: i2c@fdd40000 { 240 + compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c"; 241 + reg = <0x0 0xfdd40000 0x0 0x1000>; 242 + interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; 243 + clocks = <&pmucru CLK_I2C0>, <&pmucru PCLK_I2C0>; 244 + clock-names = "i2c", "pclk"; 245 + pinctrl-0 = <&i2c0_xfer>; 246 + pinctrl-names = "default"; 247 + #address-cells = <1>; 248 + #size-cells = <0>; 249 + status = "disabled"; 250 + }; 251 + 252 + uart0: serial@fdd50000 { 253 + compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart"; 254 + reg = <0x0 0xfdd50000 0x0 0x100>; 255 + interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>; 256 + clocks = <&pmucru SCLK_UART0>, <&pmucru PCLK_UART0>; 257 + clock-names = "baudclk", "apb_pclk"; 258 + dmas = <&dmac0 0>, <&dmac0 1>; 259 + pinctrl-0 = <&uart0_xfer>; 260 + pinctrl-names = "default"; 261 + reg-io-width = <4>; 262 + reg-shift = <2>; 263 + status = "disabled"; 264 + }; 265 + 266 + pmu: power-management@fdd90000 { 267 + compatible = "rockchip,rk3568-pmu", "syscon", "simple-mfd"; 268 + reg = <0x0 0xfdd90000 0x0 0x1000>; 269 + 270 + power: power-controller { 271 + compatible = "rockchip,rk3568-power-controller"; 272 + #power-domain-cells = <1>; 273 + #address-cells = <1>; 274 + #size-cells = <0>; 275 + 276 + /* These power domains are grouped by VD_GPU */ 277 + power-domain@RK3568_PD_GPU { 278 + reg = <RK3568_PD_GPU>; 279 + clocks = <&cru ACLK_GPU_PRE>, 280 + <&cru PCLK_GPU_PRE>; 281 + pm_qos = <&qos_gpu>; 282 + #power-domain-cells = <0>; 283 + }; 284 + 285 + /* These power domains are grouped by VD_LOGIC */ 286 + power-domain@RK3568_PD_VI { 287 + reg = <RK3568_PD_VI>; 288 + clocks = <&cru HCLK_VI>, 289 + <&cru PCLK_VI>; 290 + pm_qos = <&qos_isp>, 291 + <&qos_vicap0>, 292 + <&qos_vicap1>; 293 + #power-domain-cells = <0>; 294 + }; 295 + 296 + power-domain@RK3568_PD_VO { 297 + reg = <RK3568_PD_VO>; 298 + clocks = <&cru HCLK_VO>, 299 + <&cru PCLK_VO>, 300 + <&cru ACLK_VOP_PRE>; 301 + pm_qos = <&qos_hdcp>, 302 + <&qos_vop_m0>, 303 + <&qos_vop_m1>; 304 + #power-domain-cells = <0>; 305 + }; 306 + 307 + power-domain@RK3568_PD_RGA { 308 + reg = <RK3568_PD_RGA>; 309 + clocks = <&cru HCLK_RGA_PRE>, 310 + <&cru PCLK_RGA_PRE>; 311 + pm_qos = <&qos_ebc>, 312 + <&qos_iep>, 313 + <&qos_jpeg_dec>, 314 + <&qos_jpeg_enc>, 315 + <&qos_rga_rd>, 316 + <&qos_rga_wr>; 317 + #power-domain-cells = <0>; 318 + }; 319 + 320 + power-domain@RK3568_PD_VPU { 321 + reg = <RK3568_PD_VPU>; 322 + clocks = <&cru HCLK_VPU_PRE>; 323 + pm_qos = <&qos_vpu>; 324 + #power-domain-cells = <0>; 325 + }; 326 + 327 + power-domain@RK3568_PD_RKVDEC { 328 + clocks = <&cru HCLK_RKVDEC_PRE>; 329 + reg = <RK3568_PD_RKVDEC>; 330 + pm_qos = <&qos_rkvdec>; 331 + #power-domain-cells = <0>; 332 + }; 333 + 334 + power-domain@RK3568_PD_RKVENC { 335 + reg = <RK3568_PD_RKVENC>; 336 + clocks = <&cru HCLK_RKVENC_PRE>; 337 + pm_qos = <&qos_rkvenc_rd_m0>, 338 + <&qos_rkvenc_rd_m1>, 339 + <&qos_rkvenc_wr_m0>; 340 + #power-domain-cells = <0>; 341 + }; 342 + }; 343 + }; 344 + 345 + sdmmc2: mmc@fe000000 { 346 + compatible = "rockchip,rk3568-dw-mshc", "rockchip,rk3288-dw-mshc"; 347 + reg = <0x0 0xfe000000 0x0 0x4000>; 348 + interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; 349 + clocks = <&cru HCLK_SDMMC2>, <&cru CLK_SDMMC2>, 350 + <&cru SCLK_SDMMC2_DRV>, <&cru SCLK_SDMMC2_SAMPLE>; 351 + clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; 352 + fifo-depth = <0x100>; 353 + max-frequency = <150000000>; 354 + resets = <&cru SRST_SDMMC2>; 355 + reset-names = "reset"; 356 + status = "disabled"; 357 + }; 358 + 359 + gmac1: ethernet@fe010000 { 360 + compatible = "rockchip,rk3568-gmac", "snps,dwmac-4.20a"; 361 + reg = <0x0 0xfe010000 0x0 0x10000>; 362 + interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>, 363 + <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 364 + interrupt-names = "macirq", "eth_wake_irq"; 365 + clocks = <&cru SCLK_GMAC1>, <&cru SCLK_GMAC1_RX_TX>, 366 + <&cru SCLK_GMAC1_RX_TX>, <&cru CLK_MAC1_REFOUT>, 367 + <&cru ACLK_GMAC1>, <&cru PCLK_GMAC1>, 368 + <&cru SCLK_GMAC1_RX_TX>, <&cru CLK_GMAC1_PTP_REF>; 369 + clock-names = "stmmaceth", "mac_clk_rx", 370 + "mac_clk_tx", "clk_mac_refout", 371 + "aclk_mac", "pclk_mac", 372 + "clk_mac_speed", "ptp_ref"; 373 + resets = <&cru SRST_A_GMAC1>; 374 + reset-names = "stmmaceth"; 375 + rockchip,grf = <&grf>; 376 + snps,axi-config = <&gmac1_stmmac_axi_setup>; 377 + snps,mixed-burst; 378 + snps,mtl-rx-config = <&gmac1_mtl_rx_setup>; 379 + snps,mtl-tx-config = <&gmac1_mtl_tx_setup>; 380 + snps,tso; 381 + status = "disabled"; 382 + 383 + mdio1: mdio { 384 + compatible = "snps,dwmac-mdio"; 385 + #address-cells = <0x1>; 386 + #size-cells = <0x0>; 387 + }; 388 + 389 + gmac1_stmmac_axi_setup: stmmac-axi-config { 390 + snps,blen = <0 0 0 0 16 8 4>; 391 + snps,rd_osr_lmt = <8>; 392 + snps,wr_osr_lmt = <4>; 393 + }; 394 + 395 + gmac1_mtl_rx_setup: rx-queues-config { 396 + snps,rx-queues-to-use = <1>; 397 + queue0 {}; 398 + }; 399 + 400 + gmac1_mtl_tx_setup: tx-queues-config { 401 + snps,tx-queues-to-use = <1>; 402 + queue0 {}; 403 + }; 404 + }; 405 + 406 + qos_gpu: qos@fe128000 { 407 + compatible = "rockchip,rk3568-qos", "syscon"; 408 + reg = <0x0 0xfe128000 0x0 0x20>; 409 + }; 410 + 411 + qos_rkvenc_rd_m0: qos@fe138080 { 412 + compatible = "rockchip,rk3568-qos", "syscon"; 413 + reg = <0x0 0xfe138080 0x0 0x20>; 414 + }; 415 + 416 + qos_rkvenc_rd_m1: qos@fe138100 { 417 + compatible = "rockchip,rk3568-qos", "syscon"; 418 + reg = <0x0 0xfe138100 0x0 0x20>; 419 + }; 420 + 421 + qos_rkvenc_wr_m0: qos@fe138180 { 422 + compatible = "rockchip,rk3568-qos", "syscon"; 423 + reg = <0x0 0xfe138180 0x0 0x20>; 424 + }; 425 + 426 + qos_isp: qos@fe148000 { 427 + compatible = "rockchip,rk3568-qos", "syscon"; 428 + reg = <0x0 0xfe148000 0x0 0x20>; 429 + }; 430 + 431 + qos_vicap0: qos@fe148080 { 432 + compatible = "rockchip,rk3568-qos", "syscon"; 433 + reg = <0x0 0xfe148080 0x0 0x20>; 434 + }; 435 + 436 + qos_vicap1: qos@fe148100 { 437 + compatible = "rockchip,rk3568-qos", "syscon"; 438 + reg = <0x0 0xfe148100 0x0 0x20>; 439 + }; 440 + 441 + qos_vpu: qos@fe150000 { 442 + compatible = "rockchip,rk3568-qos", "syscon"; 443 + reg = <0x0 0xfe150000 0x0 0x20>; 444 + }; 445 + 446 + qos_ebc: qos@fe158000 { 447 + compatible = "rockchip,rk3568-qos", "syscon"; 448 + reg = <0x0 0xfe158000 0x0 0x20>; 449 + }; 450 + 451 + qos_iep: qos@fe158100 { 452 + compatible = "rockchip,rk3568-qos", "syscon"; 453 + reg = <0x0 0xfe158100 0x0 0x20>; 454 + }; 455 + 456 + qos_jpeg_dec: qos@fe158180 { 457 + compatible = "rockchip,rk3568-qos", "syscon"; 458 + reg = <0x0 0xfe158180 0x0 0x20>; 459 + }; 460 + 461 + qos_jpeg_enc: qos@fe158200 { 462 + compatible = "rockchip,rk3568-qos", "syscon"; 463 + reg = <0x0 0xfe158200 0x0 0x20>; 464 + }; 465 + 466 + qos_rga_rd: qos@fe158280 { 467 + compatible = "rockchip,rk3568-qos", "syscon"; 468 + reg = <0x0 0xfe158280 0x0 0x20>; 469 + }; 470 + 471 + qos_rga_wr: qos@fe158300 { 472 + compatible = "rockchip,rk3568-qos", "syscon"; 473 + reg = <0x0 0xfe158300 0x0 0x20>; 474 + }; 475 + 476 + qos_npu: qos@fe180000 { 477 + compatible = "rockchip,rk3568-qos", "syscon"; 478 + reg = <0x0 0xfe180000 0x0 0x20>; 479 + }; 480 + 481 + qos_pcie2x1: qos@fe190000 { 482 + compatible = "rockchip,rk3568-qos", "syscon"; 483 + reg = <0x0 0xfe190000 0x0 0x20>; 484 + }; 485 + 486 + qos_sata1: qos@fe190280 { 487 + compatible = "rockchip,rk3568-qos", "syscon"; 488 + reg = <0x0 0xfe190280 0x0 0x20>; 489 + }; 490 + 491 + qos_sata2: qos@fe190300 { 492 + compatible = "rockchip,rk3568-qos", "syscon"; 493 + reg = <0x0 0xfe190300 0x0 0x20>; 494 + }; 495 + 496 + qos_usb3_0: qos@fe190380 { 497 + compatible = "rockchip,rk3568-qos", "syscon"; 498 + reg = <0x0 0xfe190380 0x0 0x20>; 499 + }; 500 + 501 + qos_usb3_1: qos@fe190400 { 502 + compatible = "rockchip,rk3568-qos", "syscon"; 503 + reg = <0x0 0xfe190400 0x0 0x20>; 504 + }; 505 + 506 + qos_rkvdec: qos@fe198000 { 507 + compatible = "rockchip,rk3568-qos", "syscon"; 508 + reg = <0x0 0xfe198000 0x0 0x20>; 509 + }; 510 + 511 + qos_hdcp: qos@fe1a8000 { 512 + compatible = "rockchip,rk3568-qos", "syscon"; 513 + reg = <0x0 0xfe1a8000 0x0 0x20>; 514 + }; 515 + 516 + qos_vop_m0: qos@fe1a8080 { 517 + compatible = "rockchip,rk3568-qos", "syscon"; 518 + reg = <0x0 0xfe1a8080 0x0 0x20>; 519 + }; 520 + 521 + qos_vop_m1: qos@fe1a8100 { 522 + compatible = "rockchip,rk3568-qos", "syscon"; 523 + reg = <0x0 0xfe1a8100 0x0 0x20>; 524 + }; 525 + 526 + sdmmc0: mmc@fe2b0000 { 527 + compatible = "rockchip,rk3568-dw-mshc", "rockchip,rk3288-dw-mshc"; 528 + reg = <0x0 0xfe2b0000 0x0 0x4000>; 529 + interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 530 + clocks = <&cru HCLK_SDMMC0>, <&cru CLK_SDMMC0>, 531 + <&cru SCLK_SDMMC0_DRV>, <&cru SCLK_SDMMC0_SAMPLE>; 532 + clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; 533 + fifo-depth = <0x100>; 534 + max-frequency = <150000000>; 535 + resets = <&cru SRST_SDMMC0>; 536 + reset-names = "reset"; 537 + status = "disabled"; 538 + }; 539 + 540 + sdmmc1: mmc@fe2c0000 { 541 + compatible = "rockchip,rk3568-dw-mshc", "rockchip,rk3288-dw-mshc"; 542 + reg = <0x0 0xfe2c0000 0x0 0x4000>; 543 + interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; 544 + clocks = <&cru HCLK_SDMMC1>, <&cru CLK_SDMMC1>, 545 + <&cru SCLK_SDMMC1_DRV>, <&cru SCLK_SDMMC1_SAMPLE>; 546 + clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; 547 + fifo-depth = <0x100>; 548 + max-frequency = <150000000>; 549 + resets = <&cru SRST_SDMMC1>; 550 + reset-names = "reset"; 551 + status = "disabled"; 552 + }; 553 + 554 + sdhci: mmc@fe310000 { 555 + compatible = "rockchip,rk3568-dwcmshc"; 556 + reg = <0x0 0xfe310000 0x0 0x10000>; 557 + interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; 558 + assigned-clocks = <&cru BCLK_EMMC>, <&cru TCLK_EMMC>; 559 + assigned-clock-rates = <200000000>, <24000000>; 560 + clocks = <&cru CCLK_EMMC>, <&cru HCLK_EMMC>, 561 + <&cru ACLK_EMMC>, <&cru BCLK_EMMC>, 562 + <&cru TCLK_EMMC>; 563 + clock-names = "core", "bus", "axi", "block", "timer"; 564 + status = "disabled"; 565 + }; 566 + 567 + dmac0: dmac@fe530000 { 568 + compatible = "arm,pl330", "arm,primecell"; 569 + reg = <0x0 0xfe530000 0x0 0x4000>; 570 + interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>, 571 + <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 572 + arm,pl330-periph-burst; 573 + clocks = <&cru ACLK_BUS>; 574 + clock-names = "apb_pclk"; 575 + #dma-cells = <1>; 576 + }; 577 + 578 + dmac1: dmac@fe550000 { 579 + compatible = "arm,pl330", "arm,primecell"; 580 + reg = <0x0 0xfe550000 0x0 0x4000>; 581 + interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>, 582 + <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; 583 + arm,pl330-periph-burst; 584 + clocks = <&cru ACLK_BUS>; 585 + clock-names = "apb_pclk"; 586 + #dma-cells = <1>; 587 + }; 588 + 589 + i2c1: i2c@fe5a0000 { 590 + compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c"; 591 + reg = <0x0 0xfe5a0000 0x0 0x1000>; 592 + interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>; 593 + clocks = <&cru CLK_I2C1>, <&cru PCLK_I2C1>; 594 + clock-names = "i2c", "pclk"; 595 + pinctrl-0 = <&i2c1_xfer>; 596 + pinctrl-names = "default"; 597 + #address-cells = <1>; 598 + #size-cells = <0>; 599 + status = "disabled"; 600 + }; 601 + 602 + i2c2: i2c@fe5b0000 { 603 + compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c"; 604 + reg = <0x0 0xfe5b0000 0x0 0x1000>; 605 + interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; 606 + clocks = <&cru CLK_I2C2>, <&cru PCLK_I2C2>; 607 + clock-names = "i2c", "pclk"; 608 + pinctrl-0 = <&i2c2m0_xfer>; 609 + pinctrl-names = "default"; 610 + #address-cells = <1>; 611 + #size-cells = <0>; 612 + status = "disabled"; 613 + }; 614 + 615 + i2c3: i2c@fe5c0000 { 616 + compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c"; 617 + reg = <0x0 0xfe5c0000 0x0 0x1000>; 618 + interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>; 619 + clocks = <&cru CLK_I2C3>, <&cru PCLK_I2C3>; 620 + clock-names = "i2c", "pclk"; 621 + pinctrl-0 = <&i2c3m0_xfer>; 622 + pinctrl-names = "default"; 623 + #address-cells = <1>; 624 + #size-cells = <0>; 625 + status = "disabled"; 626 + }; 627 + 628 + i2c4: i2c@fe5d0000 { 629 + compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c"; 630 + reg = <0x0 0xfe5d0000 0x0 0x1000>; 631 + interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; 632 + clocks = <&cru CLK_I2C4>, <&cru PCLK_I2C4>; 633 + clock-names = "i2c", "pclk"; 634 + pinctrl-0 = <&i2c4m0_xfer>; 635 + pinctrl-names = "default"; 636 + #address-cells = <1>; 637 + #size-cells = <0>; 638 + status = "disabled"; 639 + }; 640 + 641 + i2c5: i2c@fe5e0000 { 642 + compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c"; 643 + reg = <0x0 0xfe5e0000 0x0 0x1000>; 644 + interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>; 645 + clocks = <&cru CLK_I2C5>, <&cru PCLK_I2C5>; 646 + clock-names = "i2c", "pclk"; 647 + pinctrl-0 = <&i2c5m0_xfer>; 648 + pinctrl-names = "default"; 649 + #address-cells = <1>; 650 + #size-cells = <0>; 651 + status = "disabled"; 652 + }; 653 + 654 + wdt: watchdog@fe600000 { 655 + compatible = "rockchip,rk3568-wdt", "snps,dw-wdt"; 656 + reg = <0x0 0xfe600000 0x0 0x100>; 657 + interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>; 658 + clocks = <&cru TCLK_WDT_NS>, <&cru PCLK_WDT_NS>; 659 + clock-names = "tclk", "pclk"; 660 + }; 661 + 662 + uart1: serial@fe650000 { 663 + compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart"; 664 + reg = <0x0 0xfe650000 0x0 0x100>; 665 + interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>; 666 + clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>; 667 + clock-names = "baudclk", "apb_pclk"; 668 + dmas = <&dmac0 2>, <&dmac0 3>; 669 + pinctrl-0 = <&uart1m0_xfer>; 670 + pinctrl-names = "default"; 671 + reg-io-width = <4>; 672 + reg-shift = <2>; 673 + status = "disabled"; 674 + }; 675 + 676 + uart2: serial@fe660000 { 677 + compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart"; 678 + reg = <0x0 0xfe660000 0x0 0x100>; 679 + interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>; 680 + clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>; 681 + clock-names = "baudclk", "apb_pclk"; 682 + dmas = <&dmac0 4>, <&dmac0 5>; 683 + pinctrl-0 = <&uart2m0_xfer>; 684 + pinctrl-names = "default"; 685 + reg-io-width = <4>; 686 + reg-shift = <2>; 687 + status = "disabled"; 688 + }; 689 + 690 + uart3: serial@fe670000 { 691 + compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart"; 692 + reg = <0x0 0xfe670000 0x0 0x100>; 693 + interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; 694 + clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>; 695 + clock-names = "baudclk", "apb_pclk"; 696 + dmas = <&dmac0 6>, <&dmac0 7>; 697 + pinctrl-0 = <&uart3m0_xfer>; 698 + pinctrl-names = "default"; 699 + reg-io-width = <4>; 700 + reg-shift = <2>; 701 + status = "disabled"; 702 + }; 703 + 704 + uart4: serial@fe680000 { 705 + compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart"; 706 + reg = <0x0 0xfe680000 0x0 0x100>; 707 + interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; 708 + clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>; 709 + clock-names = "baudclk", "apb_pclk"; 710 + dmas = <&dmac0 8>, <&dmac0 9>; 711 + pinctrl-0 = <&uart4m0_xfer>; 712 + pinctrl-names = "default"; 713 + reg-io-width = <4>; 714 + reg-shift = <2>; 715 + status = "disabled"; 716 + }; 717 + 718 + uart5: serial@fe690000 { 719 + compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart"; 720 + reg = <0x0 0xfe690000 0x0 0x100>; 721 + interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>; 722 + clocks = <&cru SCLK_UART5>, <&cru PCLK_UART5>; 723 + clock-names = "baudclk", "apb_pclk"; 724 + dmas = <&dmac0 10>, <&dmac0 11>; 725 + pinctrl-0 = <&uart5m0_xfer>; 726 + pinctrl-names = "default"; 727 + reg-io-width = <4>; 728 + reg-shift = <2>; 729 + status = "disabled"; 730 + }; 731 + 732 + uart6: serial@fe6a0000 { 733 + compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart"; 734 + reg = <0x0 0xfe6a0000 0x0 0x100>; 735 + interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>; 736 + clocks = <&cru SCLK_UART6>, <&cru PCLK_UART6>; 737 + clock-names = "baudclk", "apb_pclk"; 738 + dmas = <&dmac0 12>, <&dmac0 13>; 739 + pinctrl-0 = <&uart6m0_xfer>; 740 + pinctrl-names = "default"; 741 + reg-io-width = <4>; 742 + reg-shift = <2>; 743 + status = "disabled"; 744 + }; 745 + 746 + uart7: serial@fe6b0000 { 747 + compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart"; 748 + reg = <0x0 0xfe6b0000 0x0 0x100>; 749 + interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>; 750 + clocks = <&cru SCLK_UART7>, <&cru PCLK_UART7>; 751 + clock-names = "baudclk", "apb_pclk"; 752 + dmas = <&dmac0 14>, <&dmac0 15>; 753 + pinctrl-0 = <&uart7m0_xfer>; 754 + pinctrl-names = "default"; 755 + reg-io-width = <4>; 756 + reg-shift = <2>; 757 + status = "disabled"; 758 + }; 759 + 760 + uart8: serial@fe6c0000 { 761 + compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart"; 762 + reg = <0x0 0xfe6c0000 0x0 0x100>; 763 + interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>; 764 + clocks = <&cru SCLK_UART8>, <&cru PCLK_UART8>; 765 + clock-names = "baudclk", "apb_pclk"; 766 + dmas = <&dmac0 16>, <&dmac0 17>; 767 + pinctrl-0 = <&uart8m0_xfer>; 768 + pinctrl-names = "default"; 769 + reg-io-width = <4>; 770 + reg-shift = <2>; 771 + status = "disabled"; 772 + }; 773 + 774 + uart9: serial@fe6d0000 { 775 + compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart"; 776 + reg = <0x0 0xfe6d0000 0x0 0x100>; 777 + interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>; 778 + clocks = <&cru SCLK_UART9>, <&cru PCLK_UART9>; 779 + clock-names = "baudclk", "apb_pclk"; 780 + dmas = <&dmac0 18>, <&dmac0 19>; 781 + pinctrl-0 = <&uart9m0_xfer>; 782 + pinctrl-names = "default"; 783 + reg-io-width = <4>; 784 + reg-shift = <2>; 785 + status = "disabled"; 786 + }; 787 + 788 + thermal_zones: thermal-zones { 789 + cpu_thermal: cpu-thermal { 790 + polling-delay-passive = <100>; 791 + polling-delay = <1000>; 792 + 793 + thermal-sensors = <&tsadc 0>; 794 + 795 + trips { 796 + cpu_alert0: cpu_alert0 { 797 + temperature = <70000>; 798 + hysteresis = <2000>; 799 + type = "passive"; 800 + }; 801 + cpu_alert1: cpu_alert1 { 802 + temperature = <75000>; 803 + hysteresis = <2000>; 804 + type = "passive"; 805 + }; 806 + cpu_crit: cpu_crit { 807 + temperature = <95000>; 808 + hysteresis = <2000>; 809 + type = "critical"; 810 + }; 811 + }; 812 + 813 + cooling-maps { 814 + map0 { 815 + trip = <&cpu_alert0>; 816 + cooling-device = 817 + <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 818 + <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 819 + <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 820 + <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 821 + }; 822 + }; 823 + }; 824 + 825 + gpu_thermal: gpu-thermal { 826 + polling-delay-passive = <20>; /* milliseconds */ 827 + polling-delay = <1000>; /* milliseconds */ 828 + 829 + thermal-sensors = <&tsadc 1>; 830 + }; 831 + }; 832 + 833 + tsadc: tsadc@fe710000 { 834 + compatible = "rockchip,rk3568-tsadc"; 835 + reg = <0x0 0xfe710000 0x0 0x100>; 836 + interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>; 837 + assigned-clocks = <&cru CLK_TSADC_TSEN>, <&cru CLK_TSADC>; 838 + assigned-clock-rates = <17000000>, <700000>; 839 + clocks = <&cru CLK_TSADC>, <&cru PCLK_TSADC>; 840 + clock-names = "tsadc", "apb_pclk"; 841 + resets = <&cru SRST_TSADC>, <&cru SRST_P_TSADC>, 842 + <&cru SRST_TSADCPHY>; 843 + reset-names = "tsadc", "tsadc-apb", "tsadc-phy"; 844 + rockchip,grf = <&grf>; 845 + rockchip,hw-tshut-temp = <95000>; 846 + pinctrl-names = "init", "default", "sleep"; 847 + pinctrl-0 = <&tsadc_pin>; 848 + pinctrl-1 = <&tsadc_shutorg>; 849 + pinctrl-2 = <&tsadc_pin>; 850 + #thermal-sensor-cells = <1>; 851 + status = "disabled"; 852 + }; 853 + 854 + saradc: saradc@fe720000 { 855 + compatible = "rockchip,rk3568-saradc", "rockchip,rk3399-saradc"; 856 + reg = <0x0 0xfe720000 0x0 0x100>; 857 + interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; 858 + clocks = <&cru CLK_SARADC>, <&cru PCLK_SARADC>; 859 + clock-names = "saradc", "apb_pclk"; 860 + resets = <&cru SRST_P_SARADC>; 861 + reset-names = "saradc-apb"; 862 + #io-channel-cells = <1>; 863 + status = "disabled"; 864 + }; 865 + 866 + pinctrl: pinctrl { 867 + compatible = "rockchip,rk3568-pinctrl"; 868 + rockchip,grf = <&grf>; 869 + rockchip,pmu = <&pmugrf>; 870 + #address-cells = <2>; 871 + #size-cells = <2>; 872 + ranges; 873 + 874 + gpio0: gpio@fdd60000 { 875 + compatible = "rockchip,gpio-bank"; 876 + reg = <0x0 0xfdd60000 0x0 0x100>; 877 + interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; 878 + clocks = <&pmucru PCLK_GPIO0>, <&pmucru DBCLK_GPIO0>; 879 + gpio-controller; 880 + #gpio-cells = <2>; 881 + interrupt-controller; 882 + #interrupt-cells = <2>; 883 + }; 884 + 885 + gpio1: gpio@fe740000 { 886 + compatible = "rockchip,gpio-bank"; 887 + reg = <0x0 0xfe740000 0x0 0x100>; 888 + interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; 889 + clocks = <&cru PCLK_GPIO1>, <&cru DBCLK_GPIO1>; 890 + gpio-controller; 891 + #gpio-cells = <2>; 892 + interrupt-controller; 893 + #interrupt-cells = <2>; 894 + }; 895 + 896 + gpio2: gpio@fe750000 { 897 + compatible = "rockchip,gpio-bank"; 898 + reg = <0x0 0xfe750000 0x0 0x100>; 899 + interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; 900 + clocks = <&cru PCLK_GPIO2>, <&cru DBCLK_GPIO2>; 901 + gpio-controller; 902 + #gpio-cells = <2>; 903 + interrupt-controller; 904 + #interrupt-cells = <2>; 905 + }; 906 + 907 + gpio3: gpio@fe760000 { 908 + compatible = "rockchip,gpio-bank"; 909 + reg = <0x0 0xfe760000 0x0 0x100>; 910 + interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 911 + clocks = <&cru PCLK_GPIO3>, <&cru DBCLK_GPIO3>; 912 + gpio-controller; 913 + #gpio-cells = <2>; 914 + interrupt-controller; 915 + #interrupt-cells = <2>; 916 + }; 917 + 918 + gpio4: gpio@fe770000 { 919 + compatible = "rockchip,gpio-bank"; 920 + reg = <0x0 0xfe770000 0x0 0x100>; 921 + interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 922 + clocks = <&cru PCLK_GPIO4>, <&cru DBCLK_GPIO4>; 923 + gpio-controller; 924 + #gpio-cells = <2>; 925 + interrupt-controller; 926 + #interrupt-cells = <2>; 927 + }; 928 + }; 929 + }; 930 + 931 + #include "rk3568-pinctrl.dtsi"