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

Merge tag 'v6.15-rockchip-dts64-1' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt

New boards: MNT-Reform2 laptop (rk3588), OrangePi5-Ultra (rk3588),
Radxa Rock 4D (rk3576), Firefly ROC-RK3576-PC, Photonicat (rk3568)

New overlays: Video-adapters for Theobroma boards and one adapter used
in hw test scenarios.

Interesting bigger changes contain clock support for rk3528; support for
the hdmi1 controller as well as hdmi-audio support on both controllers on
rk3588; the hdmi-receiver of the rk3588 landed, and rk3576 got basic
graphics support and can now do hdmi output.

Another big block is that we're now doing overlays way better and are
including build-testing for applied overlays to the base dtb - similar
to how other arches already do this.

Of cours a big list of more controllers for rk3576 (nvmem, sfc), rk3588
(rng, spdif, regulator for gpu power-domain) and rk3528 (saradc, pinctrl)

And a huge number of board-level improvements and additions.

* tag 'v6.15-rockchip-dts64-1' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: (89 commits)
arm64: dts: rockchip: Add SPI NOR device on the ROCK 4D
arm64: dts: rockchip: Add SFC nodes for rk3576
arm64: dts: rockchip: Add maskrom button to Radxa E20C
arm64: dts: rockchip: Add SARADC node for RK3528
arm64: dts: rockchip: Add user button to Radxa E20C
arm64: dts: rockchip: Add leds node to Radxa E20C
arm64: dts: rockchip: Add HDMI support for rock-4d
arm64: dts: rockchip: enable SCMI clk for RK3528 SoC
arm64: dts: rockchip: Enable HDMI receiver on rock-5b
arm64: dts: rockchip: Add device tree support for HDMI RX Controller
arm64: dts: rockchip: Add rk3528 QoS register node
dt-bindings: mfd: syscon: Add rk3528 QoS register compatible
arm64: dts: rockchip: add MNT Reform 2 laptop
dt-bindings: arm: rockchip: Add MNT Reform 2 (RCORE)
dt-bindings: soc: rockchip: Add RK3528 VPU GRF syscon
dt-bindings: soc: rockchip: Add RK3528 VO GRF syscon
arm64: dts: rockchip: Enable hdmi out display for rk3576-evb-v10
arm64: dts: rockchip: Enable hdmi display on sige5
arm64: dts: rockchip: Add hdmi for rk3576
arm64: dts: rockchip: Add vop for rk3576
...

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

+7693 -69
+24 -1
Documentation/devicetree/bindings/arm/rockchip.yaml
··· 49 49 - anbernic,rg-arc-s 50 50 - const: rockchip,rk3566 51 51 52 + - description: Ariaboard Photonicat 53 + items: 54 + - const: ariaboard,photonicat 55 + - const: rockchip,rk3568 56 + 52 57 - description: ArmSoM Sige5 board 53 58 items: 54 59 - const: armsom,sige5 ··· 183 178 - const: engicam,px30-core 184 179 - const: rockchip,px30 185 180 181 + - description: Firefly iCore-3588Q-based boards 182 + items: 183 + - enum: 184 + - mntre,reform2-rcore 185 + - const: firefly,icore-3588q 186 + - const: rockchip,rk3588 187 + 186 188 - description: Firefly Core-3588J-based boards 187 189 items: 188 190 - enum: ··· 247 235 - enum: 248 236 - firefly,roc-rk3399-pc-plus 249 237 - const: rockchip,rk3399 238 + 239 + - description: Firefly ROC-RK3576-PC 240 + items: 241 + - const: firefly,roc-rk3576-pc 242 + - const: rockchip,rk3576 250 243 251 244 - description: Firefly Station M2 252 245 items: ··· 879 862 - const: radxa,rock-4c-plus 880 863 - const: rockchip,rk3399 881 864 865 + - description: Radxa ROCK 4D 866 + items: 867 + - const: radxa,rock-4d 868 + - const: rockchip,rk3576 869 + 882 870 - description: Radxa ROCK 4SE 883 871 items: 884 872 - const: radxa,rock-4se ··· 1158 1136 - const: xunlong,orangepi-3b 1159 1137 - const: rockchip,rk3566 1160 1138 1161 - - description: Xunlong Orange Pi 5 Max/Plus 1139 + - description: Xunlong Orange Pi 5 Max/Plus/Ultra 1162 1140 items: 1163 1141 - enum: 1164 1142 - xunlong,orangepi-5-max 1165 1143 - xunlong,orangepi-5-plus 1144 + - xunlong,orangepi-5-ultra 1166 1145 - const: rockchip,rk3588 1167 1146 1168 1147 - description: Xunlong Orange Pi R1 Plus / LTS
+64
Documentation/devicetree/bindings/clock/rockchip,rk3528-cru.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/clock/rockchip,rk3528-cru.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Rockchip RK3528 Clock and Reset Controller 8 + 9 + maintainers: 10 + - Yao Zi <ziyao@disroot.org> 11 + 12 + description: | 13 + The RK3528 clock controller generates the clock and also implements a reset 14 + controller for SoC peripherals. For example, it provides SCLK_UART0 and 15 + PCLK_UART0 as well as SRST_P_UART0 and SRST_S_UART0 for the first UART 16 + module. 17 + Each clock is assigned an identifier, consumer nodes can use it to specify 18 + the clock. All available clock and reset IDs are defined in dt-binding 19 + headers. 20 + 21 + properties: 22 + compatible: 23 + const: rockchip,rk3528-cru 24 + 25 + reg: 26 + maxItems: 1 27 + 28 + clocks: 29 + items: 30 + - description: External 24MHz oscillator clock 31 + - description: > 32 + 50MHz clock generated by PHY module, for generating GMAC0 clocks only. 33 + 34 + clock-names: 35 + items: 36 + - const: xin24m 37 + - const: gmac0 38 + 39 + "#clock-cells": 40 + const: 1 41 + 42 + "#reset-cells": 43 + const: 1 44 + 45 + required: 46 + - compatible 47 + - reg 48 + - clocks 49 + - clock-names 50 + - "#clock-cells" 51 + - "#reset-cells" 52 + 53 + additionalProperties: false 54 + 55 + examples: 56 + - | 57 + clock-controller@ff4a0000 { 58 + compatible = "rockchip,rk3528-cru"; 59 + reg = <0xff4a0000 0x30000>; 60 + clocks = <&xin24m>, <&gmac0_clk>; 61 + clock-names = "xin24m", "gmac0"; 62 + #clock-cells = <1>; 63 + #reset-cells = <1>; 64 + };
+2
Documentation/devicetree/bindings/mfd/syscon.yaml
··· 103 103 - rockchip,rk3288-qos 104 104 - rockchip,rk3368-qos 105 105 - rockchip,rk3399-qos 106 + - rockchip,rk3528-qos 106 107 - rockchip,rk3562-qos 107 108 - rockchip,rk3568-qos 108 109 - rockchip,rk3576-qos ··· 203 202 - rockchip,rk3288-qos 204 203 - rockchip,rk3368-qos 205 204 - rockchip,rk3399-qos 205 + - rockchip,rk3528-qos 206 206 - rockchip,rk3562-qos 207 207 - rockchip,rk3568-qos 208 208 - rockchip,rk3576-qos
+3
Documentation/devicetree/bindings/soc/rockchip/grf.yaml
··· 15 15 - items: 16 16 - enum: 17 17 - rockchip,rk3288-sgrf 18 + - rockchip,rk3528-ioc-grf 19 + - rockchip,rk3528-vo-grf 20 + - rockchip,rk3528-vpu-grf 18 21 - rockchip,rk3566-pipe-grf 19 22 - rockchip,rk3568-pcie3-phy-grf 20 23 - rockchip,rk3568-pipe-grf
+3 -1
Documentation/devicetree/bindings/vendor-prefixes.yaml
··· 147 147 description: Arctic Sand 148 148 "^arcx,.*": 149 149 description: arcx Inc. / Archronix Inc. 150 + "^ariaboard,.*": 151 + description: Shanghai Novotech Co., Ltd. (Ariaboard) 150 152 "^aries,.*": 151 153 description: Aries Embedded GmbH 152 154 "^arm,.*": ··· 1269 1267 "^riscv,.*": 1270 1268 description: RISC-V Foundation 1271 1269 "^rockchip,.*": 1272 - description: Fuzhou Rockchip Electronics Co., Ltd 1270 + description: Rockchip Electronics Co., Ltd. 1273 1271 "^rocktech,.*": 1274 1272 description: ROCKTECH DISPLAYS LIMITED 1275 1273 "^rohm,.*":
+63
arch/arm64/boot/dts/rockchip/Makefile
··· 5 5 dtb-$(CONFIG_ARCH_ROCKCHIP) += px30-engicam-px30-core-edimm2.2.dtb 6 6 dtb-$(CONFIG_ARCH_ROCKCHIP) += px30-firefly-jd4-core-mb.dtb 7 7 dtb-$(CONFIG_ARCH_ROCKCHIP) += px30-ringneck-haikou.dtb 8 + dtb-$(CONFIG_ARCH_ROCKCHIP) += px30-ringneck-haikou-lvds-9904379.dtbo 9 + dtb-$(CONFIG_ARCH_ROCKCHIP) += px30-ringneck-haikou-video-demo.dtbo 8 10 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3308-bpi-p2-pro.dtb 9 11 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3308-evb.dtb 10 12 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3308-roc-cc.dtb ··· 63 61 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-pinebook-pro.dtb 64 62 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-pinephone-pro.dtb 65 63 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-puma-haikou.dtb 64 + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-puma-haikou-video-demo.dtbo 66 65 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-roc-pc.dtb 67 66 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-roc-pc-mezzanine.dtb 68 67 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-roc-pc-plus.dtb ··· 125 122 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-nanopi-r5c.dtb 126 123 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-nanopi-r5s.dtb 127 124 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-odroid-m1.dtb 125 + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-photonicat.dtb 128 126 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-qnap-ts433.dtb 129 127 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-radxa-e25.dtb 130 128 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-roc-pc.dtb ··· 136 132 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-wolfvision-pf5-io-expander.dtbo 137 133 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3576-armsom-sige5.dtb 138 134 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3576-evb1-v10.dtb 135 + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3576-roc-pc.dtb 136 + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3576-rock-4d.dtb 139 137 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3582-radxa-e52c.dtb 140 138 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-armsom-sige7.dtb 141 139 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-armsom-w3.dtb ··· 151 145 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-friendlyelec-cm3588-nas.dtb 152 146 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-h96-max-v58.dtb 153 147 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-jaguar.dtb 148 + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-jaguar-pre-ict-tester.dtbo 149 + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-mnt-reform2.dtb 154 150 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-nanopc-t6.dtb 155 151 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-nanopc-t6-lts.dtb 156 152 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-ok3588-c.dtb 157 153 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-orangepi-5-max.dtb 158 154 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-orangepi-5-plus.dtb 155 + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-orangepi-5-ultra.dtb 159 156 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-quartzpro64.dtb 160 157 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-rock-5-itx.dtb 161 158 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-rock-5b.dtb ··· 179 170 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-orangepi-5b.dtb 180 171 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-rock-5a.dtb 181 172 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-rock-5c.dtb 173 + 174 + # Overlay application tests 175 + # 176 + # A .dtbo must have its own 177 + # 178 + # dtb-$(CONFIG_ARCH_ROCKCHIP) += <overlay>.dtbo 179 + # 180 + # entry, and at least one overlay application test reflecting a possible 181 + # hardware combination in real life: 182 + # 183 + # dtb-$(CONFIG_ARCH_ROCKCHIP) += <overlay-application-test>.dtb 184 + # <overlay-application-test>-dtbs := <base>.dtb <overlay-1>.dtbo [<overlay-2>.dtbo ...] 185 + # 186 + # This will make the <base>.dtb have symbols (like when DTC_FLAGS has -@ passed) 187 + # and generate a new DTB (<overlay-application-test>.dtb) which is the 188 + # result of the application of <overlay-1>.dtbo and other listed overlays on top 189 + # of <base>.dtb. 190 + 191 + dtb-$(CONFIG_ARCH_ROCKCHIP) += px30-ringneck-haikou-haikou-lvds-9904379.dtb 192 + px30-ringneck-haikou-haikou-lvds-9904379-dtbs := px30-ringneck-haikou.dtb \ 193 + px30-ringneck-haikou-lvds-9904379.dtbo 194 + 195 + dtb-$(CONFIG_ARCH_ROCKCHIP) += px30-ringneck-haikou-haikou-video-demo.dtb 196 + px30-ringneck-haikou-haikou-video-demo-dtbs := px30-ringneck-haikou.dtb \ 197 + px30-ringneck-haikou-video-demo.dtbo 198 + 199 + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-puma-haikou-haikou-video-demo.dtb 200 + rk3399-puma-haikou-haikou-video-demo-dtbs := rk3399-puma-haikou.dtb \ 201 + rk3399-puma-haikou-video-demo.dtbo 202 + 203 + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-wolfvision-pf5-vz-2-uhd.dtb 204 + rk3568-wolfvision-pf5-vz-2-uhd-dtbs := rk3568-wolfvision-pf5.dtb \ 205 + rk3568-wolfvision-pf5-display-vz.dtbo \ 206 + rk3568-wolfvision-pf5-io-expander.dtbo 207 + 208 + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-edgeble-neu6a-wifi.dtb 209 + rk3588-edgeble-neu6a-wifi-dtbs := rk3588-edgeble-neu6a-io.dtb \ 210 + rk3588-edgeble-neu6a-wifi.dtbo 211 + 212 + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-edgeble-neu6b-wifi.dtb 213 + rk3588-edgeble-neu6b-wifi-dtbs := rk3588-edgeble-neu6b-io.dtb \ 214 + rk3588-edgeble-neu6a-wifi.dtbo 215 + 216 + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-jaguar-pre-ict-tester.dtb 217 + rk3588-jaguar-pre-ict-tester-dtbs := rk3588-jaguar.dtb \ 218 + rk3588-jaguar-pre-ict-tester.dtbo 219 + 220 + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-rock-5b-pcie-ep.dtb 221 + rk3588-rock-5b-pcie-ep-dtbs := rk3588-rock-5b.dtb \ 222 + rk3588-rock-5b-pcie-ep.dtbo 223 + 224 + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-rock-5b-pcie-srns.dtb 225 + rk3588-rock-5b-pcie-srns-dtbs := rk3588-rock-5b.dtb \ 226 + rk3588-rock-5b-pcie-srns.dtbo
+130
arch/arm64/boot/dts/rockchip/px30-ringneck-haikou-lvds-9904379.dtso
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 + /* 3 + * Copyright (c) 2025 Cherry Embedded Solutions GmbH 4 + * 5 + * HAIKOU-LVDS-9904379 adapter for PX30 Ringneck and Haikou carrierboard. 6 + * 7 + * This adapter needs to be plugged in the fake PCIe connector called Video 8 + * Connector on Haikou carrierboard. 9 + */ 10 + 11 + /dts-v1/; 12 + /plugin/; 13 + 14 + #include <dt-bindings/gpio/gpio.h> 15 + #include <dt-bindings/interrupt-controller/irq.h> 16 + #include <dt-bindings/pinctrl/rockchip.h> 17 + 18 + &{/} { 19 + backlight_lvds: backlight-lvds { 20 + compatible = "pwm-backlight"; 21 + brightness-levels = <0 255>; 22 + default-brightness-level = <255>; 23 + num-interpolated-steps = <255>; 24 + power-supply = <&vcc3v3_baseboard>; 25 + pwms = <&pwm0 0 25000 0>; 26 + }; 27 + 28 + panel { 29 + compatible = "admatec,9904379", "panel-lvds"; 30 + backlight = <&backlight_lvds>; 31 + data-mapping = "vesa-24"; 32 + height-mm = <126>; 33 + power-supply = <&vcc3v3_baseboard>; 34 + width-mm = <224>; 35 + 36 + panel-timing { 37 + clock-frequency = <49500000>; 38 + hactive = <1024>; 39 + hback-porch = <90>; 40 + hfront-porch = <90>; 41 + hsync-len = <90>; 42 + vactive = <600>; 43 + vback-porch = <10>; 44 + vfront-porch = <10>; 45 + vsync-len = <10>; 46 + }; 47 + 48 + port { 49 + panel_in_lvds: endpoint { 50 + remote-endpoint = <&lvds_out_panel>; 51 + }; 52 + }; 53 + }; 54 + }; 55 + 56 + &display_subsystem { 57 + status = "okay"; 58 + }; 59 + 60 + &dsi_dphy { 61 + status = "okay"; 62 + }; 63 + 64 + &i2c1 { 65 + #address-cells = <1>; 66 + #size-cells = <0>; 67 + /* EEPROM and GT928 are limited to 400KHz */ 68 + clock-frequency = <400000>; 69 + 70 + touchscreen@14 { 71 + compatible = "goodix,gt928"; 72 + reg = <0x14>; 73 + interrupt-parent = <&gpio0>; 74 + interrupts = <RK_PA0 IRQ_TYPE_LEVEL_LOW>; 75 + irq-gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>; 76 + reset-gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>; 77 + pinctrl-0 = <&touch_int &touch_rst>; 78 + pinctrl-names = "default"; 79 + touchscreen-inverted-x; 80 + touchscreen-inverted-y; 81 + AVDD28-supply = <&vcc3v3_baseboard>; 82 + VDDIO-supply = <&vcc3v3_baseboard>; 83 + }; 84 + 85 + eeprom@54 { 86 + reg = <0x54>; 87 + compatible = "st,24c04", "atmel,24c04"; 88 + pagesize = <16>; 89 + size = <512>; 90 + vcc-supply = <&vcc3v3_baseboard>; 91 + }; 92 + }; 93 + 94 + &lvds { 95 + status = "okay"; 96 + }; 97 + 98 + &lvds_out { 99 + lvds_out_panel: endpoint { 100 + remote-endpoint = <&panel_in_lvds>; 101 + }; 102 + }; 103 + 104 + &pinctrl { 105 + touch { 106 + touch_int: touch-int { 107 + rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; 108 + }; 109 + 110 + touch_rst: touch-rst { 111 + rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; 112 + }; 113 + }; 114 + }; 115 + 116 + &vopb { 117 + status = "okay"; 118 + }; 119 + 120 + &vopb_mmu { 121 + status = "okay"; 122 + }; 123 + 124 + &vopl { 125 + status = "okay"; 126 + }; 127 + 128 + &vopl_mmu { 129 + status = "okay"; 130 + };
+190
arch/arm64/boot/dts/rockchip/px30-ringneck-haikou-video-demo.dtso
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 + /* 3 + * Copyright (c) 2025 Cherry Embedded Solutions GmbH 4 + * 5 + * DEVKIT ADDON CAM-TS-A01 6 + * https://embedded.cherry.de/product/development-kit/ 7 + * 8 + * DT-overlay for the camera / DSI demo appliance for Haikou boards. 9 + * In the flavour for use with a Ringneck system-on-module. 10 + */ 11 + 12 + /dts-v1/; 13 + /plugin/; 14 + 15 + #include <dt-bindings/clock/px30-cru.h> 16 + #include <dt-bindings/gpio/gpio.h> 17 + #include <dt-bindings/interrupt-controller/irq.h> 18 + #include <dt-bindings/leds/common.h> 19 + #include <dt-bindings/pinctrl/rockchip.h> 20 + 21 + &{/} { 22 + backlight: backlight { 23 + compatible = "pwm-backlight"; 24 + power-supply = <&dc_12v>; 25 + pwms = <&pwm0 0 25000 0>; 26 + }; 27 + 28 + cam_afvdd_2v8: regulator-cam-afvdd-2v8 { 29 + compatible = "regulator-fixed"; 30 + gpio = <&pca9670 2 GPIO_ACTIVE_LOW>; 31 + regulator-max-microvolt = <2800000>; 32 + regulator-min-microvolt = <2800000>; 33 + regulator-name = "cam-afvdd-2v8"; 34 + vin-supply = <&vcc2v8_video>; 35 + }; 36 + 37 + cam_avdd_2v8: regulator-cam-avdd-2v8 { 38 + compatible = "regulator-fixed"; 39 + gpio = <&pca9670 4 GPIO_ACTIVE_LOW>; 40 + regulator-max-microvolt = <2800000>; 41 + regulator-min-microvolt = <2800000>; 42 + regulator-name = "cam-avdd-2v8"; 43 + vin-supply = <&vcc2v8_video>; 44 + }; 45 + 46 + cam_dovdd_1v8: regulator-cam-dovdd-1v8 { 47 + compatible = "regulator-fixed"; 48 + gpio = <&pca9670 3 GPIO_ACTIVE_LOW>; 49 + regulator-max-microvolt = <1800000>; 50 + regulator-min-microvolt = <1800000>; 51 + regulator-name = "cam-dovdd-1v8"; 52 + vin-supply = <&vcc1v8_video>; 53 + }; 54 + 55 + cam_dvdd_1v2: regulator-cam-dvdd-1v2 { 56 + compatible = "regulator-fixed"; 57 + enable-active-high; 58 + gpio = <&pca9670 5 GPIO_ACTIVE_HIGH>; 59 + regulator-max-microvolt = <1200000>; 60 + regulator-min-microvolt = <1200000>; 61 + regulator-name = "cam-dvdd-1v2"; 62 + vin-supply = <&vcc3v3_baseboard>; 63 + }; 64 + 65 + vcc1v8_video: regulator-vcc1v8-video { 66 + compatible = "regulator-fixed"; 67 + regulator-always-on; 68 + regulator-boot-on; 69 + regulator-max-microvolt = <1800000>; 70 + regulator-min-microvolt = <1800000>; 71 + regulator-name = "vcc1v8-video"; 72 + vin-supply = <&vcc3v3_baseboard>; 73 + }; 74 + 75 + vcc2v8_video: regulator-vcc2v8-video { 76 + compatible = "regulator-fixed"; 77 + regulator-always-on; 78 + regulator-boot-on; 79 + regulator-max-microvolt = <2800000>; 80 + regulator-min-microvolt = <2800000>; 81 + regulator-name = "vcc2v8-video"; 82 + vin-supply = <&vcc3v3_baseboard>; 83 + }; 84 + 85 + video-adapter-leds { 86 + compatible = "gpio-leds"; 87 + 88 + video-adapter-led { 89 + color = <LED_COLOR_ID_BLUE>; 90 + gpios = <&pca9670 7 GPIO_ACTIVE_HIGH>; 91 + label = "video-adapter-led"; 92 + linux,default-trigger = "none"; 93 + }; 94 + }; 95 + }; 96 + 97 + &display_subsystem { 98 + status = "okay"; 99 + }; 100 + 101 + &dsi { 102 + #address-cells = <1>; 103 + #size-cells = <0>; 104 + status = "okay"; 105 + 106 + panel@0 { 107 + compatible = "leadtek,ltk050h3148w"; 108 + reg = <0>; 109 + backlight = <&backlight>; 110 + iovcc-supply = <&vcc1v8_video>; 111 + reset-gpios = <&pca9670 0 GPIO_ACTIVE_LOW>; 112 + vci-supply = <&vcc2v8_video>; 113 + 114 + port { 115 + mipi_in_panel: endpoint { 116 + remote-endpoint = <&mipi_out_panel>; 117 + }; 118 + }; 119 + }; 120 + }; 121 + 122 + &dsi_dphy { 123 + status = "okay"; 124 + }; 125 + 126 + &dsi_out { 127 + mipi_out_panel: endpoint { 128 + remote-endpoint = <&mipi_in_panel>; 129 + }; 130 + }; 131 + 132 + &i2c1 { 133 + #address-cells = <1>; 134 + #size-cells = <0>; 135 + /* OV5675, GT911, DW9714 are limited to 400KHz */ 136 + clock-frequency = <400000>; 137 + 138 + touchscreen@14 { 139 + compatible = "goodix,gt911"; 140 + reg = <0x14>; 141 + interrupt-parent = <&gpio0>; 142 + interrupts = <RK_PA0 IRQ_TYPE_LEVEL_LOW>; 143 + irq-gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>; 144 + pinctrl-0 = <&touch_int>; 145 + pinctrl-names = "default"; 146 + reset-gpios = <&pca9670 1 GPIO_ACTIVE_HIGH>; 147 + AVDD28-supply = <&vcc2v8_video>; 148 + VDDIO-supply = <&vcc3v3_baseboard>; 149 + }; 150 + 151 + pca9670: gpio@27 { 152 + compatible = "nxp,pca9670"; 153 + reg = <0x27>; 154 + gpio-controller; 155 + #gpio-cells = <2>; 156 + pinctrl-0 = <&pca9670_resetn>; 157 + pinctrl-names = "default"; 158 + reset-gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_LOW>; 159 + }; 160 + }; 161 + 162 + &pinctrl { 163 + pca9670 { 164 + pca9670_resetn: pca9670-resetn { 165 + rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; 166 + }; 167 + }; 168 + 169 + touch { 170 + touch_int: touch-int { 171 + rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; 172 + }; 173 + }; 174 + }; 175 + 176 + &vopb { 177 + status = "okay"; 178 + }; 179 + 180 + &vopb_mmu { 181 + status = "okay"; 182 + }; 183 + 184 + &vopl { 185 + status = "okay"; 186 + }; 187 + 188 + &vopl_mmu { 189 + status = "okay"; 190 + };
+2
arch/arm64/boot/dts/rockchip/px30-ringneck-haikou.dts
··· 154 154 }; 155 155 156 156 &i2c3 { 157 + status = "okay"; 158 + 157 159 eeprom@50 { 158 160 reg = <0x50>; 159 161 compatible = "atmel,24c01";
-4
arch/arm64/boot/dts/rockchip/px30-ringneck.dtsi
··· 325 325 }; 326 326 }; 327 327 328 - &i2c3 { 329 - status = "okay"; 330 - }; 331 - 332 328 &i2s0_8ch { 333 329 rockchip,trcm-sync-tx-only; 334 330
+8
arch/arm64/boot/dts/rockchip/rk3328-rock-pi-e.dts
··· 428 428 status = "okay"; 429 429 }; 430 430 431 + &u2phy_otg { 432 + status = "okay"; 433 + }; 434 + 431 435 &uart2 { 436 + status = "okay"; 437 + }; 438 + 439 + &usb20_otg { 432 440 status = "okay"; 433 441 }; 434 442
+166
arch/arm64/boot/dts/rockchip/rk3399-puma-haikou-video-demo.dtso
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 + /* 3 + * Copyright (c) 2025 Cherry Embedded Solutions GmbH 4 + * 5 + * DEVKIT ADDON CAM-TS-A01 6 + * https://embedded.cherry.de/product/development-kit/ 7 + * 8 + * DT-overlay for the camera / DSI demo appliance for Haikou boards. 9 + * In the flavour for use with a Puma system-on-module. 10 + */ 11 + 12 + /dts-v1/; 13 + /plugin/; 14 + 15 + #include <dt-bindings/clock/rk3399-cru.h> 16 + #include <dt-bindings/gpio/gpio.h> 17 + #include <dt-bindings/interrupt-controller/irq.h> 18 + #include <dt-bindings/leds/common.h> 19 + #include <dt-bindings/pinctrl/rockchip.h> 20 + 21 + &{/} { 22 + backlight: backlight { 23 + compatible = "pwm-backlight"; 24 + power-supply = <&dc_12v>; 25 + pwms = <&pwm0 0 25000 0>; 26 + }; 27 + 28 + cam_afvdd_2v8: regulator-cam-afvdd-2v8 { 29 + compatible = "regulator-fixed"; 30 + gpio = <&pca9670 2 GPIO_ACTIVE_LOW>; 31 + regulator-max-microvolt = <2800000>; 32 + regulator-min-microvolt = <2800000>; 33 + regulator-name = "cam-afvdd-2v8"; 34 + vin-supply = <&vcc2v8_video>; 35 + }; 36 + 37 + cam_avdd_2v8: regulator-cam-avdd-2v8 { 38 + compatible = "regulator-fixed"; 39 + gpio = <&pca9670 4 GPIO_ACTIVE_LOW>; 40 + regulator-max-microvolt = <2800000>; 41 + regulator-min-microvolt = <2800000>; 42 + regulator-name = "cam-avdd-2v8"; 43 + vin-supply = <&vcc2v8_video>; 44 + }; 45 + 46 + cam_dovdd_1v8: regulator-cam-dovdd-1v8 { 47 + compatible = "regulator-fixed"; 48 + gpio = <&pca9670 3 GPIO_ACTIVE_LOW>; 49 + regulator-max-microvolt = <1800000>; 50 + regulator-min-microvolt = <1800000>; 51 + regulator-name = "cam-dovdd-1v8"; 52 + vin-supply = <&vcc1v8_video>; 53 + }; 54 + 55 + cam_dvdd_1v2: regulator-cam-dvdd-1v2 { 56 + compatible = "regulator-fixed"; 57 + enable-active-high; 58 + gpio = <&pca9670 5 GPIO_ACTIVE_HIGH>; 59 + regulator-max-microvolt = <1200000>; 60 + regulator-min-microvolt = <1200000>; 61 + regulator-name = "cam-dvdd-1v2"; 62 + vin-supply = <&vcc3v3_baseboard>; 63 + }; 64 + 65 + vcc1v8_video: regulator-vcc1v8-video { 66 + compatible = "regulator-fixed"; 67 + regulator-always-on; 68 + regulator-boot-on; 69 + regulator-max-microvolt = <1800000>; 70 + regulator-min-microvolt = <1800000>; 71 + regulator-name = "vcc1v8-video"; 72 + vin-supply = <&vcc3v3_baseboard>; 73 + }; 74 + 75 + vcc2v8_video: regulator-vcc2v8-video { 76 + compatible = "regulator-fixed"; 77 + regulator-always-on; 78 + regulator-boot-on; 79 + regulator-max-microvolt = <2800000>; 80 + regulator-min-microvolt = <2800000>; 81 + regulator-name = "vcc2v8-video"; 82 + vin-supply = <&vcc3v3_baseboard>; 83 + }; 84 + 85 + video-adapter-leds { 86 + compatible = "gpio-leds"; 87 + 88 + video-adapter-led { 89 + color = <LED_COLOR_ID_BLUE>; 90 + gpios = <&pca9670 7 GPIO_ACTIVE_HIGH>; 91 + label = "video-adapter-led"; 92 + linux,default-trigger = "none"; 93 + }; 94 + }; 95 + }; 96 + 97 + &i2c1 { 98 + #address-cells = <1>; 99 + #size-cells = <0>; 100 + /* OV5675, GT911, DW9714 are limited to 400KHz */ 101 + clock-frequency = <400000>; 102 + 103 + touchscreen@14 { 104 + compatible = "goodix,gt911"; 105 + reg = <0x14>; 106 + interrupt-parent = <&gpio1>; 107 + interrupts = <RK_PC7 IRQ_TYPE_LEVEL_LOW>; 108 + irq-gpios = <&gpio1 RK_PC7 GPIO_ACTIVE_HIGH>; 109 + pinctrl-0 = <&touch_int>; 110 + pinctrl-names = "default"; 111 + reset-gpios = <&pca9670 1 GPIO_ACTIVE_HIGH>; 112 + AVDD28-supply = <&vcc2v8_video>; 113 + VDDIO-supply = <&vcc3v3_baseboard>; 114 + }; 115 + 116 + pca9670: gpio@27 { 117 + compatible = "nxp,pca9670"; 118 + reg = <0x27>; 119 + gpio-controller; 120 + #gpio-cells = <2>; 121 + pinctrl-0 = <&pca9670_resetn>; 122 + pinctrl-names = "default"; 123 + reset-gpios = <&gpio4 RK_PD6 GPIO_ACTIVE_LOW>; 124 + }; 125 + }; 126 + 127 + &mipi_out { 128 + mipi_out_panel: endpoint { 129 + remote-endpoint = <&mipi_in_panel>; 130 + }; 131 + }; 132 + 133 + &mipi_dsi { 134 + #address-cells = <1>; 135 + #size-cells = <0>; 136 + status = "okay"; 137 + 138 + panel@0 { 139 + compatible = "leadtek,ltk050h3148w"; 140 + reg = <0>; 141 + backlight = <&backlight>; 142 + iovcc-supply = <&vcc1v8_video>; 143 + reset-gpios = <&pca9670 0 GPIO_ACTIVE_LOW>; 144 + vci-supply = <&vcc2v8_video>; 145 + 146 + port { 147 + mipi_in_panel: endpoint { 148 + remote-endpoint = <&mipi_out_panel>; 149 + }; 150 + }; 151 + }; 152 + }; 153 + 154 + &pinctrl { 155 + pca9670 { 156 + pca9670_resetn: pca9670-resetn { 157 + rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>; 158 + }; 159 + }; 160 + 161 + touch { 162 + touch_int: touch-int { 163 + rockchip,pins = <1 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>; 164 + }; 165 + }; 166 + };
+23 -3
arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts
··· 149 149 }; 150 150 }; 151 151 152 + &gmac { 153 + status = "okay"; 154 + }; 155 + 152 156 &hdmi { 153 - ddc-i2c-bus = <&i2c3>; 157 + status = "okay"; 158 + }; 159 + 160 + &hdmi_sound { 154 161 status = "okay"; 155 162 }; 156 163 ··· 193 186 }; 194 187 }; 195 188 196 - &i2c6 { 189 + &i2c7 { 190 + eeprom@50 { 191 + reg = <0x50>; 192 + compatible = "atmel,24c01"; 193 + pagesize = <8>; 194 + size = <128>; 195 + vcc-supply = <&vcc3v3_baseboard>; 196 + }; 197 + }; 198 + 199 + &i2s0 { 197 200 status = "okay"; 198 - clock-frequency = <400000>; 201 + }; 202 + 203 + &i2s2 { 204 + status = "okay"; 199 205 }; 200 206 201 207 &pcie_phy {
+8 -2
arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi
··· 183 183 snps,reset-delays-us = <0 10000 50000>; 184 184 tx_delay = <0x10>; 185 185 rx_delay = <0x23>; 186 - status = "okay"; 187 186 }; 188 187 189 188 &gpu { ··· 388 389 }; 389 390 }; 390 391 392 + &hdmi { 393 + ddc-i2c-bus = <&i2c3>; 394 + }; 395 + 396 + &i2c6 { 397 + clock-frequency = <400000>; 398 + }; 399 + 391 400 &i2c7 { 392 401 status = "okay"; 393 402 clock-frequency = <400000>; ··· 446 439 pinctrl-1 = <&i2s0_2ch_bus_bclk_off>; 447 440 rockchip,playback-channels = <2>; 448 441 rockchip,capture-channels = <2>; 449 - status = "okay"; 450 442 }; 451 443 452 444 /*
+1 -1
arch/arm64/boot/dts/rockchip/rk3399-roc-pc-plus.dts
··· 112 112 113 113 &i2c1 { 114 114 es8388: es8388@11 { 115 - compatible = "everest,es8388"; 115 + compatible = "everest,es8388", "everest,es8328"; 116 116 reg = <0x11>; 117 117 clocks = <&cru SCLK_I2S_8CH_OUT>; 118 118 #sound-dai-cells = <0>;
+1397
arch/arm64/boot/dts/rockchip/rk3528-pinctrl.dtsi
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 + /* 3 + * Copyright (c) 2022 Rockchip Electronics Co., Ltd. 4 + */ 5 + 6 + #include <dt-bindings/pinctrl/rockchip.h> 7 + #include "rockchip-pinconf.dtsi" 8 + 9 + /* 10 + * This file is auto generated by pin2dts tool, please keep these code 11 + * by adding changes at end of this file. 12 + */ 13 + &pinctrl { 14 + arm { 15 + /omit-if-no-ref/ 16 + arm_pins: arm-pins { 17 + rockchip,pins = 18 + /* arm_avs */ 19 + <4 RK_PC4 3 &pcfg_pull_none>; 20 + }; 21 + }; 22 + 23 + clk { 24 + /omit-if-no-ref/ 25 + clkm0_32k_out: clkm0-32k-out { 26 + rockchip,pins = 27 + /* clkm0_32k_out */ 28 + <3 RK_PC3 3 &pcfg_pull_none>; 29 + }; 30 + 31 + /omit-if-no-ref/ 32 + clkm1_32k_out: clkm1-32k-out { 33 + rockchip,pins = 34 + /* clkm1_32k_out */ 35 + <1 RK_PC3 1 &pcfg_pull_none>; 36 + }; 37 + }; 38 + 39 + emmc { 40 + /omit-if-no-ref/ 41 + emmc_rstnout: emmc-rstnout { 42 + rockchip,pins = 43 + /* emmc_rstn */ 44 + <1 RK_PD6 1 &pcfg_pull_none>; 45 + }; 46 + 47 + /omit-if-no-ref/ 48 + emmc_bus8: emmc-bus8 { 49 + rockchip,pins = 50 + /* emmc_d0 */ 51 + <1 RK_PC4 1 &pcfg_pull_up_drv_level_2>, 52 + /* emmc_d1 */ 53 + <1 RK_PC5 1 &pcfg_pull_up_drv_level_2>, 54 + /* emmc_d2 */ 55 + <1 RK_PC6 1 &pcfg_pull_up_drv_level_2>, 56 + /* emmc_d3 */ 57 + <1 RK_PC7 1 &pcfg_pull_up_drv_level_2>, 58 + /* emmc_d4 */ 59 + <1 RK_PD0 1 &pcfg_pull_up_drv_level_2>, 60 + /* emmc_d5 */ 61 + <1 RK_PD1 1 &pcfg_pull_up_drv_level_2>, 62 + /* emmc_d6 */ 63 + <1 RK_PD2 1 &pcfg_pull_up_drv_level_2>, 64 + /* emmc_d7 */ 65 + <1 RK_PD3 1 &pcfg_pull_up_drv_level_2>; 66 + }; 67 + 68 + /omit-if-no-ref/ 69 + emmc_clk: emmc-clk { 70 + rockchip,pins = 71 + /* emmc_clk */ 72 + <1 RK_PD5 1 &pcfg_pull_up_drv_level_2>; 73 + }; 74 + 75 + /omit-if-no-ref/ 76 + emmc_cmd: emmc-cmd { 77 + rockchip,pins = 78 + /* emmc_cmd */ 79 + <1 RK_PD4 1 &pcfg_pull_up_drv_level_2>; 80 + }; 81 + 82 + /omit-if-no-ref/ 83 + emmc_strb: emmc-strb { 84 + rockchip,pins = 85 + /* emmc_strb */ 86 + <1 RK_PD7 1 &pcfg_pull_none>; 87 + }; 88 + }; 89 + 90 + eth { 91 + /omit-if-no-ref/ 92 + eth_pins: eth-pins { 93 + rockchip,pins = 94 + /* eth_clk_25m_out */ 95 + <3 RK_PB5 2 &pcfg_pull_none_drv_level_2>; 96 + }; 97 + }; 98 + 99 + fephy { 100 + /omit-if-no-ref/ 101 + fephym0_led_dpx: fephym0-led_dpx { 102 + rockchip,pins = 103 + /* fephy_led_dpx_m0 */ 104 + <4 RK_PB5 2 &pcfg_pull_none>; 105 + }; 106 + 107 + /omit-if-no-ref/ 108 + fephym0_led_link: fephym0-led_link { 109 + rockchip,pins = 110 + /* fephy_led_link_m0 */ 111 + <4 RK_PC0 2 &pcfg_pull_none>; 112 + }; 113 + 114 + /omit-if-no-ref/ 115 + fephym0_led_spd: fephym0-led_spd { 116 + rockchip,pins = 117 + /* fephy_led_spd_m0 */ 118 + <4 RK_PB7 2 &pcfg_pull_none>; 119 + }; 120 + 121 + /omit-if-no-ref/ 122 + fephym1_led_dpx: fephym1-led_dpx { 123 + rockchip,pins = 124 + /* fephy_led_dpx_m1 */ 125 + <2 RK_PA4 5 &pcfg_pull_none>; 126 + }; 127 + 128 + /omit-if-no-ref/ 129 + fephym1_led_link: fephym1-led_link { 130 + rockchip,pins = 131 + /* fephy_led_link_m1 */ 132 + <2 RK_PA6 5 &pcfg_pull_none>; 133 + }; 134 + 135 + /omit-if-no-ref/ 136 + fephym1_led_spd: fephym1-led_spd { 137 + rockchip,pins = 138 + /* fephy_led_spd_m1 */ 139 + <2 RK_PA5 5 &pcfg_pull_none>; 140 + }; 141 + }; 142 + 143 + fspi { 144 + /omit-if-no-ref/ 145 + fspi_pins: fspi-pins { 146 + rockchip,pins = 147 + /* fspi_clk */ 148 + <1 RK_PD5 2 &pcfg_pull_none>, 149 + /* fspi_d0 */ 150 + <1 RK_PC4 2 &pcfg_pull_none>, 151 + /* fspi_d1 */ 152 + <1 RK_PC5 2 &pcfg_pull_none>, 153 + /* fspi_d2 */ 154 + <1 RK_PC6 2 &pcfg_pull_none>, 155 + /* fspi_d3 */ 156 + <1 RK_PC7 2 &pcfg_pull_none>; 157 + }; 158 + 159 + /omit-if-no-ref/ 160 + fspi_csn0: fspi-csn0 { 161 + rockchip,pins = 162 + /* fspi_csn0 */ 163 + <1 RK_PD0 2 &pcfg_pull_none>; 164 + }; 165 + /omit-if-no-ref/ 166 + fspi_csn1: fspi-csn1 { 167 + rockchip,pins = 168 + /* fspi_csn1 */ 169 + <1 RK_PD1 2 &pcfg_pull_none>; 170 + }; 171 + }; 172 + 173 + gpu { 174 + /omit-if-no-ref/ 175 + gpu_pins: gpu-pins { 176 + rockchip,pins = 177 + /* gpu_avs */ 178 + <4 RK_PC3 3 &pcfg_pull_none>; 179 + }; 180 + }; 181 + 182 + hdmi { 183 + /omit-if-no-ref/ 184 + hdmi_pins: hdmi-pins { 185 + rockchip,pins = 186 + /* hdmi_tx_cec */ 187 + <0 RK_PA3 1 &pcfg_pull_none>, 188 + /* hdmi_tx_hpd */ 189 + <0 RK_PA2 1 &pcfg_pull_none>, 190 + /* hdmi_tx_scl */ 191 + <0 RK_PA4 1 &pcfg_pull_none>, 192 + /* hdmi_tx_sda */ 193 + <0 RK_PA5 1 &pcfg_pull_none>; 194 + }; 195 + }; 196 + 197 + hsm { 198 + /omit-if-no-ref/ 199 + hsmm0_pins: hsmm0-pins { 200 + rockchip,pins = 201 + /* hsm_clk_out_m0 */ 202 + <2 RK_PA2 4 &pcfg_pull_none>; 203 + }; 204 + 205 + /omit-if-no-ref/ 206 + hsmm1_pins: hsmm1-pins { 207 + rockchip,pins = 208 + /* hsm_clk_out_m1 */ 209 + <1 RK_PA4 3 &pcfg_pull_none>; 210 + }; 211 + }; 212 + 213 + i2c0 { 214 + /omit-if-no-ref/ 215 + i2c0m0_xfer: i2c0m0-xfer { 216 + rockchip,pins = 217 + /* i2c0_scl_m0 */ 218 + <4 RK_PC4 2 &pcfg_pull_none_smt>, 219 + /* i2c0_sda_m0 */ 220 + <4 RK_PC3 2 &pcfg_pull_none_smt>; 221 + }; 222 + 223 + /omit-if-no-ref/ 224 + i2c0m1_xfer: i2c0m1-xfer { 225 + rockchip,pins = 226 + /* i2c0_scl_m1 */ 227 + <4 RK_PA1 2 &pcfg_pull_none_smt>, 228 + /* i2c0_sda_m1 */ 229 + <4 RK_PA0 2 &pcfg_pull_none_smt>; 230 + }; 231 + }; 232 + 233 + i2c1 { 234 + /omit-if-no-ref/ 235 + i2c1m0_xfer: i2c1m0-xfer { 236 + rockchip,pins = 237 + /* i2c1_scl_m0 */ 238 + <4 RK_PA3 2 &pcfg_pull_none_smt>, 239 + /* i2c1_sda_m0 */ 240 + <4 RK_PA2 2 &pcfg_pull_none_smt>; 241 + }; 242 + 243 + /omit-if-no-ref/ 244 + i2c1m1_xfer: i2c1m1-xfer { 245 + rockchip,pins = 246 + /* i2c1_scl_m1 */ 247 + <4 RK_PC5 4 &pcfg_pull_none_smt>, 248 + /* i2c1_sda_m1 */ 249 + <4 RK_PC6 4 &pcfg_pull_none_smt>; 250 + }; 251 + }; 252 + 253 + i2c2 { 254 + /omit-if-no-ref/ 255 + i2c2m0_xfer: i2c2m0-xfer { 256 + rockchip,pins = 257 + /* i2c2_scl_m0 */ 258 + <0 RK_PA4 2 &pcfg_pull_none_smt>, 259 + /* i2c2_sda_m0 */ 260 + <0 RK_PA5 2 &pcfg_pull_none_smt>; 261 + }; 262 + 263 + /omit-if-no-ref/ 264 + i2c2m1_xfer: i2c2m1-xfer { 265 + rockchip,pins = 266 + /* i2c2_scl_m1 */ 267 + <1 RK_PA5 3 &pcfg_pull_none_smt>, 268 + /* i2c2_sda_m1 */ 269 + <1 RK_PA6 3 &pcfg_pull_none_smt>; 270 + }; 271 + }; 272 + 273 + i2c3 { 274 + /omit-if-no-ref/ 275 + i2c3m0_xfer: i2c3m0-xfer { 276 + rockchip,pins = 277 + /* i2c3_scl_m0 */ 278 + <1 RK_PA0 2 &pcfg_pull_none_smt>, 279 + /* i2c3_sda_m0 */ 280 + <1 RK_PA1 2 &pcfg_pull_none_smt>; 281 + }; 282 + 283 + /omit-if-no-ref/ 284 + i2c3m1_xfer: i2c3m1-xfer { 285 + rockchip,pins = 286 + /* i2c3_scl_m1 */ 287 + <3 RK_PC1 5 &pcfg_pull_none_smt>, 288 + /* i2c3_sda_m1 */ 289 + <3 RK_PC3 5 &pcfg_pull_none_smt>; 290 + }; 291 + }; 292 + 293 + i2c4 { 294 + /omit-if-no-ref/ 295 + i2c4_xfer: i2c4-xfer { 296 + rockchip,pins = 297 + /* i2c4_scl */ 298 + <2 RK_PA0 4 &pcfg_pull_none_smt>, 299 + /* i2c4_sda */ 300 + <2 RK_PA1 4 &pcfg_pull_none_smt>; 301 + }; 302 + }; 303 + 304 + i2c5 { 305 + /omit-if-no-ref/ 306 + i2c5m0_xfer: i2c5m0-xfer { 307 + rockchip,pins = 308 + /* i2c5_scl_m0 */ 309 + <1 RK_PB2 3 &pcfg_pull_none_smt>, 310 + /* i2c5_sda_m0 */ 311 + <1 RK_PB3 3 &pcfg_pull_none_smt>; 312 + }; 313 + 314 + /omit-if-no-ref/ 315 + i2c5m1_xfer: i2c5m1-xfer { 316 + rockchip,pins = 317 + /* i2c5_scl_m1 */ 318 + <1 RK_PD2 3 &pcfg_pull_none_smt>, 319 + /* i2c5_sda_m1 */ 320 + <1 RK_PD3 3 &pcfg_pull_none_smt>; 321 + }; 322 + }; 323 + 324 + i2c6 { 325 + /omit-if-no-ref/ 326 + i2c6m0_xfer: i2c6m0-xfer { 327 + rockchip,pins = 328 + /* i2c6_scl_m0 */ 329 + <3 RK_PB2 5 &pcfg_pull_none_smt>, 330 + /* i2c6_sda_m0 */ 331 + <3 RK_PB3 5 &pcfg_pull_none_smt>; 332 + }; 333 + 334 + /omit-if-no-ref/ 335 + i2c6m1_xfer: i2c6m1-xfer { 336 + rockchip,pins = 337 + /* i2c6_scl_m1 */ 338 + <1 RK_PD4 3 &pcfg_pull_none_smt>, 339 + /* i2c6_sda_m1 */ 340 + <1 RK_PD7 3 &pcfg_pull_none_smt>; 341 + }; 342 + }; 343 + 344 + i2c7 { 345 + /omit-if-no-ref/ 346 + i2c7_xfer: i2c7-xfer { 347 + rockchip,pins = 348 + /* i2c7_scl */ 349 + <2 RK_PA5 4 &pcfg_pull_none_smt>, 350 + /* i2c7_sda */ 351 + <2 RK_PA6 4 &pcfg_pull_none_smt>; 352 + }; 353 + }; 354 + 355 + i2s0 { 356 + /omit-if-no-ref/ 357 + i2s0m0_lrck: i2s0m0-lrck { 358 + rockchip,pins = 359 + /* i2s0_lrck_m0 */ 360 + <3 RK_PB6 1 &pcfg_pull_none_smt>; 361 + }; 362 + 363 + /omit-if-no-ref/ 364 + i2s0m0_mclk: i2s0m0-mclk { 365 + rockchip,pins = 366 + /* i2s0_mclk_m0 */ 367 + <3 RK_PB4 1 &pcfg_pull_none_smt>; 368 + }; 369 + 370 + /omit-if-no-ref/ 371 + i2s0m0_sclk: i2s0m0-sclk { 372 + rockchip,pins = 373 + /* i2s0_sclk_m0 */ 374 + <3 RK_PB5 1 &pcfg_pull_none_smt>; 375 + }; 376 + 377 + /omit-if-no-ref/ 378 + i2s0m0_sdi: i2s0m0-sdi { 379 + rockchip,pins = 380 + /* i2s0m0_sdi */ 381 + <3 RK_PB7 1 &pcfg_pull_none>; 382 + }; 383 + /omit-if-no-ref/ 384 + i2s0m0_sdo: i2s0m0-sdo { 385 + rockchip,pins = 386 + /* i2s0m0_sdo */ 387 + <3 RK_PC0 1 &pcfg_pull_none>; 388 + }; 389 + 390 + /omit-if-no-ref/ 391 + i2s0m1_lrck: i2s0m1-lrck { 392 + rockchip,pins = 393 + /* i2s0_lrck_m1 */ 394 + <1 RK_PB6 1 &pcfg_pull_none_smt>; 395 + }; 396 + 397 + /omit-if-no-ref/ 398 + i2s0m1_mclk: i2s0m1-mclk { 399 + rockchip,pins = 400 + /* i2s0_mclk_m1 */ 401 + <1 RK_PB4 1 &pcfg_pull_none_smt>; 402 + }; 403 + 404 + /omit-if-no-ref/ 405 + i2s0m1_sclk: i2s0m1-sclk { 406 + rockchip,pins = 407 + /* i2s0_sclk_m1 */ 408 + <1 RK_PB5 1 &pcfg_pull_none_smt>; 409 + }; 410 + 411 + /omit-if-no-ref/ 412 + i2s0m1_sdi: i2s0m1-sdi { 413 + rockchip,pins = 414 + /* i2s0m1_sdi */ 415 + <1 RK_PB7 1 &pcfg_pull_none>; 416 + }; 417 + /omit-if-no-ref/ 418 + i2s0m1_sdo: i2s0m1-sdo { 419 + rockchip,pins = 420 + /* i2s0m1_sdo */ 421 + <1 RK_PC0 1 &pcfg_pull_none>; 422 + }; 423 + }; 424 + 425 + i2s1 { 426 + /omit-if-no-ref/ 427 + i2s1_lrck: i2s1-lrck { 428 + rockchip,pins = 429 + /* i2s1_lrck */ 430 + <4 RK_PA6 1 &pcfg_pull_none_smt>; 431 + }; 432 + 433 + /omit-if-no-ref/ 434 + i2s1_mclk: i2s1-mclk { 435 + rockchip,pins = 436 + /* i2s1_mclk */ 437 + <4 RK_PA4 1 &pcfg_pull_none_smt>; 438 + }; 439 + 440 + /omit-if-no-ref/ 441 + i2s1_sclk: i2s1-sclk { 442 + rockchip,pins = 443 + /* i2s1_sclk */ 444 + <4 RK_PA5 1 &pcfg_pull_none_smt>; 445 + }; 446 + 447 + /omit-if-no-ref/ 448 + i2s1_sdi0: i2s1-sdi0 { 449 + rockchip,pins = 450 + /* i2s1_sdi0 */ 451 + <4 RK_PB4 1 &pcfg_pull_none>; 452 + }; 453 + 454 + /omit-if-no-ref/ 455 + i2s1_sdi1: i2s1-sdi1 { 456 + rockchip,pins = 457 + /* i2s1_sdi1 */ 458 + <4 RK_PB3 1 &pcfg_pull_none>; 459 + }; 460 + 461 + /omit-if-no-ref/ 462 + i2s1_sdi2: i2s1-sdi2 { 463 + rockchip,pins = 464 + /* i2s1_sdi2 */ 465 + <4 RK_PA3 1 &pcfg_pull_none>; 466 + }; 467 + 468 + /omit-if-no-ref/ 469 + i2s1_sdi3: i2s1-sdi3 { 470 + rockchip,pins = 471 + /* i2s1_sdi3 */ 472 + <4 RK_PA2 1 &pcfg_pull_none>; 473 + }; 474 + 475 + /omit-if-no-ref/ 476 + i2s1_sdo0: i2s1-sdo0 { 477 + rockchip,pins = 478 + /* i2s1_sdo0 */ 479 + <4 RK_PA7 1 &pcfg_pull_none>; 480 + }; 481 + 482 + /omit-if-no-ref/ 483 + i2s1_sdo1: i2s1-sdo1 { 484 + rockchip,pins = 485 + /* i2s1_sdo1 */ 486 + <4 RK_PB0 1 &pcfg_pull_none>; 487 + }; 488 + 489 + /omit-if-no-ref/ 490 + i2s1_sdo2: i2s1-sdo2 { 491 + rockchip,pins = 492 + /* i2s1_sdo2 */ 493 + <4 RK_PB1 1 &pcfg_pull_none>; 494 + }; 495 + 496 + /omit-if-no-ref/ 497 + i2s1_sdo3: i2s1-sdo3 { 498 + rockchip,pins = 499 + /* i2s1_sdo3 */ 500 + <4 RK_PB2 1 &pcfg_pull_none>; 501 + }; 502 + }; 503 + 504 + jtag { 505 + /omit-if-no-ref/ 506 + jtagm0_pins: jtagm0-pins { 507 + rockchip,pins = 508 + /* jtag_cpu_tck_m0 */ 509 + <2 RK_PA2 2 &pcfg_pull_none>, 510 + /* jtag_cpu_tms_m0 */ 511 + <2 RK_PA3 2 &pcfg_pull_none>, 512 + /* jtag_mcu_tck_m0 */ 513 + <2 RK_PA4 2 &pcfg_pull_none>, 514 + /* jtag_mcu_tms_m0 */ 515 + <2 RK_PA5 2 &pcfg_pull_none>; 516 + }; 517 + 518 + /omit-if-no-ref/ 519 + jtagm1_pins: jtagm1-pins { 520 + rockchip,pins = 521 + /* jtag_cpu_tck_m1 */ 522 + <4 RK_PD0 2 &pcfg_pull_none>, 523 + /* jtag_cpu_tms_m1 */ 524 + <4 RK_PC7 2 &pcfg_pull_none>, 525 + /* jtag_mcu_tck_m1 */ 526 + <4 RK_PD0 3 &pcfg_pull_none>, 527 + /* jtag_mcu_tms_m1 */ 528 + <4 RK_PC7 3 &pcfg_pull_none>; 529 + }; 530 + }; 531 + 532 + pcie { 533 + /omit-if-no-ref/ 534 + pciem0_pins: pciem0-pins { 535 + rockchip,pins = 536 + /* pcie_clkreqn_m0 */ 537 + <3 RK_PA6 5 &pcfg_pull_none>, 538 + /* pcie_perstn_m0 */ 539 + <3 RK_PB0 5 &pcfg_pull_none>, 540 + /* pcie_waken_m0 */ 541 + <3 RK_PA7 5 &pcfg_pull_none>; 542 + }; 543 + 544 + /omit-if-no-ref/ 545 + pciem1_pins: pciem1-pins { 546 + rockchip,pins = 547 + /* pcie_clkreqn_m1 */ 548 + <1 RK_PA0 4 &pcfg_pull_none>, 549 + /* pcie_perstn_m1 */ 550 + <1 RK_PA2 4 &pcfg_pull_none>, 551 + /* pcie_waken_m1 */ 552 + <1 RK_PA1 4 &pcfg_pull_none>; 553 + }; 554 + }; 555 + 556 + pdm { 557 + /omit-if-no-ref/ 558 + pdm_clk0: pdm-clk0 { 559 + rockchip,pins = 560 + /* pdm_clk0 */ 561 + <4 RK_PB5 3 &pcfg_pull_none>; 562 + }; 563 + 564 + /omit-if-no-ref/ 565 + pdm_clk1: pdm-clk1 { 566 + rockchip,pins = 567 + /* pdm_clk1 */ 568 + <4 RK_PA4 3 &pcfg_pull_none>; 569 + }; 570 + 571 + /omit-if-no-ref/ 572 + pdm_sdi0: pdm-sdi0 { 573 + rockchip,pins = 574 + /* pdm_sdi0 */ 575 + <4 RK_PB2 3 &pcfg_pull_none>; 576 + }; 577 + 578 + /omit-if-no-ref/ 579 + pdm_sdi1: pdm-sdi1 { 580 + rockchip,pins = 581 + /* pdm_sdi1 */ 582 + <4 RK_PB1 3 &pcfg_pull_none>; 583 + }; 584 + 585 + /omit-if-no-ref/ 586 + pdm_sdi2: pdm-sdi2 { 587 + rockchip,pins = 588 + /* pdm_sdi2 */ 589 + <4 RK_PB3 3 &pcfg_pull_none>; 590 + }; 591 + 592 + /omit-if-no-ref/ 593 + pdm_sdi3: pdm-sdi3 { 594 + rockchip,pins = 595 + /* pdm_sdi3 */ 596 + <4 RK_PC1 3 &pcfg_pull_none>; 597 + }; 598 + }; 599 + 600 + pmu { 601 + /omit-if-no-ref/ 602 + pmu_pins: pmu-pins { 603 + rockchip,pins = 604 + /* pmu_debug */ 605 + <4 RK_PA0 4 &pcfg_pull_none>; 606 + }; 607 + }; 608 + 609 + pwm0 { 610 + /omit-if-no-ref/ 611 + pwm0m0_pins: pwm0m0-pins { 612 + rockchip,pins = 613 + /* pwm0_m0 */ 614 + <4 RK_PC3 1 &pcfg_pull_none_drv_level_0>; 615 + }; 616 + 617 + /omit-if-no-ref/ 618 + pwm0m1_pins: pwm0m1-pins { 619 + rockchip,pins = 620 + /* pwm0_m1 */ 621 + <1 RK_PA2 5 &pcfg_pull_none_drv_level_0>; 622 + }; 623 + }; 624 + 625 + pwm1 { 626 + /omit-if-no-ref/ 627 + pwm1m0_pins: pwm1m0-pins { 628 + rockchip,pins = 629 + /* pwm1_m0 */ 630 + <4 RK_PC4 1 &pcfg_pull_none_drv_level_0>; 631 + }; 632 + 633 + /omit-if-no-ref/ 634 + pwm1m1_pins: pwm1m1-pins { 635 + rockchip,pins = 636 + /* pwm1_m1 */ 637 + <1 RK_PA3 4 &pcfg_pull_none_drv_level_0>; 638 + }; 639 + }; 640 + 641 + pwm2 { 642 + /omit-if-no-ref/ 643 + pwm2m0_pins: pwm2m0-pins { 644 + rockchip,pins = 645 + /* pwm2_m0 */ 646 + <4 RK_PC5 1 &pcfg_pull_none_drv_level_0>; 647 + }; 648 + 649 + /omit-if-no-ref/ 650 + pwm2m1_pins: pwm2m1-pins { 651 + rockchip,pins = 652 + /* pwm2_m1 */ 653 + <1 RK_PA7 2 &pcfg_pull_none_drv_level_0>; 654 + }; 655 + }; 656 + 657 + pwm3 { 658 + /omit-if-no-ref/ 659 + pwm3m0_pins: pwm3m0-pins { 660 + rockchip,pins = 661 + /* pwm3_m0 */ 662 + <4 RK_PC6 1 &pcfg_pull_none_drv_level_0>; 663 + }; 664 + 665 + /omit-if-no-ref/ 666 + pwm3m1_pins: pwm3m1-pins { 667 + rockchip,pins = 668 + /* pwm3_m1 */ 669 + <2 RK_PA4 3 &pcfg_pull_none_drv_level_0>; 670 + }; 671 + }; 672 + 673 + pwm4 { 674 + /omit-if-no-ref/ 675 + pwm4m0_pins: pwm4m0-pins { 676 + rockchip,pins = 677 + /* pwm4_m0 */ 678 + <4 RK_PB7 1 &pcfg_pull_none_drv_level_0>; 679 + }; 680 + 681 + /omit-if-no-ref/ 682 + pwm4m1_pins: pwm4m1-pins { 683 + rockchip,pins = 684 + /* pwm4_m1 */ 685 + <1 RK_PA4 2 &pcfg_pull_none_drv_level_0>; 686 + }; 687 + }; 688 + 689 + pwm5 { 690 + /omit-if-no-ref/ 691 + pwm5m0_pins: pwm5m0-pins { 692 + rockchip,pins = 693 + /* pwm5_m0 */ 694 + <4 RK_PC0 1 &pcfg_pull_none_drv_level_0>; 695 + }; 696 + 697 + /omit-if-no-ref/ 698 + pwm5m1_pins: pwm5m1-pins { 699 + rockchip,pins = 700 + /* pwm5_m1 */ 701 + <3 RK_PC3 1 &pcfg_pull_none_drv_level_0>; 702 + }; 703 + }; 704 + 705 + pwm6 { 706 + /omit-if-no-ref/ 707 + pwm6m0_pins: pwm6m0-pins { 708 + rockchip,pins = 709 + /* pwm6_m0 */ 710 + <4 RK_PC1 1 &pcfg_pull_none_drv_level_0>; 711 + }; 712 + 713 + /omit-if-no-ref/ 714 + pwm6m1_pins: pwm6m1-pins { 715 + rockchip,pins = 716 + /* pwm6_m1 */ 717 + <1 RK_PC3 3 &pcfg_pull_none_drv_level_0>; 718 + }; 719 + 720 + /omit-if-no-ref/ 721 + pwm6m2_pins: pwm6m2-pins { 722 + rockchip,pins = 723 + /* pwm6_m2 */ 724 + <3 RK_PC1 1 &pcfg_pull_none_drv_level_0>; 725 + }; 726 + }; 727 + 728 + pwm7 { 729 + /omit-if-no-ref/ 730 + pwm7m0_pins: pwm7m0-pins { 731 + rockchip,pins = 732 + /* pwm7_m0 */ 733 + <4 RK_PC2 1 &pcfg_pull_none_drv_level_0>; 734 + }; 735 + 736 + /omit-if-no-ref/ 737 + pwm7m1_pins: pwm7m1-pins { 738 + rockchip,pins = 739 + /* pwm7_m1 */ 740 + <1 RK_PC2 2 &pcfg_pull_none_drv_level_0>; 741 + }; 742 + }; 743 + 744 + pwr { 745 + /omit-if-no-ref/ 746 + pwr_pins: pwr-pins { 747 + rockchip,pins = 748 + /* pwr_ctrl0 */ 749 + <4 RK_PC2 2 &pcfg_pull_none>, 750 + /* pwr_ctrl1 */ 751 + <4 RK_PB6 1 &pcfg_pull_none>; 752 + }; 753 + }; 754 + 755 + ref { 756 + /omit-if-no-ref/ 757 + refm0_pins: refm0-pins { 758 + rockchip,pins = 759 + /* ref_clk_out_m0 */ 760 + <0 RK_PA1 1 &pcfg_pull_none>; 761 + }; 762 + 763 + /omit-if-no-ref/ 764 + refm1_pins: refm1-pins { 765 + rockchip,pins = 766 + /* ref_clk_out_m1 */ 767 + <3 RK_PC3 6 &pcfg_pull_none>; 768 + }; 769 + }; 770 + 771 + rgmii { 772 + /omit-if-no-ref/ 773 + rgmii_miim: rgmii-miim { 774 + rockchip,pins = 775 + /* rgmii_mdc */ 776 + <3 RK_PB6 2 &pcfg_pull_none_drv_level_2>, 777 + /* rgmii_mdio */ 778 + <3 RK_PB7 2 &pcfg_pull_none_drv_level_2>; 779 + }; 780 + 781 + /omit-if-no-ref/ 782 + rgmii_rx_bus2: rgmii-rx_bus2 { 783 + rockchip,pins = 784 + /* rgmii_rxd0 */ 785 + <3 RK_PA3 2 &pcfg_pull_none>, 786 + /* rgmii_rxd1 */ 787 + <3 RK_PA2 2 &pcfg_pull_none>, 788 + /* rgmii_rxdv_crs */ 789 + <3 RK_PC2 2 &pcfg_pull_none>; 790 + }; 791 + 792 + /omit-if-no-ref/ 793 + rgmii_tx_bus2: rgmii-tx_bus2 { 794 + rockchip,pins = 795 + /* rgmii_txd0 */ 796 + <3 RK_PA1 2 &pcfg_pull_none_drv_level_2>, 797 + /* rgmii_txd1 */ 798 + <3 RK_PA0 2 &pcfg_pull_none_drv_level_2>, 799 + /* rgmii_txen */ 800 + <3 RK_PC0 2 &pcfg_pull_none>; 801 + }; 802 + 803 + /omit-if-no-ref/ 804 + rgmii_rgmii_clk: rgmii-rgmii_clk { 805 + rockchip,pins = 806 + /* rgmii_rxclk */ 807 + <3 RK_PA5 2 &pcfg_pull_none>, 808 + /* rgmii_txclk */ 809 + <3 RK_PA4 2 &pcfg_pull_none_drv_level_2>; 810 + }; 811 + 812 + /omit-if-no-ref/ 813 + rgmii_rgmii_bus: rgmii-rgmii_bus { 814 + rockchip,pins = 815 + /* rgmii_rxd2 */ 816 + <3 RK_PA7 2 &pcfg_pull_none>, 817 + /* rgmii_rxd3 */ 818 + <3 RK_PA6 2 &pcfg_pull_none>, 819 + /* rgmii_txd2 */ 820 + <3 RK_PB1 2 &pcfg_pull_none_drv_level_2>, 821 + /* rgmii_txd3 */ 822 + <3 RK_PB0 2 &pcfg_pull_none_drv_level_2>; 823 + }; 824 + 825 + /omit-if-no-ref/ 826 + rgmii_clk: rgmii-clk { 827 + rockchip,pins = 828 + /* rgmii_clk */ 829 + <3 RK_PB4 2 &pcfg_pull_none>; 830 + }; 831 + /omit-if-no-ref/ 832 + rgmii_txer: rgmii-txer { 833 + rockchip,pins = 834 + /* rgmii_txer */ 835 + <3 RK_PC1 2 &pcfg_pull_none>; 836 + }; 837 + }; 838 + 839 + scr { 840 + /omit-if-no-ref/ 841 + scrm0_pins: scrm0-pins { 842 + rockchip,pins = 843 + /* scr_clk_m0 */ 844 + <1 RK_PA2 3 &pcfg_pull_none>, 845 + /* scr_data_m0 */ 846 + <1 RK_PA1 3 &pcfg_pull_none>, 847 + /* scr_detn_m0 */ 848 + <1 RK_PA0 3 &pcfg_pull_none>, 849 + /* scr_rstn_m0 */ 850 + <1 RK_PA3 3 &pcfg_pull_none>; 851 + }; 852 + 853 + /omit-if-no-ref/ 854 + scrm1_pins: scrm1-pins { 855 + rockchip,pins = 856 + /* scr_clk_m1 */ 857 + <2 RK_PA5 3 &pcfg_pull_none>, 858 + /* scr_data_m1 */ 859 + <2 RK_PA3 4 &pcfg_pull_none>, 860 + /* scr_detn_m1 */ 861 + <2 RK_PA6 3 &pcfg_pull_none>, 862 + /* scr_rstn_m1 */ 863 + <2 RK_PA4 4 &pcfg_pull_none>; 864 + }; 865 + }; 866 + 867 + sdio0 { 868 + /omit-if-no-ref/ 869 + sdio0_bus4: sdio0-bus4 { 870 + rockchip,pins = 871 + /* sdio0_d0 */ 872 + <1 RK_PA0 1 &pcfg_pull_up_drv_level_2>, 873 + /* sdio0_d1 */ 874 + <1 RK_PA1 1 &pcfg_pull_up_drv_level_2>, 875 + /* sdio0_d2 */ 876 + <1 RK_PA2 1 &pcfg_pull_up_drv_level_2>, 877 + /* sdio0_d3 */ 878 + <1 RK_PA3 1 &pcfg_pull_up_drv_level_2>; 879 + }; 880 + 881 + /omit-if-no-ref/ 882 + sdio0_clk: sdio0-clk { 883 + rockchip,pins = 884 + /* sdio0_clk */ 885 + <1 RK_PA5 1 &pcfg_pull_up_drv_level_2>; 886 + }; 887 + 888 + /omit-if-no-ref/ 889 + sdio0_cmd: sdio0-cmd { 890 + rockchip,pins = 891 + /* sdio0_cmd */ 892 + <1 RK_PA4 1 &pcfg_pull_up_drv_level_2>; 893 + }; 894 + 895 + /omit-if-no-ref/ 896 + sdio0_det: sdio0-det { 897 + rockchip,pins = 898 + /* sdio0_det */ 899 + <1 RK_PA6 1 &pcfg_pull_up>; 900 + }; 901 + 902 + /omit-if-no-ref/ 903 + sdio0_pwren: sdio0-pwren { 904 + rockchip,pins = 905 + /* sdio0_pwren */ 906 + <1 RK_PA7 1 &pcfg_pull_none>; 907 + }; 908 + }; 909 + 910 + sdio1 { 911 + /omit-if-no-ref/ 912 + sdio1_bus4: sdio1-bus4 { 913 + rockchip,pins = 914 + /* sdio1_d0 */ 915 + <3 RK_PA6 1 &pcfg_pull_up_drv_level_2>, 916 + /* sdio1_d1 */ 917 + <3 RK_PA7 1 &pcfg_pull_up_drv_level_2>, 918 + /* sdio1_d2 */ 919 + <3 RK_PB0 1 &pcfg_pull_up_drv_level_2>, 920 + /* sdio1_d3 */ 921 + <3 RK_PB1 1 &pcfg_pull_up_drv_level_2>; 922 + }; 923 + 924 + /omit-if-no-ref/ 925 + sdio1_clk: sdio1-clk { 926 + rockchip,pins = 927 + /* sdio1_clk */ 928 + <3 RK_PA4 1 &pcfg_pull_up_drv_level_2>; 929 + }; 930 + 931 + /omit-if-no-ref/ 932 + sdio1_cmd: sdio1-cmd { 933 + rockchip,pins = 934 + /* sdio1_cmd */ 935 + <3 RK_PA5 1 &pcfg_pull_up_drv_level_2>; 936 + }; 937 + 938 + /omit-if-no-ref/ 939 + sdio1_det: sdio1-det { 940 + rockchip,pins = 941 + /* sdio1_det */ 942 + <3 RK_PB3 1 &pcfg_pull_up>; 943 + }; 944 + 945 + /omit-if-no-ref/ 946 + sdio1_pwren: sdio1-pwren { 947 + rockchip,pins = 948 + /* sdio1_pwren */ 949 + <3 RK_PB2 1 &pcfg_pull_none>; 950 + }; 951 + }; 952 + 953 + sdmmc { 954 + /omit-if-no-ref/ 955 + sdmmc_bus4: sdmmc-bus4 { 956 + rockchip,pins = 957 + /* sdmmc_d0 */ 958 + <2 RK_PA0 1 &pcfg_pull_up_drv_level_2>, 959 + /* sdmmc_d1 */ 960 + <2 RK_PA1 1 &pcfg_pull_up_drv_level_2>, 961 + /* sdmmc_d2 */ 962 + <2 RK_PA2 1 &pcfg_pull_up_drv_level_2>, 963 + /* sdmmc_d3 */ 964 + <2 RK_PA3 1 &pcfg_pull_up_drv_level_2>; 965 + }; 966 + 967 + /omit-if-no-ref/ 968 + sdmmc_clk: sdmmc-clk { 969 + rockchip,pins = 970 + /* sdmmc_clk */ 971 + <2 RK_PA5 1 &pcfg_pull_up_drv_level_2>; 972 + }; 973 + 974 + /omit-if-no-ref/ 975 + sdmmc_cmd: sdmmc-cmd { 976 + rockchip,pins = 977 + /* sdmmc_cmd */ 978 + <2 RK_PA4 1 &pcfg_pull_up_drv_level_2>; 979 + }; 980 + 981 + /omit-if-no-ref/ 982 + sdmmc_det: sdmmc-det { 983 + rockchip,pins = 984 + /* sdmmc_detn */ 985 + <2 RK_PA6 1 &pcfg_pull_up>; 986 + }; 987 + 988 + /omit-if-no-ref/ 989 + sdmmc_pwren: sdmmc-pwren { 990 + rockchip,pins = 991 + /* sdmmc_pwren */ 992 + <4 RK_PA1 1 &pcfg_pull_none>; 993 + }; 994 + }; 995 + 996 + spdif { 997 + /omit-if-no-ref/ 998 + spdifm0_pins: spdifm0-pins { 999 + rockchip,pins = 1000 + /* spdif_tx_m0 */ 1001 + <4 RK_PA0 1 &pcfg_pull_none>; 1002 + }; 1003 + 1004 + /omit-if-no-ref/ 1005 + spdifm1_pins: spdifm1-pins { 1006 + rockchip,pins = 1007 + /* spdif_tx_m1 */ 1008 + <1 RK_PC3 2 &pcfg_pull_none>; 1009 + }; 1010 + 1011 + /omit-if-no-ref/ 1012 + spdifm2_pins: spdifm2-pins { 1013 + rockchip,pins = 1014 + /* spdif_tx_m2 */ 1015 + <3 RK_PC3 2 &pcfg_pull_none>; 1016 + }; 1017 + }; 1018 + 1019 + spi0 { 1020 + /omit-if-no-ref/ 1021 + spi0_pins: spi0-pins { 1022 + rockchip,pins = 1023 + /* spi0_clk */ 1024 + <4 RK_PB4 2 &pcfg_pull_none_drv_level_2>, 1025 + /* spi0_miso */ 1026 + <4 RK_PB3 2 &pcfg_pull_none_drv_level_2>, 1027 + /* spi0_mosi */ 1028 + <4 RK_PB2 2 &pcfg_pull_none_drv_level_2>; 1029 + }; 1030 + 1031 + /omit-if-no-ref/ 1032 + spi0_csn0: spi0-csn0 { 1033 + rockchip,pins = 1034 + /* spi0_csn0 */ 1035 + <4 RK_PB6 2 &pcfg_pull_none_drv_level_2>; 1036 + }; 1037 + /omit-if-no-ref/ 1038 + spi0_csn1: spi0-csn1 { 1039 + rockchip,pins = 1040 + /* spi0_csn1 */ 1041 + <4 RK_PC1 2 &pcfg_pull_none_drv_level_2>; 1042 + }; 1043 + }; 1044 + 1045 + spi1 { 1046 + /omit-if-no-ref/ 1047 + spi1_pins: spi1-pins { 1048 + rockchip,pins = 1049 + /* spi1_clk */ 1050 + <1 RK_PB6 2 &pcfg_pull_none_drv_level_2>, 1051 + /* spi1_miso */ 1052 + <1 RK_PC0 2 &pcfg_pull_none_drv_level_2>, 1053 + /* spi1_mosi */ 1054 + <1 RK_PB7 2 &pcfg_pull_none_drv_level_2>; 1055 + }; 1056 + 1057 + /omit-if-no-ref/ 1058 + spi1_csn0: spi1-csn0 { 1059 + rockchip,pins = 1060 + /* spi1_csn0 */ 1061 + <1 RK_PC1 1 &pcfg_pull_none_drv_level_2>; 1062 + }; 1063 + /omit-if-no-ref/ 1064 + spi1_csn1: spi1-csn1 { 1065 + rockchip,pins = 1066 + /* spi1_csn1 */ 1067 + <1 RK_PC2 1 &pcfg_pull_none_drv_level_2>; 1068 + }; 1069 + }; 1070 + 1071 + tsi0 { 1072 + /omit-if-no-ref/ 1073 + tsi0_pins: tsi0-pins { 1074 + rockchip,pins = 1075 + /* tsi0_clkin */ 1076 + <3 RK_PB2 3 &pcfg_pull_none>, 1077 + /* tsi0_d0 */ 1078 + <3 RK_PB1 3 &pcfg_pull_none>, 1079 + /* tsi0_d1 */ 1080 + <3 RK_PB5 3 &pcfg_pull_none>, 1081 + /* tsi0_d2 */ 1082 + <3 RK_PB6 3 &pcfg_pull_none>, 1083 + /* tsi0_d3 */ 1084 + <3 RK_PB7 3 &pcfg_pull_none>, 1085 + /* tsi0_d4 */ 1086 + <3 RK_PA3 3 &pcfg_pull_none>, 1087 + /* tsi0_d5 */ 1088 + <3 RK_PA2 3 &pcfg_pull_none>, 1089 + /* tsi0_d6 */ 1090 + <3 RK_PA1 3 &pcfg_pull_none>, 1091 + /* tsi0_d7 */ 1092 + <3 RK_PA0 3 &pcfg_pull_none>, 1093 + /* tsi0_fail */ 1094 + <3 RK_PC0 3 &pcfg_pull_none>, 1095 + /* tsi0_sync */ 1096 + <3 RK_PB4 3 &pcfg_pull_none>, 1097 + /* tsi0_valid */ 1098 + <3 RK_PB3 3 &pcfg_pull_none>; 1099 + }; 1100 + }; 1101 + 1102 + tsi1 { 1103 + /omit-if-no-ref/ 1104 + tsi1_pins: tsi1-pins { 1105 + rockchip,pins = 1106 + /* tsi1_clkin */ 1107 + <3 RK_PA5 3 &pcfg_pull_none>, 1108 + /* tsi1_d0 */ 1109 + <3 RK_PA4 3 &pcfg_pull_none>, 1110 + /* tsi1_sync */ 1111 + <3 RK_PA7 3 &pcfg_pull_none>, 1112 + /* tsi1_valid */ 1113 + <3 RK_PA6 3 &pcfg_pull_none>; 1114 + }; 1115 + }; 1116 + 1117 + uart0 { 1118 + /omit-if-no-ref/ 1119 + uart0m0_xfer: uart0m0-xfer { 1120 + rockchip,pins = 1121 + /* uart0_rx_m0 */ 1122 + <4 RK_PC7 1 &pcfg_pull_up>, 1123 + /* uart0_tx_m0 */ 1124 + <4 RK_PD0 1 &pcfg_pull_up>; 1125 + }; 1126 + 1127 + /omit-if-no-ref/ 1128 + uart0m1_xfer: uart0m1-xfer { 1129 + rockchip,pins = 1130 + /* uart0_rx_m1 */ 1131 + <2 RK_PA0 2 &pcfg_pull_up>, 1132 + /* uart0_tx_m1 */ 1133 + <2 RK_PA1 2 &pcfg_pull_up>; 1134 + }; 1135 + }; 1136 + 1137 + uart1 { 1138 + /omit-if-no-ref/ 1139 + uart1m0_xfer: uart1m0-xfer { 1140 + rockchip,pins = 1141 + /* uart1_rx_m0 */ 1142 + <4 RK_PA7 2 &pcfg_pull_up>, 1143 + /* uart1_tx_m0 */ 1144 + <4 RK_PA6 2 &pcfg_pull_up>; 1145 + }; 1146 + 1147 + /omit-if-no-ref/ 1148 + uart1m1_xfer: uart1m1-xfer { 1149 + rockchip,pins = 1150 + /* uart1_rx_m1 */ 1151 + <4 RK_PC6 2 &pcfg_pull_up>, 1152 + /* uart1_tx_m1 */ 1153 + <4 RK_PC5 2 &pcfg_pull_up>; 1154 + }; 1155 + 1156 + /omit-if-no-ref/ 1157 + uart1_ctsn: uart1-ctsn { 1158 + rockchip,pins = 1159 + /* uart1_ctsn */ 1160 + <4 RK_PA4 2 &pcfg_pull_none>; 1161 + }; 1162 + /omit-if-no-ref/ 1163 + uart1_rtsn: uart1-rtsn { 1164 + rockchip,pins = 1165 + /* uart1_rtsn */ 1166 + <4 RK_PA5 2 &pcfg_pull_none>; 1167 + }; 1168 + }; 1169 + 1170 + uart2 { 1171 + /omit-if-no-ref/ 1172 + uart2m0_xfer: uart2m0-xfer { 1173 + rockchip,pins = 1174 + /* uart2_rx_m0 */ 1175 + <3 RK_PA0 1 &pcfg_pull_up>, 1176 + /* uart2_tx_m0 */ 1177 + <3 RK_PA1 1 &pcfg_pull_up>; 1178 + }; 1179 + 1180 + /omit-if-no-ref/ 1181 + uart2m0_ctsn: uart2m0-ctsn { 1182 + rockchip,pins = 1183 + /* uart2m0_ctsn */ 1184 + <3 RK_PA3 1 &pcfg_pull_none>; 1185 + }; 1186 + /omit-if-no-ref/ 1187 + uart2m0_rtsn: uart2m0-rtsn { 1188 + rockchip,pins = 1189 + /* uart2m0_rtsn */ 1190 + <3 RK_PA2 1 &pcfg_pull_none>; 1191 + }; 1192 + 1193 + /omit-if-no-ref/ 1194 + uart2m1_xfer: uart2m1-xfer { 1195 + rockchip,pins = 1196 + /* uart2_rx_m1 */ 1197 + <1 RK_PB0 1 &pcfg_pull_up>, 1198 + /* uart2_tx_m1 */ 1199 + <1 RK_PB1 1 &pcfg_pull_up>; 1200 + }; 1201 + 1202 + /omit-if-no-ref/ 1203 + uart2m1_ctsn: uart2m1-ctsn { 1204 + rockchip,pins = 1205 + /* uart2m1_ctsn */ 1206 + <1 RK_PB3 1 &pcfg_pull_none>; 1207 + }; 1208 + /omit-if-no-ref/ 1209 + uart2m1_rtsn: uart2m1-rtsn { 1210 + rockchip,pins = 1211 + /* uart2m1_rtsn */ 1212 + <1 RK_PB2 1 &pcfg_pull_none>; 1213 + }; 1214 + }; 1215 + 1216 + uart3 { 1217 + /omit-if-no-ref/ 1218 + uart3m0_xfer: uart3m0-xfer { 1219 + rockchip,pins = 1220 + /* uart3_rx_m0 */ 1221 + <4 RK_PB0 2 &pcfg_pull_up>, 1222 + /* uart3_tx_m0 */ 1223 + <4 RK_PB1 2 &pcfg_pull_up>; 1224 + }; 1225 + 1226 + /omit-if-no-ref/ 1227 + uart3m1_xfer: uart3m1-xfer { 1228 + rockchip,pins = 1229 + /* uart3_rx_m1 */ 1230 + <4 RK_PB7 3 &pcfg_pull_up>, 1231 + /* uart3_tx_m1 */ 1232 + <4 RK_PC0 3 &pcfg_pull_up>; 1233 + }; 1234 + 1235 + /omit-if-no-ref/ 1236 + uart3_ctsn: uart3-ctsn { 1237 + rockchip,pins = 1238 + /* uart3_ctsn */ 1239 + <4 RK_PA3 3 &pcfg_pull_none>; 1240 + }; 1241 + /omit-if-no-ref/ 1242 + uart3_rtsn: uart3-rtsn { 1243 + rockchip,pins = 1244 + /* uart3_rtsn */ 1245 + <4 RK_PA2 3 &pcfg_pull_none>; 1246 + }; 1247 + }; 1248 + 1249 + uart4 { 1250 + /omit-if-no-ref/ 1251 + uart4_xfer: uart4-xfer { 1252 + rockchip,pins = 1253 + /* uart4_rx */ 1254 + <2 RK_PA2 3 &pcfg_pull_up>, 1255 + /* uart4_tx */ 1256 + <2 RK_PA3 3 &pcfg_pull_up>; 1257 + }; 1258 + 1259 + /omit-if-no-ref/ 1260 + uart4_ctsn: uart4-ctsn { 1261 + rockchip,pins = 1262 + /* uart4_ctsn */ 1263 + <2 RK_PA1 3 &pcfg_pull_none>; 1264 + }; 1265 + /omit-if-no-ref/ 1266 + uart4_rtsn: uart4-rtsn { 1267 + rockchip,pins = 1268 + /* uart4_rtsn */ 1269 + <2 RK_PA0 3 &pcfg_pull_none>; 1270 + }; 1271 + }; 1272 + 1273 + uart5 { 1274 + /omit-if-no-ref/ 1275 + uart5m0_xfer: uart5m0-xfer { 1276 + rockchip,pins = 1277 + /* uart5_rx_m0 */ 1278 + <1 RK_PA2 2 &pcfg_pull_up>, 1279 + /* uart5_tx_m0 */ 1280 + <1 RK_PA3 2 &pcfg_pull_up>; 1281 + }; 1282 + 1283 + /omit-if-no-ref/ 1284 + uart5m0_ctsn: uart5m0-ctsn { 1285 + rockchip,pins = 1286 + /* uart5m0_ctsn */ 1287 + <1 RK_PA6 2 &pcfg_pull_none>; 1288 + }; 1289 + /omit-if-no-ref/ 1290 + uart5m0_rtsn: uart5m0-rtsn { 1291 + rockchip,pins = 1292 + /* uart5m0_rtsn */ 1293 + <1 RK_PA5 2 &pcfg_pull_none>; 1294 + }; 1295 + 1296 + /omit-if-no-ref/ 1297 + uart5m1_xfer: uart5m1-xfer { 1298 + rockchip,pins = 1299 + /* uart5_rx_m1 */ 1300 + <1 RK_PD4 2 &pcfg_pull_up>, 1301 + /* uart5_tx_m1 */ 1302 + <1 RK_PD7 2 &pcfg_pull_up>; 1303 + }; 1304 + 1305 + /omit-if-no-ref/ 1306 + uart5m1_ctsn: uart5m1-ctsn { 1307 + rockchip,pins = 1308 + /* uart5m1_ctsn */ 1309 + <1 RK_PD3 2 &pcfg_pull_none>; 1310 + }; 1311 + /omit-if-no-ref/ 1312 + uart5m1_rtsn: uart5m1-rtsn { 1313 + rockchip,pins = 1314 + /* uart5m1_rtsn */ 1315 + <1 RK_PD2 2 &pcfg_pull_none>; 1316 + }; 1317 + }; 1318 + 1319 + uart6 { 1320 + /omit-if-no-ref/ 1321 + uart6m0_xfer: uart6m0-xfer { 1322 + rockchip,pins = 1323 + /* uart6_rx_m0 */ 1324 + <3 RK_PA7 4 &pcfg_pull_up>, 1325 + /* uart6_tx_m0 */ 1326 + <3 RK_PA6 4 &pcfg_pull_up>; 1327 + }; 1328 + 1329 + /omit-if-no-ref/ 1330 + uart6m1_xfer: uart6m1-xfer { 1331 + rockchip,pins = 1332 + /* uart6_rx_m1 */ 1333 + <3 RK_PC3 4 &pcfg_pull_up>, 1334 + /* uart6_tx_m1 */ 1335 + <3 RK_PC1 4 &pcfg_pull_up>; 1336 + }; 1337 + 1338 + /omit-if-no-ref/ 1339 + uart6_ctsn: uart6-ctsn { 1340 + rockchip,pins = 1341 + /* uart6_ctsn */ 1342 + <3 RK_PA4 4 &pcfg_pull_none>; 1343 + }; 1344 + /omit-if-no-ref/ 1345 + uart6_rtsn: uart6-rtsn { 1346 + rockchip,pins = 1347 + /* uart6_rtsn */ 1348 + <3 RK_PA5 4 &pcfg_pull_none>; 1349 + }; 1350 + }; 1351 + 1352 + uart7 { 1353 + /omit-if-no-ref/ 1354 + uart7m0_xfer: uart7m0-xfer { 1355 + rockchip,pins = 1356 + /* uart7_rx_m0 */ 1357 + <3 RK_PB3 4 &pcfg_pull_up>, 1358 + /* uart7_tx_m0 */ 1359 + <3 RK_PB2 4 &pcfg_pull_up>; 1360 + }; 1361 + 1362 + /omit-if-no-ref/ 1363 + uart7m0_ctsn: uart7m0-ctsn { 1364 + rockchip,pins = 1365 + /* uart7m0_ctsn */ 1366 + <3 RK_PB0 4 &pcfg_pull_none>; 1367 + }; 1368 + /omit-if-no-ref/ 1369 + uart7m0_rtsn: uart7m0-rtsn { 1370 + rockchip,pins = 1371 + /* uart7m0_rtsn */ 1372 + <3 RK_PB1 4 &pcfg_pull_none>; 1373 + }; 1374 + 1375 + /omit-if-no-ref/ 1376 + uart7m1_xfer: uart7m1-xfer { 1377 + rockchip,pins = 1378 + /* uart7_rx_m1 */ 1379 + <1 RK_PB3 4 &pcfg_pull_up>, 1380 + /* uart7_tx_m1 */ 1381 + <1 RK_PB2 4 &pcfg_pull_up>; 1382 + }; 1383 + 1384 + /omit-if-no-ref/ 1385 + uart7m1_ctsn: uart7m1-ctsn { 1386 + rockchip,pins = 1387 + /* uart7m1_ctsn */ 1388 + <1 RK_PB0 4 &pcfg_pull_none>; 1389 + }; 1390 + /omit-if-no-ref/ 1391 + uart7m1_rtsn: uart7m1-rtsn { 1392 + rockchip,pins = 1393 + /* uart7m1_rtsn */ 1394 + <1 RK_PB1 4 &pcfg_pull_none>; 1395 + }; 1396 + }; 1397 + };
+118
arch/arm64/boot/dts/rockchip/rk3528-radxa-e20c.dts
··· 6 6 */ 7 7 8 8 /dts-v1/; 9 + 10 + #include <dt-bindings/input/input.h> 11 + #include <dt-bindings/leds/common.h> 9 12 #include "rk3528.dtsi" 10 13 11 14 / { ··· 18 15 chosen { 19 16 stdout-path = "serial0:1500000n8"; 20 17 }; 18 + 19 + adc-keys { 20 + compatible = "adc-keys"; 21 + io-channels = <&saradc 0>; 22 + io-channel-names = "buttons"; 23 + keyup-threshold-microvolt = <1800000>; 24 + poll-interval = <100>; 25 + 26 + button-maskrom { 27 + label = "MASKROM"; 28 + linux,code = <KEY_SETUP>; 29 + press-threshold-microvolt = <0>; 30 + }; 31 + }; 32 + 33 + gpio-keys { 34 + compatible = "gpio-keys"; 35 + pinctrl-names = "default"; 36 + pinctrl-0 = <&user_key>; 37 + 38 + button-user { 39 + gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_LOW>; 40 + label = "USER"; 41 + linux,code = <BTN_1>; 42 + wakeup-source; 43 + }; 44 + }; 45 + 46 + leds { 47 + compatible = "gpio-leds"; 48 + pinctrl-names = "default"; 49 + pinctrl-0 = <&lan_led_g>, <&sys_led_g>, <&wan_led_g>; 50 + 51 + led-lan { 52 + color = <LED_COLOR_ID_GREEN>; 53 + default-state = "off"; 54 + function = LED_FUNCTION_LAN; 55 + gpios = <&gpio4 RK_PB5 GPIO_ACTIVE_HIGH>; 56 + linux,default-trigger = "netdev"; 57 + }; 58 + 59 + led-sys { 60 + color = <LED_COLOR_ID_GREEN>; 61 + default-state = "on"; 62 + function = LED_FUNCTION_HEARTBEAT; 63 + gpios = <&gpio4 RK_PC1 GPIO_ACTIVE_LOW>; 64 + linux,default-trigger = "heartbeat"; 65 + }; 66 + 67 + led-wan { 68 + color = <LED_COLOR_ID_GREEN>; 69 + default-state = "off"; 70 + function = LED_FUNCTION_WAN; 71 + gpios = <&gpio4 RK_PC0 GPIO_ACTIVE_HIGH>; 72 + linux,default-trigger = "netdev"; 73 + }; 74 + }; 75 + 76 + vcc_1v8: regulator-1v8-vcc { 77 + compatible = "regulator-fixed"; 78 + regulator-name = "vcc_1v8"; 79 + regulator-always-on; 80 + regulator-boot-on; 81 + regulator-min-microvolt = <1800000>; 82 + regulator-max-microvolt = <1800000>; 83 + vin-supply = <&vcc_3v3>; 84 + }; 85 + 86 + vcc_3v3: regulator-3v3-vcc { 87 + compatible = "regulator-fixed"; 88 + regulator-name = "vcc_3v3"; 89 + regulator-always-on; 90 + regulator-boot-on; 91 + regulator-min-microvolt = <3300000>; 92 + regulator-max-microvolt = <3300000>; 93 + vin-supply = <&vcc5v0_sys>; 94 + }; 95 + 96 + vcc5v0_sys: regulator-5v0-vcc-sys { 97 + compatible = "regulator-fixed"; 98 + regulator-name = "vcc5v0_sys"; 99 + regulator-always-on; 100 + regulator-boot-on; 101 + regulator-min-microvolt = <5000000>; 102 + regulator-max-microvolt = <5000000>; 103 + }; 104 + }; 105 + 106 + &pinctrl { 107 + gpio-keys { 108 + user_key: user-key { 109 + rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>; 110 + }; 111 + }; 112 + 113 + leds { 114 + lan_led_g: lan-led-g { 115 + rockchip,pins = <4 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; 116 + }; 117 + 118 + sys_led_g: sys-led-g { 119 + rockchip,pins = <4 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; 120 + }; 121 + 122 + wan_led_g: wan-led-g { 123 + rockchip,pins = <4 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>; 124 + }; 125 + }; 126 + }; 127 + 128 + &saradc { 129 + vref-supply = <&vcc_1v8>; 130 + status = "okay"; 21 131 }; 22 132 23 133 &uart0 { 134 + pinctrl-names = "default"; 135 + pinctrl-0 = <&uart0m0_xfer>; 24 136 status = "okay"; 25 137 };
+353 -1
arch/arm64/boot/dts/rockchip/rk3528.dtsi
··· 4 4 * Copyright (c) 2024 Yao Zi <ziyao@disroot.org> 5 5 */ 6 6 7 + #include <dt-bindings/gpio/gpio.h> 7 8 #include <dt-bindings/interrupt-controller/arm-gic.h> 8 9 #include <dt-bindings/interrupt-controller/irq.h> 10 + #include <dt-bindings/pinctrl/rockchip.h> 11 + #include <dt-bindings/clock/rockchip,rk3528-cru.h> 12 + #include <dt-bindings/reset/rockchip,rk3528-cru.h> 9 13 10 14 / { 11 15 compatible = "rockchip,rk3528"; ··· 19 15 #size-cells = <2>; 20 16 21 17 aliases { 18 + gpio0 = &gpio0; 19 + gpio1 = &gpio1; 20 + gpio2 = &gpio2; 21 + gpio3 = &gpio3; 22 + gpio4 = &gpio4; 22 23 serial0 = &uart0; 23 24 serial1 = &uart1; 24 25 serial2 = &uart2; ··· 60 51 reg = <0x0>; 61 52 device_type = "cpu"; 62 53 enable-method = "psci"; 54 + clocks = <&scmi_clk SCMI_CLK_CPU>; 63 55 }; 64 56 65 57 cpu1: cpu@1 { ··· 68 58 reg = <0x1>; 69 59 device_type = "cpu"; 70 60 enable-method = "psci"; 61 + clocks = <&scmi_clk SCMI_CLK_CPU>; 71 62 }; 72 63 73 64 cpu2: cpu@2 { ··· 76 65 reg = <0x2>; 77 66 device_type = "cpu"; 78 67 enable-method = "psci"; 68 + clocks = <&scmi_clk SCMI_CLK_CPU>; 79 69 }; 80 70 81 71 cpu3: cpu@3 { ··· 84 72 reg = <0x3>; 85 73 device_type = "cpu"; 86 74 enable-method = "psci"; 75 + clocks = <&scmi_clk SCMI_CLK_CPU>; 76 + }; 77 + }; 78 + 79 + firmware { 80 + scmi: scmi { 81 + compatible = "arm,scmi-smc"; 82 + arm,smc-id = <0x82000010>; 83 + shmem = <&scmi_shmem>; 84 + #address-cells = <1>; 85 + #size-cells = <0>; 86 + 87 + scmi_clk: protocol@14 { 88 + reg = <0x14>; 89 + #clock-cells = <1>; 90 + }; 87 91 }; 88 92 }; 89 93 90 94 psci { 91 95 compatible = "arm,psci-1.0", "arm,psci-0.2"; 92 96 method = "smc"; 97 + }; 98 + 99 + reserved-memory { 100 + #address-cells = <2>; 101 + #size-cells = <2>; 102 + ranges; 103 + 104 + scmi_shmem: shmem@10f000 { 105 + compatible = "arm,scmi-shmem"; 106 + reg = <0x0 0x0010f000 0x0 0x100>; 107 + no-map; 108 + }; 93 109 }; 94 110 95 111 timer { ··· 132 92 compatible = "fixed-clock"; 133 93 clock-frequency = <24000000>; 134 94 clock-output-names = "xin24m"; 95 + #clock-cells = <0>; 96 + }; 97 + 98 + gmac0_clk: clock-gmac50m { 99 + compatible = "fixed-clock"; 100 + clock-frequency = <50000000>; 101 + clock-output-names = "gmac0"; 135 102 #clock-cells = <0>; 136 103 }; 137 104 ··· 161 114 #interrupt-cells = <3>; 162 115 }; 163 116 117 + qos_crypto_a: qos@ff200000 { 118 + compatible = "rockchip,rk3528-qos", "syscon"; 119 + reg = <0x0 0xff200000 0x0 0x20>; 120 + }; 121 + 122 + qos_crypto_p: qos@ff200080 { 123 + compatible = "rockchip,rk3528-qos", "syscon"; 124 + reg = <0x0 0xff200080 0x0 0x20>; 125 + }; 126 + 127 + qos_dcf: qos@ff200100 { 128 + compatible = "rockchip,rk3528-qos", "syscon"; 129 + reg = <0x0 0xff200100 0x0 0x20>; 130 + }; 131 + 132 + qos_dft2apb: qos@ff200200 { 133 + compatible = "rockchip,rk3528-qos", "syscon"; 134 + reg = <0x0 0xff200200 0x0 0x20>; 135 + }; 136 + 137 + qos_dma2ddr: qos@ff200280 { 138 + compatible = "rockchip,rk3528-qos", "syscon"; 139 + reg = <0x0 0xff200280 0x0 0x20>; 140 + }; 141 + 142 + qos_dmac: qos@ff200300 { 143 + compatible = "rockchip,rk3528-qos", "syscon"; 144 + reg = <0x0 0xff200300 0x0 0x20>; 145 + }; 146 + 147 + qos_keyreader: qos@ff200380 { 148 + compatible = "rockchip,rk3528-qos", "syscon"; 149 + reg = <0x0 0xff200380 0x0 0x20>; 150 + }; 151 + 152 + qos_cpu: qos@ff210000 { 153 + compatible = "rockchip,rk3528-qos", "syscon"; 154 + reg = <0x0 0xff210000 0x0 0x20>; 155 + }; 156 + 157 + qos_debug: qos@ff210080 { 158 + compatible = "rockchip,rk3528-qos", "syscon"; 159 + reg = <0x0 0xff210080 0x0 0x20>; 160 + }; 161 + 162 + qos_gpu_m0: qos@ff220000 { 163 + compatible = "rockchip,rk3528-qos", "syscon"; 164 + reg = <0x0 0xff220000 0x0 0x20>; 165 + }; 166 + 167 + qos_gpu_m1: qos@ff220080 { 168 + compatible = "rockchip,rk3528-qos", "syscon"; 169 + reg = <0x0 0xff220080 0x0 0x20>; 170 + }; 171 + 172 + qos_pmu_mcu: qos@ff240000 { 173 + compatible = "rockchip,rk3528-qos", "syscon"; 174 + reg = <0x0 0xff240000 0x0 0x20>; 175 + }; 176 + 177 + qos_rkvdec: qos@ff250000 { 178 + compatible = "rockchip,rk3528-qos", "syscon"; 179 + reg = <0x0 0xff250000 0x0 0x20>; 180 + }; 181 + 182 + qos_rkvenc: qos@ff260000 { 183 + compatible = "rockchip,rk3528-qos", "syscon"; 184 + reg = <0x0 0xff260000 0x0 0x20>; 185 + }; 186 + 187 + qos_gmac0: qos@ff270000 { 188 + compatible = "rockchip,rk3528-qos", "syscon"; 189 + reg = <0x0 0xff270000 0x0 0x20>; 190 + }; 191 + 192 + qos_hdcp: qos@ff270080 { 193 + compatible = "rockchip,rk3528-qos", "syscon"; 194 + reg = <0x0 0xff270080 0x0 0x20>; 195 + }; 196 + 197 + qos_jpegdec: qos@ff270100 { 198 + compatible = "rockchip,rk3528-qos", "syscon"; 199 + reg = <0x0 0xff270100 0x0 0x20>; 200 + }; 201 + 202 + qos_rga2_m0ro: qos@ff270200 { 203 + compatible = "rockchip,rk3528-qos", "syscon"; 204 + reg = <0x0 0xff270200 0x0 0x20>; 205 + }; 206 + 207 + qos_rga2_m0wo: qos@ff270280 { 208 + compatible = "rockchip,rk3528-qos", "syscon"; 209 + reg = <0x0 0xff270280 0x0 0x20>; 210 + }; 211 + 212 + qos_sdmmc0: qos@ff270300 { 213 + compatible = "rockchip,rk3528-qos", "syscon"; 214 + reg = <0x0 0xff270300 0x0 0x20>; 215 + }; 216 + 217 + qos_usb2host: qos@ff270380 { 218 + compatible = "rockchip,rk3528-qos", "syscon"; 219 + reg = <0x0 0xff270380 0x0 0x20>; 220 + }; 221 + 222 + qos_vdpp: qos@ff270480 { 223 + compatible = "rockchip,rk3528-qos", "syscon"; 224 + reg = <0x0 0xff270480 0x0 0x20>; 225 + }; 226 + 227 + qos_vop: qos@ff270500 { 228 + compatible = "rockchip,rk3528-qos", "syscon"; 229 + reg = <0x0 0xff270500 0x0 0x20>; 230 + }; 231 + 232 + qos_emmc: qos@ff280000 { 233 + compatible = "rockchip,rk3528-qos", "syscon"; 234 + reg = <0x0 0xff280000 0x0 0x20>; 235 + }; 236 + 237 + qos_fspi: qos@ff280080 { 238 + compatible = "rockchip,rk3528-qos", "syscon"; 239 + reg = <0x0 0xff280080 0x0 0x20>; 240 + }; 241 + 242 + qos_gmac1: qos@ff280100 { 243 + compatible = "rockchip,rk3528-qos", "syscon"; 244 + reg = <0x0 0xff280100 0x0 0x20>; 245 + }; 246 + 247 + qos_pcie: qos@ff280180 { 248 + compatible = "rockchip,rk3528-qos", "syscon"; 249 + reg = <0x0 0xff280180 0x0 0x20>; 250 + }; 251 + 252 + qos_sdio0: qos@ff280200 { 253 + compatible = "rockchip,rk3528-qos", "syscon"; 254 + reg = <0x0 0xff280200 0x0 0x20>; 255 + }; 256 + 257 + qos_sdio1: qos@ff280280 { 258 + compatible = "rockchip,rk3528-qos", "syscon"; 259 + reg = <0x0 0xff280280 0x0 0x20>; 260 + }; 261 + 262 + qos_tsp: qos@ff280300 { 263 + compatible = "rockchip,rk3528-qos", "syscon"; 264 + reg = <0x0 0xff280300 0x0 0x20>; 265 + }; 266 + 267 + qos_usb3otg: qos@ff280380 { 268 + compatible = "rockchip,rk3528-qos", "syscon"; 269 + reg = <0x0 0xff280380 0x0 0x20>; 270 + }; 271 + 272 + qos_vpu: qos@ff280400 { 273 + compatible = "rockchip,rk3528-qos", "syscon"; 274 + reg = <0x0 0xff280400 0x0 0x20>; 275 + }; 276 + 277 + cru: clock-controller@ff4a0000 { 278 + compatible = "rockchip,rk3528-cru"; 279 + reg = <0x0 0xff4a0000 0x0 0x30000>; 280 + assigned-clocks = 281 + <&cru XIN_OSC0_DIV>, <&cru PLL_GPLL>, 282 + <&cru PLL_PPLL>, <&cru PLL_CPLL>, 283 + <&cru ARMCLK>, <&cru CLK_MATRIX_250M_SRC>, 284 + <&cru CLK_MATRIX_500M_SRC>, 285 + <&cru CLK_MATRIX_50M_SRC>, 286 + <&cru CLK_MATRIX_100M_SRC>, 287 + <&cru CLK_MATRIX_150M_SRC>, 288 + <&cru CLK_MATRIX_200M_SRC>, 289 + <&cru CLK_MATRIX_300M_SRC>, 290 + <&cru CLK_MATRIX_339M_SRC>, 291 + <&cru CLK_MATRIX_400M_SRC>, 292 + <&cru CLK_MATRIX_600M_SRC>, 293 + <&cru CLK_PPLL_50M_MATRIX>, 294 + <&cru CLK_PPLL_100M_MATRIX>, 295 + <&cru CLK_PPLL_125M_MATRIX>, 296 + <&cru ACLK_BUS_VOPGL_ROOT>; 297 + assigned-clock-rates = 298 + <32768>, <1188000000>, 299 + <1000000000>, <996000000>, 300 + <408000000>, <250000000>, 301 + <500000000>, 302 + <50000000>, 303 + <100000000>, 304 + <150000000>, 305 + <200000000>, 306 + <300000000>, 307 + <340000000>, 308 + <400000000>, 309 + <600000000>, 310 + <50000000>, 311 + <100000000>, 312 + <125000000>, 313 + <500000000>; 314 + clocks = <&xin24m>, <&gmac0_clk>; 315 + clock-names = "xin24m", "gmac0"; 316 + #clock-cells = <1>; 317 + #reset-cells = <1>; 318 + }; 319 + 320 + ioc_grf: syscon@ff540000 { 321 + compatible = "rockchip,rk3528-ioc-grf", "syscon"; 322 + reg = <0x0 0xff540000 0x0 0x40000>; 323 + }; 324 + 164 325 uart0: serial@ff9f0000 { 165 326 compatible = "rockchip,rk3528-uart", "snps,dw-apb-uart"; 166 327 reg = <0x0 0xff9f0000 0x0 0x100>; 167 - clock-frequency = <24000000>; 328 + clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>; 329 + clock-names = "baudclk", "apb_pclk"; 168 330 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; 169 331 reg-io-width = <4>; 170 332 reg-shift = <2>; ··· 383 127 uart1: serial@ff9f8000 { 384 128 compatible = "rockchip,rk3528-uart", "snps,dw-apb-uart"; 385 129 reg = <0x0 0xff9f8000 0x0 0x100>; 130 + clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>; 131 + clock-names = "baudclk", "apb_pclk"; 386 132 interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; 387 133 reg-io-width = <4>; 388 134 reg-shift = <2>; ··· 394 136 uart2: serial@ffa00000 { 395 137 compatible = "rockchip,rk3528-uart", "snps,dw-apb-uart"; 396 138 reg = <0x0 0xffa00000 0x0 0x100>; 139 + clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>; 140 + clock-names = "baudclk", "apb_pclk"; 397 141 interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>; 398 142 reg-io-width = <4>; 399 143 reg-shift = <2>; ··· 404 144 405 145 uart3: serial@ffa08000 { 406 146 compatible = "rockchip,rk3528-uart", "snps,dw-apb-uart"; 147 + clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>; 148 + clock-names = "baudclk", "apb_pclk"; 407 149 reg = <0x0 0xffa08000 0x0 0x100>; 408 150 reg-io-width = <4>; 409 151 reg-shift = <2>; ··· 415 153 uart4: serial@ffa10000 { 416 154 compatible = "rockchip,rk3528-uart", "snps,dw-apb-uart"; 417 155 reg = <0x0 0xffa10000 0x0 0x100>; 156 + clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>; 157 + clock-names = "baudclk", "apb_pclk"; 418 158 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>; 419 159 reg-io-width = <4>; 420 160 reg-shift = <2>; ··· 426 162 uart5: serial@ffa18000 { 427 163 compatible = "rockchip,rk3528-uart", "snps,dw-apb-uart"; 428 164 reg = <0x0 0xffa18000 0x0 0x100>; 165 + clocks = <&cru SCLK_UART5>, <&cru PCLK_UART5>; 166 + clock-names = "baudclk", "apb_pclk"; 429 167 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; 430 168 reg-io-width = <4>; 431 169 reg-shift = <2>; ··· 437 171 uart6: serial@ffa20000 { 438 172 compatible = "rockchip,rk3528-uart", "snps,dw-apb-uart"; 439 173 reg = <0x0 0xffa20000 0x0 0x100>; 174 + clocks = <&cru SCLK_UART6>, <&cru PCLK_UART6>; 175 + clock-names = "baudclk", "apb_pclk"; 440 176 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; 441 177 reg-io-width = <4>; 442 178 reg-shift = <2>; ··· 448 180 uart7: serial@ffa28000 { 449 181 compatible = "rockchip,rk3528-uart", "snps,dw-apb-uart"; 450 182 reg = <0x0 0xffa28000 0x0 0x100>; 183 + clocks = <&cru SCLK_UART7>, <&cru PCLK_UART7>; 184 + clock-names = "baudclk", "apb_pclk"; 451 185 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>; 452 186 reg-io-width = <4>; 453 187 reg-shift = <2>; 454 188 status = "disabled"; 455 189 }; 190 + 191 + saradc: adc@ffae0000 { 192 + compatible = "rockchip,rk3528-saradc"; 193 + reg = <0x0 0xffae0000 0x0 0x10000>; 194 + clocks = <&cru CLK_SARADC>, <&cru PCLK_SARADC>; 195 + clock-names = "saradc", "apb_pclk"; 196 + interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>; 197 + resets = <&cru SRST_P_SARADC>; 198 + reset-names = "saradc-apb"; 199 + #io-channel-cells = <1>; 200 + status = "disabled"; 201 + }; 202 + 203 + pinctrl: pinctrl { 204 + compatible = "rockchip,rk3528-pinctrl"; 205 + rockchip,grf = <&ioc_grf>; 206 + #address-cells = <2>; 207 + #size-cells = <2>; 208 + ranges; 209 + 210 + gpio0: gpio@ff610000 { 211 + compatible = "rockchip,gpio-bank"; 212 + reg = <0x0 0xff610000 0x0 0x200>; 213 + clocks = <&cru PCLK_GPIO0>, <&cru DBCLK_GPIO0>; 214 + interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; 215 + gpio-controller; 216 + #gpio-cells = <2>; 217 + gpio-ranges = <&pinctrl 0 0 32>; 218 + interrupt-controller; 219 + #interrupt-cells = <2>; 220 + }; 221 + 222 + gpio1: gpio@ffaf0000 { 223 + compatible = "rockchip,gpio-bank"; 224 + reg = <0x0 0xffaf0000 0x0 0x200>; 225 + clocks = <&cru PCLK_GPIO1>, <&cru DBCLK_GPIO1>; 226 + interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; 227 + gpio-controller; 228 + #gpio-cells = <2>; 229 + gpio-ranges = <&pinctrl 0 32 32>; 230 + interrupt-controller; 231 + #interrupt-cells = <2>; 232 + }; 233 + 234 + gpio2: gpio@ffb00000 { 235 + compatible = "rockchip,gpio-bank"; 236 + reg = <0x0 0xffb00000 0x0 0x200>; 237 + clocks = <&cru PCLK_GPIO2>, <&cru DBCLK_GPIO2>; 238 + interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; 239 + gpio-controller; 240 + #gpio-cells = <2>; 241 + gpio-ranges = <&pinctrl 0 64 32>; 242 + interrupt-controller; 243 + #interrupt-cells = <2>; 244 + }; 245 + 246 + gpio3: gpio@ffb10000 { 247 + compatible = "rockchip,gpio-bank"; 248 + reg = <0x0 0xffb10000 0x0 0x200>; 249 + clocks = <&cru PCLK_GPIO3>, <&cru DBCLK_GPIO3>; 250 + interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; 251 + gpio-controller; 252 + #gpio-cells = <2>; 253 + gpio-ranges = <&pinctrl 0 96 32>; 254 + interrupt-controller; 255 + #interrupt-cells = <2>; 256 + }; 257 + 258 + gpio4: gpio@ffb20000 { 259 + compatible = "rockchip,gpio-bank"; 260 + reg = <0x0 0xffb20000 0x0 0x200>; 261 + clocks = <&cru PCLK_GPIO4>, <&cru DBCLK_GPIO4>; 262 + interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>; 263 + gpio-controller; 264 + #gpio-cells = <2>; 265 + gpio-ranges = <&pinctrl 0 128 32>; 266 + interrupt-controller; 267 + #interrupt-cells = <2>; 268 + }; 269 + }; 456 270 }; 457 271 }; 272 + 273 + #include "rk3528-pinctrl.dtsi"
+2
arch/arm64/boot/dts/rockchip/rk3566-pinenote.dtsi
··· 9 9 #include "rk3566.dtsi" 10 10 11 11 / { 12 + chassis-type = "tablet"; 13 + 12 14 aliases { 13 15 mmc0 = &sdhci; 14 16 };
+6 -2
arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts
··· 265 265 }; 266 266 267 267 &gmac1 { 268 - assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>; 269 - assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>, <&gmac1_clkin>; 268 + assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, 269 + <&cru SCLK_GMAC1_RGMII_SPEED>, 270 + <&cru SCLK_GMAC1>; 271 + assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, 272 + <&cru SCLK_GMAC1>, 273 + <&gmac1_clkin>; 270 274 clock_in_out = "input"; 271 275 phy-supply = <&vcc_3v3>; 272 276 phy-mode = "rgmii";
+6 -2
arch/arm64/boot/dts/rockchip/rk3566-quartz64-b.dts
··· 173 173 }; 174 174 175 175 &gmac1 { 176 - assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>; 177 - assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>, <&gmac1_clkin>; 176 + assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, 177 + <&cru SCLK_GMAC1_RGMII_SPEED>, 178 + <&cru SCLK_GMAC1>; 179 + assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, 180 + <&cru SCLK_GMAC1>, 181 + <&gmac1_clkin>; 178 182 clock_in_out = "input"; 179 183 phy-mode = "rgmii"; 180 184 phy-supply = <&vcc_3v3>;
+588
arch/arm64/boot/dts/rockchip/rk3568-photonicat.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 <dt-bindings/soc/rockchip,vop2.h> 8 + #include "rk3568.dtsi" 9 + 10 + / { 11 + model = "Ariaboard Photonicat"; 12 + compatible = "ariaboard,photonicat", "rockchip,rk3568"; 13 + 14 + aliases { 15 + ethernet0 = &gmac0; 16 + ethernet1 = &gmac1; 17 + mmc0 = &sdhci; 18 + mmc1 = &sdmmc0; 19 + mmc2 = &sdmmc1; 20 + }; 21 + 22 + battery: battery { 23 + compatible = "simple-battery"; 24 + device-chemistry = "lithium-ion"; 25 + charge-full-design-microamp-hours = <6800000>; 26 + energy-full-design-microwatt-hours = <25000000>; 27 + voltage-max-design-microvolt = <4200000>; 28 + voltage-min-design-microvolt = <3400000>; 29 + 30 + ocv-capacity-celsius = <25>; 31 + ocv-capacity-table-0 = <4100000 100>, <4040000 90>, 32 + <3980000 80>, <3920000 70>, 33 + <3870000 60>, <3820000 50>, 34 + <3790000 40>, <3770000 30>, 35 + <3740000 20>, <3680000 10>, 36 + <3450000 0>; 37 + }; 38 + 39 + chosen: chosen { 40 + stdout-path = "serial2:1500000n8"; 41 + }; 42 + 43 + hdmi_con: hdmi-con { 44 + compatible = "hdmi-connector"; 45 + type = "a"; 46 + 47 + port { 48 + hdmi_con_in: endpoint { 49 + remote-endpoint = <&hdmi_out_con>; 50 + }; 51 + }; 52 + }; 53 + 54 + vcc_1v8: regulator-vcc-1v8 { 55 + compatible = "regulator-fixed"; 56 + regulator-name = "vcc_1v8"; 57 + regulator-always-on; 58 + regulator-boot-on; 59 + regulator-min-microvolt = <1800000>; 60 + regulator-max-microvolt = <1800000>; 61 + vin-supply = <&vcc3v3_sys>; 62 + }; 63 + 64 + vcc_3v3: regulator-vcc-3v3 { 65 + compatible = "regulator-fixed"; 66 + regulator-name = "vcc_3v3"; 67 + regulator-always-on; 68 + regulator-boot-on; 69 + regulator-min-microvolt = <3300000>; 70 + regulator-max-microvolt = <3300000>; 71 + vin-supply = <&vcc3v3_sys>; 72 + }; 73 + 74 + /* actually fed by vcc_syson, dependent 75 + * on pi6c clock generator 76 + */ 77 + vcc3v3_pcie: regulator-vcc3v3-pcie { 78 + compatible = "regulator-fixed"; 79 + regulator-name = "vcc3v3_pcie"; 80 + regulator-always-on; 81 + regulator-boot-on; 82 + regulator-min-microvolt = <3300000>; 83 + regulator-max-microvolt = <3300000>; 84 + vin-supply = <&vcc3v3_pi6c>; 85 + }; 86 + 87 + /* pi6c pcie clock generator */ 88 + vcc3v3_pi6c: regulator-vcc3v3-pi6c { 89 + compatible = "regulator-fixed"; 90 + enable-active-high; 91 + gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>; 92 + pinctrl-names = "default"; 93 + pinctrl-0 = <&pcie_pwren_h>; 94 + regulator-name = "vcc3v3_pi6c"; 95 + regulator-min-microvolt = <3300000>; 96 + regulator-max-microvolt = <3300000>; 97 + vin-supply = <&vcc_syson>; 98 + }; 99 + 100 + vcc3v3_sd: regulator-vcc3v3-sd { 101 + compatible = "regulator-fixed"; 102 + gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_LOW>; 103 + pinctrl-names = "default"; 104 + pinctrl-0 = <&sdmmc0_pwren>; 105 + regulator-boot-on; 106 + regulator-name = "vcc3v3_sd"; 107 + regulator-min-microvolt = <3300000>; 108 + regulator-max-microvolt = <3300000>; 109 + vin-supply = <&vcc_3v3>; 110 + }; 111 + 112 + vcc3v3_sys: regulator-vcc3v3-sys { 113 + compatible = "regulator-fixed"; 114 + regulator-name = "vcc3v3_sys"; 115 + regulator-always-on; 116 + regulator-boot-on; 117 + regulator-min-microvolt = <3300000>; 118 + regulator-max-microvolt = <3300000>; 119 + vin-supply = <&vcc_syson>; 120 + }; 121 + 122 + vcc3v4_rf: regulator-vcc3v4-rf { 123 + compatible = "regulator-fixed"; 124 + enable-active-high; 125 + gpio = <&gpio4 RK_PC2 GPIO_ACTIVE_HIGH>; 126 + pinctrl-names = "default"; 127 + pinctrl-0 = <&rf_pwr_en>; 128 + regulator-name = "vcc3v4_rf"; 129 + regulator-min-microvolt = <3400000>; 130 + regulator-max-microvolt = <3400000>; 131 + vin-supply = <&vccin_5v>; 132 + }; 133 + 134 + vcc5v0_usb30_otg0: regulator-vcc5v0-usb30-otg0 { 135 + compatible = "regulator-fixed"; 136 + enable-active-high; 137 + gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>; 138 + pinctrl-names = "default"; 139 + pinctrl-0 = <&usb_host_pwren_h>; 140 + regulator-name = "vcc5v0_usb30_otg0"; 141 + regulator-min-microvolt = <5000000>; 142 + regulator-max-microvolt = <5000000>; 143 + vin-supply = <&vccin_5v>; 144 + }; 145 + 146 + vccin_5v: regulator-vccin-5v { 147 + compatible = "regulator-fixed"; 148 + regulator-name = "vccin_5v"; 149 + regulator-always-on; 150 + regulator-boot-on; 151 + regulator-min-microvolt = <5000000>; 152 + regulator-max-microvolt = <5000000>; 153 + }; 154 + 155 + vcc_sysin: regulator-vcc-sysin { 156 + compatible = "regulator-fixed"; 157 + regulator-name = "vcc_sysin"; 158 + regulator-always-on; 159 + regulator-boot-on; 160 + regulator-min-microvolt = <5000000>; 161 + regulator-max-microvolt = <5000000>; 162 + vin-supply = <&vccin_5v>; 163 + }; 164 + 165 + vcc_syson: regulator-vcc-syson { 166 + compatible = "regulator-fixed"; 167 + regulator-name = "vcc_syson"; 168 + regulator-always-on; 169 + regulator-boot-on; 170 + regulator-min-microvolt = <5000000>; 171 + regulator-max-microvolt = <5000000>; 172 + vin-supply = <&vcc_sysin>; 173 + }; 174 + 175 + vcca_1v8: regulator-vcca-1v8 { 176 + compatible = "regulator-fixed"; 177 + regulator-name = "vcca_1v8"; 178 + regulator-always-on; 179 + regulator-boot-on; 180 + regulator-min-microvolt = <1800000>; 181 + regulator-max-microvolt = <1800000>; 182 + vin-supply = <&vcc3v3_sys>; 183 + }; 184 + 185 + vdda_0v9: regulator-vdda-0v9 { 186 + compatible = "regulator-fixed"; 187 + regulator-name = "vdda_0v9"; 188 + regulator-always-on; 189 + regulator-boot-on; 190 + regulator-min-microvolt = <900000>; 191 + regulator-max-microvolt = <900000>; 192 + vin-supply = <&vcc3v3_sys>; 193 + }; 194 + 195 + vdd_gpu: regulator-vdd-gpu { 196 + compatible = "pwm-regulator"; 197 + pwms = <&pwm2 0 5000 1>; 198 + pwm-supply = <&vcc_syson>; 199 + regulator-name = "vdd_gpu"; 200 + regulator-min-microvolt = <800000>; 201 + regulator-max-microvolt = <1350000>; 202 + regulator-ramp-delay = <6001>; 203 + regulator-settling-time-up-us = <250>; 204 + }; 205 + 206 + vdd_logic: regulator-vdd-logic { 207 + compatible = "pwm-regulator"; 208 + pwms = <&pwm1 0 5000 1>; 209 + pwm-supply = <&vcc_syson>; 210 + regulator-name = "vdd_logic"; 211 + regulator-min-microvolt = <500000>; 212 + regulator-max-microvolt = <1350000>; 213 + regulator-ramp-delay = <6001>; 214 + regulator-settling-time-up-us = <250>; 215 + }; 216 + 217 + rfkill-modem { 218 + compatible = "rfkill-gpio"; 219 + label = "M.2 USB Modem"; 220 + radio-type = "wwan"; 221 + shutdown-gpios = <&gpio4 RK_PC4 GPIO_ACTIVE_HIGH>; 222 + }; 223 + 224 + wifi_pwrseq: wifi-pwrseq { 225 + compatible = "mmc-pwrseq-simple"; 226 + clocks = <&pmucru CLK_RTC_32K>; 227 + clock-names = "ext_clock"; 228 + pinctrl-names = "default"; 229 + pinctrl-0 = <&wifi_reg_on_h &clk32k_out1>; 230 + post-power-on-delay-ms = <200>; 231 + reset-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>; 232 + }; 233 + }; 234 + 235 + &combphy0 { 236 + status = "okay"; 237 + }; 238 + 239 + &combphy1 { 240 + status = "okay"; 241 + }; 242 + 243 + &combphy2 { 244 + status = "okay"; 245 + }; 246 + 247 + &cpu0 { 248 + cpu-supply = <&vdd_cpu>; 249 + }; 250 + 251 + &cpu1 { 252 + cpu-supply = <&vdd_cpu>; 253 + }; 254 + 255 + &cpu2 { 256 + cpu-supply = <&vdd_cpu>; 257 + }; 258 + 259 + &cpu3 { 260 + cpu-supply = <&vdd_cpu>; 261 + }; 262 + 263 + /* Motorcomm YT8521SC LAN port (require SGMII) */ 264 + &gmac0 { 265 + status = "disabled"; 266 + }; 267 + 268 + /* Motorcomm YT8521SC WAN port */ 269 + &gmac1 { 270 + assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>; 271 + assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>; 272 + assigned-clock-rates = <0>, <125000000>; 273 + clock_in_out = "output"; 274 + phy-handle = <&rgmii_phy>; 275 + phy-mode = "rgmii-id"; 276 + phy-supply = <&vcc_3v3>; 277 + pinctrl-names = "default"; 278 + pinctrl-0 = <&gmac1m1_miim 279 + &gmac1m1_tx_bus2 280 + &gmac1m1_rx_bus2 281 + &gmac1m1_rgmii_clk 282 + &gmac1m1_rgmii_bus>; 283 + status = "okay"; 284 + }; 285 + 286 + &gpu { 287 + mali-supply = <&vdd_gpu>; 288 + status = "okay"; 289 + }; 290 + 291 + &hdmi { 292 + avdd-0v9-supply = <&vdda_0v9>; 293 + avdd-1v8-supply = <&vcca_1v8>; 294 + status = "okay"; 295 + }; 296 + 297 + &hdmi_in { 298 + hdmi_in_vp0: endpoint { 299 + remote-endpoint = <&vp0_out_hdmi>; 300 + }; 301 + }; 302 + 303 + &hdmi_out { 304 + hdmi_out_con: endpoint { 305 + remote-endpoint = <&hdmi_con_in>; 306 + }; 307 + }; 308 + 309 + &hdmi_sound { 310 + status = "okay"; 311 + }; 312 + 313 + &i2c0 { 314 + status = "okay"; 315 + 316 + vdd_cpu: regulator@1c { 317 + compatible = "tcs,tcs4525"; 318 + reg = <0x1c>; 319 + fcs,suspend-voltage-selector = <1>; 320 + regulator-name = "vdd_cpu"; 321 + regulator-always-on; 322 + regulator-boot-on; 323 + regulator-min-microvolt = <800000>; 324 + regulator-max-microvolt = <1150000>; 325 + regulator-ramp-delay = <2300>; 326 + vin-supply = <&vcc_syson>; 327 + 328 + regulator-state-mem { 329 + regulator-off-in-suspend; 330 + }; 331 + }; 332 + }; 333 + 334 + &i2c2 { 335 + pinctrl-names = "default"; 336 + pinctrl-0 = <&i2c2m1_xfer>; 337 + status = "okay"; 338 + }; 339 + 340 + &i2s0_8ch { 341 + status = "okay"; 342 + }; 343 + 344 + &mdio1 { 345 + rgmii_phy: ethernet-phy@3 { 346 + compatible = "ethernet-phy-ieee802.3-c22"; 347 + reg = <0x3>; 348 + reset-assert-us = <20000>; 349 + reset-deassert-us = <100000>; 350 + reset-gpios = <&gpio4 RK_PC0 GPIO_ACTIVE_LOW>; 351 + rx-internal-delay-ps = <1500>; 352 + tx-internal-delay-ps = <1500>; 353 + }; 354 + }; 355 + 356 + &pcie30phy { 357 + status = "okay"; 358 + }; 359 + 360 + /* M.2 E-Key for PCIe WLAN */ 361 + &pcie3x2 { 362 + max-link-speed = <1>; 363 + num-lanes = <1>; 364 + pinctrl-names = "default"; 365 + pinctrl-0 = <&pcie30x1m0_pins>; 366 + reset-gpios = <&gpio0 RK_PC3 GPIO_ACTIVE_HIGH>; 367 + vpcie3v3-supply = <&vcc3v3_pcie>; 368 + status = "okay"; 369 + }; 370 + 371 + &pinctrl { 372 + bt { 373 + bt_reg_on_h: bt-reg-on-h { 374 + rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>; 375 + }; 376 + }; 377 + 378 + pcie { 379 + pcie_pwren_h: pcie-pwren-h { 380 + rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; 381 + }; 382 + }; 383 + 384 + sdmmc0 { 385 + sdmmc0_pwren: sdmmc0-pwren { 386 + rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>; 387 + }; 388 + }; 389 + 390 + usb { 391 + rf_pwr_en: rf-pwr-en { 392 + rockchip,pins = <4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; 393 + }; 394 + 395 + usb_host_pwren_h: usb-host-pwren-h { 396 + rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>; 397 + }; 398 + }; 399 + 400 + wifi { 401 + wifi_reg_on_h: wifi-reg-on-h { 402 + rockchip,pins = <2 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; 403 + }; 404 + }; 405 + }; 406 + 407 + &pmu_io_domains { 408 + pmuio1-supply = <&vcc_3v3>; 409 + pmuio2-supply = <&vcc_3v3>; 410 + vccio1-supply = <&vcc_3v3>; 411 + vccio2-supply = <&vcc_1v8>; 412 + vccio3-supply = <&vcc_3v3>; 413 + vccio4-supply = <&vcc_1v8>; 414 + vccio5-supply = <&vcc_3v3>; 415 + vccio6-supply = <&vcc_3v3>; 416 + vccio7-supply = <&vcc_3v3>; 417 + status = "okay"; 418 + }; 419 + 420 + &pwm1 { 421 + status = "okay"; 422 + }; 423 + 424 + &pwm2 { 425 + status = "okay"; 426 + }; 427 + 428 + &saradc { 429 + vref-supply = <&vcca_1v8>; 430 + status = "okay"; 431 + }; 432 + 433 + /* eMMC */ 434 + &sdhci { 435 + bus-width = <8>; 436 + max-frequency = <200000000>; 437 + mmc-hs200-1_8v; 438 + non-removable; 439 + pinctrl-names = "default"; 440 + pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd>; 441 + vmmc-supply = <&vcc_3v3>; 442 + vqmmc-supply = <&vcc_1v8>; 443 + status = "okay"; 444 + }; 445 + 446 + /* Micro SD card slot */ 447 + &sdmmc0 { 448 + bus-width = <4>; 449 + cap-sd-highspeed; 450 + cd-gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_LOW>; 451 + disable-wp; 452 + no-1-8-v; 453 + pinctrl-names = "default"; 454 + pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd>; 455 + vmmc-supply = <&vcc3v3_sd>; 456 + vqmmc-supply = <&vcc_3v3>; 457 + status = "okay"; 458 + }; 459 + 460 + /* Qualcomm Atheros QCA9377 WiFi */ 461 + &sdmmc1 { 462 + bus-width = <4>; 463 + cap-sd-highspeed; 464 + cap-sdio-irq; 465 + keep-power-in-suspend; 466 + mmc-pwrseq = <&wifi_pwrseq>; 467 + non-removable; 468 + pinctrl-names = "default"; 469 + pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk>; 470 + sd-uhs-sdr104; 471 + vmmc-supply = <&vcc3v3_sys>; 472 + vqmmc-supply = <&vcc_1v8>; 473 + #address-cells = <1>; 474 + #size-cells = <0>; 475 + status = "okay"; 476 + 477 + wifi: wifi@1 { 478 + reg = <1>; 479 + interrupt-parent = <&gpio2>; 480 + interrupts = <RK_PB2 IRQ_TYPE_LEVEL_HIGH>; 481 + interrupt-names = "host-wake"; 482 + }; 483 + }; 484 + 485 + &tsadc { 486 + rockchip,hw-tshut-mode = <1>; 487 + rockchip,hw-tshut-polarity = <0>; 488 + status = "okay"; 489 + }; 490 + 491 + /* Qualcomm Atheros QCA9377 Bluetooth */ 492 + &uart1 { 493 + dma-names = "tx", "rx"; 494 + pinctrl-names = "default"; 495 + pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn &uart1m0_rtsn>; 496 + uart-has-rtscts; 497 + status = "okay"; 498 + 499 + bluetooth { 500 + compatible = "qcom,qca9377-bt"; 501 + clocks = <&pmucru CLK_RTC_32K>; 502 + enable-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>; 503 + pinctrl-names = "default"; 504 + pinctrl-0 = <&bt_reg_on_h>; 505 + vddio-supply = <&vcc_1v8>; 506 + }; 507 + }; 508 + 509 + /* Debug UART */ 510 + &uart2 { 511 + status = "okay"; 512 + }; 513 + 514 + &uart3 { 515 + dma-names = "tx", "rx"; 516 + status = "okay"; 517 + }; 518 + 519 + /* Onboard power management MCU */ 520 + &uart4 { 521 + dma-names = "tx", "rx"; 522 + status = "okay"; 523 + }; 524 + 525 + /* M.2 E-Key for USB Bluetooth */ 526 + &usb_host0_ehci { 527 + status = "okay"; 528 + }; 529 + 530 + &usb_host0_ohci { 531 + status = "okay"; 532 + }; 533 + 534 + /* USB Type-A Port */ 535 + &usb_host0_xhci { 536 + dr_mode = "host"; 537 + status = "okay"; 538 + }; 539 + 540 + /* M.2 B-Key for USB Modem WWAN */ 541 + &usb_host1_xhci { 542 + status = "okay"; 543 + }; 544 + 545 + &usb2phy0 { 546 + status = "okay"; 547 + }; 548 + 549 + &usb2phy0_host { 550 + phy-supply = <&vcc3v4_rf>; 551 + status = "okay"; 552 + }; 553 + 554 + &usb2phy0_otg { 555 + phy-supply = <&vcc5v0_usb30_otg0>; 556 + status = "okay"; 557 + }; 558 + 559 + &usb2phy1 { 560 + status = "okay"; 561 + }; 562 + 563 + &usb2phy1_otg { 564 + phy-supply = <&vcc5v0_usb30_otg0>; 565 + status = "okay"; 566 + }; 567 + 568 + &vop { 569 + assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>; 570 + assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>; 571 + status = "okay"; 572 + }; 573 + 574 + &vop_mmu { 575 + status = "okay"; 576 + }; 577 + 578 + &vp0 { 579 + vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 { 580 + reg = <ROCKCHIP_VOP2_EP_HDMI0>; 581 + remote-endpoint = <&hdmi_in_vp0>; 582 + }; 583 + }; 584 + 585 + &xin32k { 586 + pinctrl-names = "default"; 587 + pinctrl-0 = <&clk32k_out1>; 588 + };
+5
arch/arm64/boot/dts/rockchip/rk356x-base.dtsi
··· 1032 1032 status = "disabled"; 1033 1033 }; 1034 1034 1035 + /* 1036 + * Testing showed that the HWRNG found in RK3566 produces unacceptably 1037 + * low quality of random data, so the HWRNG isn't enabled for all RK356x 1038 + * SoC variants despite its presence. 1039 + */ 1035 1040 rng: rng@fe388000 { 1036 1041 compatible = "rockchip,rk3568-rng"; 1037 1042 reg = <0x0 0xfe388000 0x0 0x4000>;
+47
arch/arm64/boot/dts/rockchip/rk3576-armsom-sige5.dts
··· 10 10 #include <dt-bindings/leds/common.h> 11 11 #include <dt-bindings/pinctrl/rockchip.h> 12 12 #include <dt-bindings/pwm/pwm.h> 13 + #include <dt-bindings/soc/rockchip,vop2.h> 13 14 #include <dt-bindings/usb/pd.h> 14 15 #include "rk3576.dtsi" 15 16 ··· 25 24 26 25 chosen { 27 26 stdout-path = "serial0:1500000n8"; 27 + }; 28 + 29 + hdmi-con { 30 + compatible = "hdmi-connector"; 31 + type = "a"; 32 + 33 + port { 34 + hdmi_con_in: endpoint { 35 + remote-endpoint = <&hdmi_out_con>; 36 + }; 37 + }; 28 38 }; 29 39 30 40 leds: leds { ··· 223 211 224 212 &gpu { 225 213 mali-supply = <&vdd_gpu_s0>; 214 + status = "okay"; 215 + }; 216 + 217 + &hdmi { 218 + status = "okay"; 219 + }; 220 + 221 + &hdmi_in { 222 + hdmi_in_vp0: endpoint { 223 + remote-endpoint = <&vp0_out_hdmi>; 224 + }; 225 + }; 226 + 227 + &hdmi_out { 228 + hdmi_out_con: endpoint { 229 + remote-endpoint = <&hdmi_con_in>; 230 + }; 231 + }; 232 + 233 + &hdptxphy { 226 234 status = "okay"; 227 235 }; 228 236 ··· 687 655 &uart0 { 688 656 pinctrl-0 = <&uart0m0_xfer>; 689 657 status = "okay"; 658 + }; 659 + 660 + &vop { 661 + status = "okay"; 662 + }; 663 + 664 + &vop_mmu { 665 + status = "okay"; 666 + }; 667 + 668 + &vp0 { 669 + vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 { 670 + reg = <ROCKCHIP_VOP2_EP_HDMI0>; 671 + remote-endpoint = <&hdmi_in_vp0>; 672 + }; 690 673 };
+47
arch/arm64/boot/dts/rockchip/rk3576-evb1-v10.dts
··· 10 10 #include <dt-bindings/input/input.h> 11 11 #include <dt-bindings/leds/common.h> 12 12 #include <dt-bindings/pinctrl/rockchip.h> 13 + #include <dt-bindings/soc/rockchip,vop2.h> 13 14 #include "rk3576.dtsi" 14 15 15 16 / { ··· 55 54 label = "volume up"; 56 55 linux,code = <KEY_VOLUMEUP>; 57 56 press-threshold-microvolt = <17000>; 57 + }; 58 + }; 59 + 60 + hdmi-con { 61 + compatible = "hdmi-connector"; 62 + type = "a"; 63 + 64 + port { 65 + hdmi_con_in: endpoint { 66 + remote-endpoint = <&hdmi_out_con>; 67 + }; 58 68 }; 59 69 }; 60 70 ··· 279 267 snps,reset-active-low; 280 268 snps,reset-delays-us = <0 20000 100000>; 281 269 tx_delay = <0x20>; 270 + status = "okay"; 271 + }; 272 + 273 + &hdmi { 274 + status = "okay"; 275 + }; 276 + 277 + &hdmi_in { 278 + hdmi_in_vp0: endpoint { 279 + remote-endpoint = <&vp0_out_hdmi>; 280 + }; 281 + }; 282 + 283 + &hdmi_out { 284 + hdmi_out_con: endpoint { 285 + remote-endpoint = <&hdmi_con_in>; 286 + }; 287 + }; 288 + 289 + &hdptxphy { 282 290 status = "okay"; 283 291 }; 284 292 ··· 760 728 &usb_drd1_dwc3 { 761 729 dr_mode = "host"; 762 730 status = "okay"; 731 + }; 732 + 733 + &vop { 734 + status = "okay"; 735 + }; 736 + 737 + &vop_mmu { 738 + status = "okay"; 739 + }; 740 + 741 + &vp0 { 742 + vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 { 743 + reg = <ROCKCHIP_VOP2_EP_HDMI0>; 744 + remote-endpoint = <&hdmi_in_vp0>; 745 + }; 763 746 };
+736
arch/arm64/boot/dts/rockchip/rk3576-roc-pc.dts
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 + /* 3 + * Copyright (c) 2024 Firefly Technology Co. Ltd 4 + * Copyright (c) 2024 Heiko Stuebner <heiko@sntech.de> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include <dt-bindings/gpio/gpio.h> 10 + #include <dt-bindings/input/input.h> 11 + #include <dt-bindings/pinctrl/rockchip.h> 12 + #include <dt-bindings/pwm/pwm.h> 13 + #include <dt-bindings/usb/pd.h> 14 + #include "rk3576.dtsi" 15 + 16 + / { 17 + model = "Firefly ROC-RK3576-PC"; 18 + compatible = "firefly,roc-rk3576-pc", "rockchip,rk3576"; 19 + 20 + aliases { 21 + mmc0 = &sdhci; 22 + mmc1 = &sdmmc; 23 + }; 24 + 25 + chosen { 26 + stdout-path = "serial0:1500000n8"; 27 + }; 28 + 29 + adc-keys-0 { 30 + compatible = "adc-keys"; 31 + io-channels = <&saradc 0>; 32 + io-channel-names = "buttons"; 33 + keyup-threshold-microvolt = <1800000>; 34 + poll-interval = <100>; 35 + 36 + button-maskrom { 37 + label = "Maskrom"; 38 + linux,code = <KEY_SETUP>; 39 + press-threshold-microvolt = <17000>; 40 + }; 41 + }; 42 + 43 + adc-keys-1 { 44 + compatible = "adc-keys"; 45 + io-channels = <&saradc 1>; 46 + io-channel-names = "buttons"; 47 + keyup-threshold-microvolt = <1800000>; 48 + poll-interval = <100>; 49 + 50 + button-recovery { 51 + label = "Recovery"; 52 + linux,code = <KEY_VENDOR>; 53 + press-threshold-microvolt = <17000>; 54 + }; 55 + }; 56 + 57 + vbus5v0_typec: regulator-vbus5v0-typec { 58 + compatible = "regulator-fixed"; 59 + enable-active-high; 60 + gpio = <&gpio0 RK_PD1 GPIO_ACTIVE_HIGH>; 61 + pinctrl-names = "default"; 62 + pinctrl-0 = <&usb_otg0_pwren_h>; 63 + regulator-name = "vbus5v0_typec"; 64 + regulator-min-microvolt = <5000000>; 65 + regulator-max-microvolt = <5000000>; 66 + vin-supply = <&vcc5v0_device_s0>; 67 + }; 68 + 69 + vcc12v_dcin: regulator-vcc12v-dcin { 70 + compatible = "regulator-fixed"; 71 + regulator-name = "vcc12v_dcin"; 72 + regulator-always-on; 73 + regulator-boot-on; 74 + regulator-min-microvolt = <12000000>; 75 + regulator-max-microvolt = <12000000>; 76 + }; 77 + 78 + vcc1v2_ufs_vccq_s0: regulator-vcc1v2-ufs-vccq-s0 { 79 + compatible = "regulator-fixed"; 80 + regulator-name = "vcc1v2_ufs_vccq_s0"; 81 + regulator-boot-on; 82 + regulator-always-on; 83 + regulator-min-microvolt = <1200000>; 84 + regulator-max-microvolt = <1200000>; 85 + vin-supply = <&vcc5v0_sys_s5>; 86 + }; 87 + 88 + vcc1v8_ufs_vccq2_s0: regulator-vcc1v8-ufs-vccq2-s0 { 89 + compatible = "regulator-fixed"; 90 + regulator-name = "vcc1v8_ufs_vccq2_s0"; 91 + regulator-boot-on; 92 + regulator-always-on; 93 + regulator-min-microvolt = <1800000>; 94 + regulator-max-microvolt = <1800000>; 95 + vin-supply = <&vcc_1v8_s3>; 96 + }; 97 + 98 + vcc3v3_pcie: regulator-vcc3v3-pcie { 99 + compatible = "regulator-fixed"; 100 + enable-active-high; 101 + gpio = <&gpio2 RK_PB3 GPIO_ACTIVE_HIGH>; 102 + pinctrl-names = "default"; 103 + pinctrl-0 = <&pcie_pwren_h>; 104 + regulator-name = "vcc3v3_pcie"; 105 + regulator-min-microvolt = <3300000>; 106 + regulator-max-microvolt = <3300000>; 107 + startup-delay-us = <5000>; 108 + vin-supply = <&vcc12v_dcin>; 109 + }; 110 + 111 + vcc3v3_rtc_s5: regulator-vcc3v3-rtc-s5 { 112 + compatible = "regulator-fixed"; 113 + regulator-name = "vcc3v3_rtc_s5"; 114 + regulator-boot-on; 115 + regulator-always-on; 116 + regulator-min-microvolt = <3300000>; 117 + regulator-max-microvolt = <3300000>; 118 + vin-supply = <&vcc5v0_sys_s5>; 119 + }; 120 + 121 + vcc5v0_device_s0: regulator-vcc5v0-device-s0 { 122 + compatible = "regulator-fixed"; 123 + enable-active-high; 124 + gpio = <&gpio2 RK_PC0 GPIO_ACTIVE_HIGH>; 125 + pinctrl-names = "default"; 126 + pinctrl-0 = <&vcc5vd_en>; 127 + regulator-name = "vcc5v0_device"; 128 + regulator-always-on; 129 + regulator-boot-on; 130 + regulator-min-microvolt = <5000000>; 131 + regulator-max-microvolt = <5000000>; 132 + vin-supply = <&vcc12v_dcin>; 133 + }; 134 + 135 + vcc5v0_sys_s5: regulator-vcc5v0-sys-s5 { 136 + compatible = "regulator-fixed"; 137 + regulator-name = "vcc_sys"; 138 + regulator-always-on; 139 + regulator-boot-on; 140 + regulator-min-microvolt = <5000000>; 141 + regulator-max-microvolt = <5000000>; 142 + vin-supply = <&vcc12v_dcin>; 143 + }; 144 + 145 + vcc5v0_usb20_host1: regulator-vcc5v0-usb20-host1 { 146 + compatible = "regulator-fixed"; 147 + enable-active-high; 148 + gpio = <&gpio0 RK_PC7 GPIO_ACTIVE_HIGH>; 149 + pinctrl-names = "default"; 150 + pinctrl-0 = <&usb3_host_pwren_h>; 151 + regulator-name = "vcc5v0_host1"; 152 + regulator-min-microvolt = <5000000>; 153 + regulator-max-microvolt = <5000000>; 154 + vin-supply = <&vcc5v0_device_s0>; 155 + }; 156 + 157 + vcc_1v1_nldo_s3: regulator-vcc-1v1-nldo-s3 { 158 + compatible = "regulator-fixed"; 159 + regulator-name = "vcc_1v1_nldo_s3"; 160 + regulator-boot-on; 161 + regulator-always-on; 162 + regulator-min-microvolt = <1100000>; 163 + regulator-max-microvolt = <1100000>; 164 + vin-supply = <&vcc5v0_sys_s5>; 165 + }; 166 + 167 + vcc_1v8_s0: regulator-vcc-1v8-s0 { 168 + compatible = "regulator-fixed"; 169 + regulator-name = "vcc_1v8_s0"; 170 + regulator-boot-on; 171 + regulator-always-on; 172 + regulator-min-microvolt = <1800000>; 173 + regulator-max-microvolt = <1800000>; 174 + vin-supply = <&vcc_1v8_s3>; 175 + }; 176 + 177 + vcc_2v0_pldo_s3: regulator-vcc-2v0-pldo-s3 { 178 + compatible = "regulator-fixed"; 179 + regulator-name = "vcc_2v0_pldo_s3"; 180 + regulator-boot-on; 181 + regulator-always-on; 182 + regulator-min-microvolt = <2000000>; 183 + regulator-max-microvolt = <2000000>; 184 + vin-supply = <&vcc5v0_sys_s5>; 185 + }; 186 + 187 + vcc_3v3_s0: regulator-vcc-3v3-s0 { 188 + compatible = "regulator-fixed"; 189 + regulator-name = "vcc_3v3_s0"; 190 + regulator-boot-on; 191 + regulator-always-on; 192 + regulator-min-microvolt = <3300000>; 193 + regulator-max-microvolt = <3300000>; 194 + vin-supply = <&vcc_3v3_s3>; 195 + }; 196 + 197 + vcc_ufs_s0: regulator-vcc-ufs-s0 { 198 + compatible = "regulator-fixed"; 199 + regulator-name = "vcc_ufs_s0"; 200 + regulator-boot-on; 201 + regulator-always-on; 202 + regulator-min-microvolt = <3300000>; 203 + regulator-max-microvolt = <3300000>; 204 + vin-supply = <&vcc5v0_sys_s5>; 205 + }; 206 + }; 207 + 208 + &cpu_l0 { 209 + cpu-supply = <&vdd_cpu_lit_s0>; 210 + }; 211 + 212 + &cpu_l1 { 213 + cpu-supply = <&vdd_cpu_lit_s0>; 214 + }; 215 + 216 + &cpu_l2 { 217 + cpu-supply = <&vdd_cpu_lit_s0>; 218 + }; 219 + 220 + &cpu_l3 { 221 + cpu-supply = <&vdd_cpu_lit_s0>; 222 + }; 223 + 224 + &cpu_b0 { 225 + cpu-supply = <&vdd_cpu_big_s0>; 226 + }; 227 + 228 + &cpu_b1 { 229 + cpu-supply = <&vdd_cpu_big_s0>; 230 + }; 231 + 232 + &cpu_b2 { 233 + cpu-supply = <&vdd_cpu_big_s0>; 234 + }; 235 + 236 + &cpu_b3 { 237 + cpu-supply = <&vdd_cpu_big_s0>; 238 + }; 239 + 240 + &gpu { 241 + mali-supply = <&vdd_gpu_s0>; 242 + status = "okay"; 243 + }; 244 + 245 + &gmac0 { 246 + clock_in_out = "output"; 247 + pinctrl-names = "default"; 248 + pinctrl-0 = <&eth0m0_miim 249 + &eth0m0_tx_bus2 250 + &eth0m0_rx_bus2 251 + &eth0m0_rgmii_clk 252 + &eth0m0_rgmii_bus 253 + &ethm0_clk0_25m_out>; 254 + /* Use rgmii-rxid mode to disable rx delay inside Soc */ 255 + phy-mode = "rgmii-rxid"; 256 + phy-handle = <&rgmii_phy0>; 257 + tx_delay = <0x21>; 258 + status = "okay"; 259 + }; 260 + 261 + &mdio0 { 262 + status = "okay"; 263 + 264 + rgmii_phy0: phy@1 { 265 + compatible = "ethernet-phy-ieee802.3-c22"; 266 + reg = <0x1>; 267 + clocks = <&cru REFCLKO25M_GMAC0_OUT>; 268 + /* Reset time is 20ms, 100ms for rtl8211f */ 269 + reset-delay-us = <20000>; 270 + reset-gpios = <&gpio2 RK_PB5 GPIO_ACTIVE_LOW>; 271 + reset-post-delay-us = <100000>; 272 + }; 273 + }; 274 + 275 + &i2c1 { 276 + status = "okay"; 277 + 278 + pmic@23 { 279 + compatible = "rockchip,rk806"; 280 + reg = <0x23>; 281 + interrupt-parent = <&gpio0>; 282 + interrupts = <6 IRQ_TYPE_LEVEL_LOW>; 283 + gpio-controller; 284 + #gpio-cells = <2>; 285 + pinctrl-names = "default"; 286 + pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>, 287 + <&rk806_dvs2_null>, <&rk806_dvs3_null>; 288 + system-power-controller; 289 + 290 + vcc1-supply = <&vcc5v0_sys_s5>; 291 + vcc2-supply = <&vcc5v0_sys_s5>; 292 + vcc3-supply = <&vcc5v0_sys_s5>; 293 + vcc4-supply = <&vcc5v0_sys_s5>; 294 + vcc5-supply = <&vcc5v0_sys_s5>; 295 + vcc6-supply = <&vcc5v0_sys_s5>; 296 + vcc7-supply = <&vcc5v0_sys_s5>; 297 + vcc8-supply = <&vcc5v0_sys_s5>; 298 + vcc9-supply = <&vcc5v0_sys_s5>; 299 + vcc10-supply = <&vcc5v0_sys_s5>; 300 + vcc11-supply = <&vcc_2v0_pldo_s3>; 301 + vcc12-supply = <&vcc5v0_sys_s5>; 302 + vcc13-supply = <&vcc_1v1_nldo_s3>; 303 + vcc14-supply = <&vcc_1v1_nldo_s3>; 304 + vcca-supply = <&vcc5v0_sys_s5>; 305 + 306 + rk806_dvs1_null: dvs1-null-pins { 307 + pins = "gpio_pwrctrl1"; 308 + function = "pin_fun0"; 309 + }; 310 + 311 + rk806_dvs2_null: dvs2-null-pins { 312 + pins = "gpio_pwrctrl2"; 313 + function = "pin_fun0"; 314 + }; 315 + 316 + rk806_dvs3_null: dvs3-null-pins { 317 + pins = "gpio_pwrctrl3"; 318 + function = "pin_fun0"; 319 + }; 320 + 321 + rk806_dvs1_slp: dvs1-slp-pins { 322 + pins = "gpio_pwrctrl1"; 323 + function = "pin_fun1"; 324 + }; 325 + 326 + rk806_dvs1_pwrdn: dvs1-pwrdn-pins { 327 + pins = "gpio_pwrctrl1"; 328 + function = "pin_fun2"; 329 + }; 330 + 331 + rk806_dvs1_rst: dvs1-rst-pins { 332 + pins = "gpio_pwrctrl1"; 333 + function = "pin_fun3"; 334 + }; 335 + 336 + rk806_dvs2_slp: dvs2-slp-pins { 337 + pins = "gpio_pwrctrl2"; 338 + function = "pin_fun1"; 339 + }; 340 + 341 + rk806_dvs2_pwrdn: dvs2-pwrdn-pins { 342 + pins = "gpio_pwrctrl2"; 343 + function = "pin_fun2"; 344 + }; 345 + 346 + rk806_dvs2_rst: dvs2-rst-pins { 347 + pins = "gpio_pwrctrl2"; 348 + function = "pin_fun3"; 349 + }; 350 + 351 + rk806_dvs2_dvs: dvs2-dvs-pins { 352 + pins = "gpio_pwrctrl2"; 353 + function = "pin_fun4"; 354 + }; 355 + 356 + rk806_dvs2_gpio: dvs2-gpio-pins { 357 + pins = "gpio_pwrctrl2"; 358 + function = "pin_fun5"; 359 + }; 360 + 361 + rk806_dvs3_slp: dvs3-slp-pins { 362 + pins = "gpio_pwrctrl3"; 363 + function = "pin_fun1"; 364 + }; 365 + 366 + rk806_dvs3_pwrdn: dvs3-pwrdn-pins { 367 + pins = "gpio_pwrctrl3"; 368 + function = "pin_fun2"; 369 + }; 370 + 371 + rk806_dvs3_rst: dvs3-rst-pins { 372 + pins = "gpio_pwrctrl3"; 373 + function = "pin_fun3"; 374 + }; 375 + 376 + rk806_dvs3_dvs: dvs3-dvs-pins { 377 + pins = "gpio_pwrctrl3"; 378 + function = "pin_fun4"; 379 + }; 380 + 381 + rk806_dvs3_gpio: dvs3-gpio-pins { 382 + pins = "gpio_pwrctrl3"; 383 + function = "pin_fun5"; 384 + }; 385 + 386 + regulators { 387 + vdd_cpu_big_s0: dcdc-reg1 { 388 + regulator-always-on; 389 + regulator-boot-on; 390 + regulator-min-microvolt = <550000>; 391 + regulator-max-microvolt = <950000>; 392 + regulator-ramp-delay = <12500>; 393 + regulator-name = "vdd_cpu_big_s0"; 394 + regulator-enable-ramp-delay = <400>; 395 + regulator-state-mem { 396 + regulator-off-in-suspend; 397 + }; 398 + }; 399 + 400 + vdd_npu_s0: dcdc-reg2 { 401 + regulator-boot-on; 402 + regulator-min-microvolt = <550000>; 403 + regulator-max-microvolt = <950000>; 404 + regulator-ramp-delay = <12500>; 405 + regulator-name = "vdd_npu_s0"; 406 + regulator-enable-ramp-delay = <400>; 407 + regulator-state-mem { 408 + regulator-off-in-suspend; 409 + }; 410 + }; 411 + 412 + vdd_cpu_lit_s0: dcdc-reg3 { 413 + regulator-always-on; 414 + regulator-boot-on; 415 + regulator-min-microvolt = <550000>; 416 + regulator-max-microvolt = <950000>; 417 + regulator-ramp-delay = <12500>; 418 + regulator-name = "vdd_cpu_lit_s0"; 419 + regulator-state-mem { 420 + regulator-off-in-suspend; 421 + regulator-suspend-microvolt = <750000>; 422 + }; 423 + }; 424 + 425 + vcc_3v3_s3: dcdc-reg4 { 426 + regulator-always-on; 427 + regulator-boot-on; 428 + regulator-min-microvolt = <3300000>; 429 + regulator-max-microvolt = <3300000>; 430 + regulator-name = "vcc_3v3_s3"; 431 + regulator-state-mem { 432 + regulator-on-in-suspend; 433 + regulator-suspend-microvolt = <3300000>; 434 + }; 435 + }; 436 + 437 + vdd_gpu_s0: dcdc-reg5 { 438 + regulator-boot-on; 439 + regulator-min-microvolt = <550000>; 440 + regulator-max-microvolt = <900000>; 441 + regulator-ramp-delay = <12500>; 442 + regulator-name = "vdd_gpu_s0"; 443 + regulator-enable-ramp-delay = <400>; 444 + regulator-state-mem { 445 + regulator-off-in-suspend; 446 + regulator-suspend-microvolt = <850000>; 447 + }; 448 + }; 449 + 450 + vddq_ddr_s0: dcdc-reg6 { 451 + regulator-always-on; 452 + regulator-boot-on; 453 + regulator-name = "vddq_ddr_s0"; 454 + regulator-state-mem { 455 + regulator-off-in-suspend; 456 + }; 457 + }; 458 + 459 + vdd_logic_s0: dcdc-reg7 { 460 + regulator-always-on; 461 + regulator-boot-on; 462 + regulator-min-microvolt = <550000>; 463 + regulator-max-microvolt = <800000>; 464 + regulator-name = "vdd_logic_s0"; 465 + regulator-state-mem { 466 + regulator-off-in-suspend; 467 + }; 468 + }; 469 + 470 + vcc_1v8_s3: dcdc-reg8 { 471 + regulator-always-on; 472 + regulator-boot-on; 473 + regulator-min-microvolt = <1800000>; 474 + regulator-max-microvolt = <1800000>; 475 + regulator-name = "vcc_1v8_s3"; 476 + regulator-state-mem { 477 + regulator-on-in-suspend; 478 + regulator-suspend-microvolt = <1800000>; 479 + }; 480 + }; 481 + 482 + vdd2_ddr_s3: dcdc-reg9 { 483 + regulator-always-on; 484 + regulator-boot-on; 485 + regulator-name = "vdd2_ddr_s3"; 486 + regulator-state-mem { 487 + regulator-on-in-suspend; 488 + }; 489 + }; 490 + 491 + vdd_ddr_s0: dcdc-reg10 { 492 + regulator-always-on; 493 + regulator-boot-on; 494 + regulator-min-microvolt = <550000>; 495 + regulator-max-microvolt = <1200000>; 496 + regulator-name = "vdd_ddr_s0"; 497 + regulator-state-mem { 498 + regulator-off-in-suspend; 499 + }; 500 + }; 501 + 502 + vcca_1v8_s0: pldo-reg1 { 503 + regulator-always-on; 504 + regulator-boot-on; 505 + regulator-min-microvolt = <1800000>; 506 + regulator-max-microvolt = <1800000>; 507 + regulator-name = "vcca_1v8_s0"; 508 + regulator-state-mem { 509 + regulator-off-in-suspend; 510 + }; 511 + }; 512 + 513 + vcca1v8_pldo2_s0: pldo-reg2 { 514 + regulator-always-on; 515 + regulator-boot-on; 516 + regulator-min-microvolt = <1800000>; 517 + regulator-max-microvolt = <1800000>; 518 + regulator-name = "vcca1v8_pldo2_s0"; 519 + regulator-state-mem { 520 + regulator-off-in-suspend; 521 + }; 522 + }; 523 + 524 + vdda_1v2_s0: pldo-reg3 { 525 + regulator-always-on; 526 + regulator-boot-on; 527 + regulator-min-microvolt = <1200000>; 528 + regulator-max-microvolt = <1200000>; 529 + regulator-name = "vdda_1v2_s0"; 530 + regulator-state-mem { 531 + regulator-off-in-suspend; 532 + }; 533 + }; 534 + 535 + vcca_3v3_s0: pldo-reg4 { 536 + regulator-always-on; 537 + regulator-boot-on; 538 + regulator-min-microvolt = <3300000>; 539 + regulator-max-microvolt = <3300000>; 540 + regulator-name = "vcca_3v3_s0"; 541 + regulator-state-mem { 542 + regulator-off-in-suspend; 543 + }; 544 + }; 545 + 546 + vccio_sd_s0: pldo-reg5 { 547 + regulator-always-on; 548 + regulator-boot-on; 549 + regulator-min-microvolt = <1800000>; 550 + regulator-max-microvolt = <3300000>; 551 + regulator-name = "vccio_sd_s0"; 552 + regulator-state-mem { 553 + regulator-off-in-suspend; 554 + }; 555 + }; 556 + 557 + vcca1v8_pldo6_s3: pldo-reg6 { 558 + regulator-always-on; 559 + regulator-boot-on; 560 + regulator-min-microvolt = <1800000>; 561 + regulator-max-microvolt = <1800000>; 562 + regulator-name = "vcca1v8_pldo6_s3"; 563 + regulator-state-mem { 564 + regulator-on-in-suspend; 565 + regulator-suspend-microvolt = <1800000>; 566 + }; 567 + }; 568 + 569 + vdd_0v75_s3: nldo-reg1 { 570 + regulator-always-on; 571 + regulator-boot-on; 572 + regulator-min-microvolt = <750000>; 573 + regulator-max-microvolt = <750000>; 574 + regulator-name = "vdd_0v75_s3"; 575 + regulator-state-mem { 576 + regulator-on-in-suspend; 577 + regulator-suspend-microvolt = <750000>; 578 + }; 579 + }; 580 + 581 + vdda_ddr_pll_s0: nldo-reg2 { 582 + regulator-always-on; 583 + regulator-boot-on; 584 + regulator-min-microvolt = <850000>; 585 + regulator-max-microvolt = <850000>; 586 + regulator-name = "vdda_ddr_pll_s0"; 587 + regulator-state-mem { 588 + regulator-off-in-suspend; 589 + }; 590 + }; 591 + 592 + vdda0v75_hdmi_s0: nldo-reg3 { 593 + regulator-always-on; 594 + regulator-boot-on; 595 + regulator-min-microvolt = <837500>; 596 + regulator-max-microvolt = <837500>; 597 + regulator-name = "vdda0v75_hdmi_s0"; 598 + regulator-state-mem { 599 + regulator-off-in-suspend; 600 + }; 601 + }; 602 + 603 + vdda_0v85_s0: nldo-reg4 { 604 + regulator-always-on; 605 + regulator-boot-on; 606 + regulator-min-microvolt = <850000>; 607 + regulator-max-microvolt = <850000>; 608 + regulator-name = "vdda_0v85_s0"; 609 + regulator-state-mem { 610 + regulator-off-in-suspend; 611 + }; 612 + }; 613 + 614 + vdda_0v75_s0: nldo-reg5 { 615 + regulator-always-on; 616 + regulator-boot-on; 617 + regulator-min-microvolt = <750000>; 618 + regulator-max-microvolt = <750000>; 619 + regulator-name = "vdda_0v75_s0"; 620 + regulator-state-mem { 621 + regulator-off-in-suspend; 622 + }; 623 + }; 624 + }; 625 + }; 626 + }; 627 + 628 + &i2c2 { 629 + status = "okay"; 630 + 631 + /* pc9202 watchdog@3c with enable-gpio gpio0-c3 */ 632 + 633 + /* hnyetek,husb311 typec-portc@4e */ 634 + 635 + hym8563: rtc@51 { 636 + compatible = "haoyu,hym8563"; 637 + reg = <0x51>; 638 + #clock-cells = <0>; 639 + clock-output-names = "hym8563"; 640 + pinctrl-names = "default"; 641 + pinctrl-0 = <&rtc_int_l>; 642 + interrupt-parent = <&gpio0>; 643 + interrupts = <RK_PA0 IRQ_TYPE_LEVEL_LOW>; 644 + wakeup-source; 645 + }; 646 + }; 647 + 648 + &saradc { 649 + vref-supply = <&vcca_1v8_s0>; 650 + status = "okay"; 651 + }; 652 + 653 + &sdhci { 654 + bus-width = <8>; 655 + no-sdio; 656 + no-sd; 657 + non-removable; 658 + max-frequency = <200000000>; 659 + mmc-hs400-1_8v; 660 + mmc-hs400-enhanced-strobe; 661 + full-pwr-cycle-in-suspend; 662 + status = "okay"; 663 + }; 664 + 665 + &sdmmc { 666 + max-frequency = <200000000>; 667 + no-sdio; 668 + no-mmc; 669 + bus-width = <4>; 670 + cap-mmc-highspeed; 671 + cap-sd-highspeed; 672 + disable-wp; 673 + sd-uhs-sdr104; 674 + vqmmc-supply = <&vccio_sd_s0>; 675 + status = "okay"; 676 + }; 677 + 678 + &pinctrl { 679 + hym8563 { 680 + rtc_int_l: rtc-int-l { 681 + rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>; 682 + }; 683 + }; 684 + 685 + power { 686 + vcc5vd_en: vcc5vd-en { 687 + rockchip,pins = <2 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>; 688 + }; 689 + 690 + pcie_pwren_h: pcie-pwren-h { 691 + rockchip,pins = <2 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; 692 + }; 693 + }; 694 + 695 + usb { 696 + hub_reset_h: hub-reset-h { 697 + rockchip,pins = <2 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; 698 + }; 699 + 700 + usb3_host_pwren_h: usb3-host-pwren-h { 701 + rockchip,pins = <0 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>; 702 + }; 703 + 704 + usb_otg0_pwren_h: usb-otg0-pwren-h { 705 + rockchip,pins = <0 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>; 706 + }; 707 + 708 + usbc0_int_l: usbc0-int-l { 709 + rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>; 710 + }; 711 + }; 712 + 713 + watchdog { 714 + wd_en: wd-en { 715 + rockchip,pins = <0 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>; 716 + }; 717 + }; 718 + }; 719 + 720 + &uart0 { 721 + pinctrl-0 = <&uart0m0_xfer>; 722 + status = "okay"; 723 + }; 724 + 725 + &uart4 { 726 + pinctrl-names = "default"; 727 + pinctrl-0 = <&uart4m1_xfer &uart4m1_ctsn>; 728 + status = "okay"; 729 + }; 730 + 731 + /* On the extension pin header */ 732 + &uart6 { 733 + pinctrl-names = "default"; 734 + pinctrl-0 = <&uart6m3_xfer>; 735 + status = "okay"; 736 + };
+751
arch/arm64/boot/dts/rockchip/rk3576-rock-4d.dts
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 + /* 3 + * Copyright (c) 2024 Radxa Computer (Shenzhen) Co., Ltd. 4 + */ 5 + 6 + /dts-v1/; 7 + 8 + #include <dt-bindings/gpio/gpio.h> 9 + #include <dt-bindings/leds/common.h> 10 + #include <dt-bindings/pinctrl/rockchip.h> 11 + #include <dt-bindings/pwm/pwm.h> 12 + #include <dt-bindings/soc/rockchip,vop2.h> 13 + #include <dt-bindings/usb/pd.h> 14 + #include "rk3576.dtsi" 15 + 16 + / { 17 + model = "Radxa ROCK 4D"; 18 + compatible = "radxa,rock-4d", "rockchip,rk3576"; 19 + 20 + aliases { 21 + ethernet0 = &gmac0; 22 + mmc0 = &sdmmc; 23 + }; 24 + 25 + chosen { 26 + stdout-path = "serial0:1500000n8"; 27 + }; 28 + 29 + hdmi-con { 30 + compatible = "hdmi-connector"; 31 + type = "a"; 32 + 33 + port { 34 + hdmi_con_in: endpoint { 35 + remote-endpoint = <&hdmi_out_con>; 36 + }; 37 + }; 38 + }; 39 + 40 + leds: leds { 41 + compatible = "gpio-leds"; 42 + pinctrl-names = "default"; 43 + pinctrl-0 = <&led_rgb_g &led_rgb_r>; 44 + 45 + power-led { 46 + color = <LED_COLOR_ID_GREEN>; 47 + function = LED_FUNCTION_STATUS; 48 + gpios = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>; 49 + linux,default-trigger = "default-on"; 50 + }; 51 + 52 + user-led { 53 + color = <LED_COLOR_ID_BLUE>; 54 + function = LED_FUNCTION_HEARTBEAT; 55 + gpios = <&gpio0 RK_PC4 GPIO_ACTIVE_LOW>; 56 + linux,default-trigger = "heartbeat"; 57 + }; 58 + }; 59 + 60 + vcc_12v0_dcin: regulator-vcc-12v0-dcin { 61 + compatible = "regulator-fixed"; 62 + regulator-always-on; 63 + regulator-boot-on; 64 + regulator-min-microvolt = <12000000>; 65 + regulator-max-microvolt = <12000000>; 66 + regulator-name = "vcc_12v0_dcin"; 67 + }; 68 + 69 + vcc_1v1_nldo_s3: regulator-vcc-1v1-nldo-s3 { 70 + compatible = "regulator-fixed"; 71 + regulator-always-on; 72 + regulator-boot-on; 73 + regulator-min-microvolt = <1100000>; 74 + regulator-max-microvolt = <1100000>; 75 + regulator-name = "vcc_1v1_nldo_s3"; 76 + vin-supply = <&vcc_5v0_sys>; 77 + }; 78 + 79 + vcc_1v2_ufs_vccq_s0: regulator-vcc-1v2-ufs-vccq-s0 { 80 + compatible = "regulator-fixed"; 81 + regulator-always-on; 82 + regulator-boot-on; 83 + regulator-min-microvolt = <1200000>; 84 + regulator-max-microvolt = <1200000>; 85 + regulator-name = "vcc_1v2_ufs_vccq_s0"; 86 + vin-supply = <&vcc_5v0_sys>; 87 + }; 88 + 89 + vcc_1v8_s0: regulator-vcc-1v8-s0 { 90 + compatible = "regulator-fixed"; 91 + regulator-always-on; 92 + regulator-boot-on; 93 + regulator-min-microvolt = <1800000>; 94 + regulator-max-microvolt = <1800000>; 95 + regulator-name = "vcc_1v8_s0"; 96 + vin-supply = <&vcc_1v8_s3>; 97 + }; 98 + 99 + vcc_1v8_ufs_vccq2_s0: regulator-vcc-1v8-ufs-vccq2-s0 { 100 + compatible = "regulator-fixed"; 101 + regulator-always-on; 102 + regulator-boot-on; 103 + regulator-min-microvolt = <1800000>; 104 + regulator-max-microvolt = <1800000>; 105 + regulator-name = "vcc_1v8_ufs_vccq2_s0"; 106 + vin-supply = <&vcc_1v8_s3>; 107 + }; 108 + 109 + vcc_2v0_pldo_s3: regulator-vcc-2v0-pldo-s3 { 110 + compatible = "regulator-fixed"; 111 + regulator-always-on; 112 + regulator-boot-on; 113 + regulator-min-microvolt = <2000000>; 114 + regulator-max-microvolt = <2000000>; 115 + regulator-name = "vcc_2v0_pldo_s3"; 116 + vin-supply = <&vcc_5v0_sys>; 117 + }; 118 + 119 + vcc_3v3_pcie: regulator-vcc-3v3-pcie { 120 + compatible = "regulator-fixed"; 121 + enable-active-high; 122 + gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>; 123 + pinctrl-names = "default"; 124 + pinctrl-0 = <&pcie_pwren>; 125 + regulator-min-microvolt = <3300000>; 126 + regulator-max-microvolt = <3300000>; 127 + regulator-name = "vcc_3v3_pcie"; 128 + startup-delay-us = <5000>; 129 + vin-supply = <&vcc_5v0_sys>; 130 + }; 131 + 132 + vcc_3v3_rtc_s5: regulator-vcc-3v3-rtc-s5 { 133 + compatible = "regulator-fixed"; 134 + regulator-always-on; 135 + regulator-boot-on; 136 + regulator-min-microvolt = <3300000>; 137 + regulator-max-microvolt = <3300000>; 138 + regulator-name = "vcc_3v3_rtc_s5"; 139 + vin-supply = <&vcc_5v0_sys>; 140 + }; 141 + 142 + vcc_3v3_s0: regulator-vcc-3v3-s0 { 143 + compatible = "regulator-fixed"; 144 + regulator-always-on; 145 + regulator-boot-on; 146 + regulator-min-microvolt = <3300000>; 147 + regulator-max-microvolt = <3300000>; 148 + regulator-name = "vcc_3v3_s0"; 149 + vin-supply = <&vcc_3v3_s3>; 150 + }; 151 + 152 + vcc_3v3_ufs_s0: regulator-vcc-ufs-s0 { 153 + compatible = "regulator-fixed"; 154 + regulator-always-on; 155 + regulator-boot-on; 156 + regulator-min-microvolt = <3300000>; 157 + regulator-max-microvolt = <3300000>; 158 + regulator-name = "vcc_3v3_ufs_s0"; 159 + vin-supply = <&vcc_5v0_sys>; 160 + }; 161 + 162 + vcc_5v0_device: regulator-vcc-5v0-device { 163 + compatible = "regulator-fixed"; 164 + regulator-always-on; 165 + regulator-boot-on; 166 + regulator-min-microvolt = <5000000>; 167 + regulator-max-microvolt = <5000000>; 168 + regulator-name = "vcc_5v0_device"; 169 + vin-supply = <&vcc_12v0_dcin>; 170 + }; 171 + 172 + vcc_5v0_host: regulator-vcc-5v0-host { 173 + compatible = "regulator-fixed"; 174 + enable-active-high; 175 + gpios = <&gpio0 RK_PD3 GPIO_ACTIVE_HIGH>; 176 + pinctrl-names = "default"; 177 + pinctrl-0 = <&usb_host_pwren>; 178 + regulator-always-on; 179 + regulator-boot-on; 180 + regulator-min-microvolt = <5000000>; 181 + regulator-max-microvolt = <5000000>; 182 + regulator-name = "vcc5v0_host"; 183 + vin-supply = <&vcc_5v0_device>; 184 + }; 185 + 186 + vcc_5v0_sys: regulator-vcc-5v0-sys { 187 + compatible = "regulator-fixed"; 188 + regulator-always-on; 189 + regulator-boot-on; 190 + regulator-min-microvolt = <5000000>; 191 + regulator-max-microvolt = <5000000>; 192 + regulator-name = "vcc_5v0_sys"; 193 + vin-supply = <&vcc_12v0_dcin>; 194 + }; 195 + }; 196 + 197 + &combphy1_psu { 198 + status = "okay"; 199 + }; 200 + 201 + &cpu_b0 { 202 + cpu-supply = <&vdd_cpu_big_s0>; 203 + }; 204 + 205 + &cpu_b1 { 206 + cpu-supply = <&vdd_cpu_big_s0>; 207 + }; 208 + 209 + &cpu_b2 { 210 + cpu-supply = <&vdd_cpu_big_s0>; 211 + }; 212 + 213 + &cpu_b3 { 214 + cpu-supply = <&vdd_cpu_big_s0>; 215 + }; 216 + 217 + &cpu_l0 { 218 + cpu-supply = <&vdd_cpu_lit_s0>; 219 + }; 220 + 221 + &cpu_l1 { 222 + cpu-supply = <&vdd_cpu_lit_s0>; 223 + }; 224 + 225 + &cpu_l2 { 226 + cpu-supply = <&vdd_cpu_lit_s0>; 227 + }; 228 + 229 + &cpu_l3 { 230 + cpu-supply = <&vdd_cpu_lit_s0>; 231 + }; 232 + 233 + &gmac0 { 234 + clock_in_out = "output"; 235 + phy-handle = <&rgmii_phy0>; 236 + phy-mode = "rgmii-id"; 237 + pinctrl-names = "default"; 238 + pinctrl-0 = <&eth0m0_miim 239 + &eth0m0_tx_bus2 240 + &eth0m0_rx_bus2 241 + &eth0m0_rgmii_clk 242 + &eth0m0_rgmii_bus 243 + &ethm0_clk0_25m_out>; 244 + status = "okay"; 245 + }; 246 + 247 + &gpu { 248 + mali-supply = <&vdd_gpu_s0>; 249 + status = "okay"; 250 + }; 251 + 252 + &hdmi { 253 + status = "okay"; 254 + }; 255 + 256 + &hdmi_in { 257 + hdmi_in_vp0: endpoint { 258 + remote-endpoint = <&vp0_out_hdmi>; 259 + }; 260 + }; 261 + 262 + &hdmi_out { 263 + hdmi_out_con: endpoint { 264 + remote-endpoint = <&hdmi_con_in>; 265 + }; 266 + }; 267 + 268 + &hdptxphy { 269 + status = "okay"; 270 + }; 271 + 272 + &i2c1 { 273 + status = "okay"; 274 + 275 + pmic@23 { 276 + compatible = "rockchip,rk806"; 277 + reg = <0x23>; 278 + #gpio-cells = <2>; 279 + gpio-controller; 280 + interrupt-parent = <&gpio0>; 281 + interrupts = <6 IRQ_TYPE_LEVEL_LOW>; 282 + pinctrl-names = "default"; 283 + pinctrl-0 = <&pmic_pins 284 + &rk806_dvs1_null 285 + &rk806_dvs2_null 286 + &rk806_dvs3_null>; 287 + system-power-controller; 288 + vcc1-supply = <&vcc_5v0_sys>; 289 + vcc2-supply = <&vcc_5v0_sys>; 290 + vcc3-supply = <&vcc_5v0_sys>; 291 + vcc4-supply = <&vcc_5v0_sys>; 292 + vcc5-supply = <&vcc_5v0_sys>; 293 + vcc6-supply = <&vcc_5v0_sys>; 294 + vcc7-supply = <&vcc_5v0_sys>; 295 + vcc8-supply = <&vcc_5v0_sys>; 296 + vcc9-supply = <&vcc_5v0_sys>; 297 + vcc10-supply = <&vcc_5v0_sys>; 298 + vcc11-supply = <&vcc_2v0_pldo_s3>; 299 + vcc12-supply = <&vcc_5v0_sys>; 300 + vcc13-supply = <&vcc_1v1_nldo_s3>; 301 + vcc14-supply = <&vcc_1v1_nldo_s3>; 302 + vcca-supply = <&vcc_5v0_sys>; 303 + 304 + rk806_dvs1_null: dvs1-null-pins { 305 + pins = "gpio_pwrctrl1"; 306 + function = "pin_fun0"; 307 + }; 308 + 309 + rk806_dvs1_pwrdn: dvs1-pwrdn-pins { 310 + pins = "gpio_pwrctrl1"; 311 + function = "pin_fun2"; 312 + }; 313 + 314 + rk806_dvs1_rst: dvs1-rst-pins { 315 + pins = "gpio_pwrctrl1"; 316 + function = "pin_fun3"; 317 + }; 318 + 319 + rk806_dvs1_slp: dvs1-slp-pins { 320 + pins = "gpio_pwrctrl1"; 321 + function = "pin_fun1"; 322 + }; 323 + 324 + rk806_dvs2_dvs: dvs2-dvs-pins { 325 + pins = "gpio_pwrctrl2"; 326 + function = "pin_fun4"; 327 + }; 328 + 329 + rk806_dvs2_gpio: dvs2-gpio-pins { 330 + pins = "gpio_pwrctrl2"; 331 + function = "pin_fun5"; 332 + }; 333 + 334 + rk806_dvs2_null: dvs2-null-pins { 335 + pins = "gpio_pwrctrl2"; 336 + function = "pin_fun0"; 337 + }; 338 + 339 + rk806_dvs2_pwrdn: dvs2-pwrdn-pins { 340 + pins = "gpio_pwrctrl2"; 341 + function = "pin_fun2"; 342 + }; 343 + 344 + rk806_dvs2_rst: dvs2-rst-pins { 345 + pins = "gpio_pwrctrl2"; 346 + function = "pin_fun3"; 347 + }; 348 + 349 + rk806_dvs2_slp: dvs2-slp-pins { 350 + pins = "gpio_pwrctrl2"; 351 + function = "pin_fun1"; 352 + }; 353 + 354 + rk806_dvs3_dvs: dvs3-dvs-pins { 355 + pins = "gpio_pwrctrl3"; 356 + function = "pin_fun4"; 357 + }; 358 + 359 + rk806_dvs3_gpio: dvs3-gpio-pins { 360 + pins = "gpio_pwrctrl3"; 361 + function = "pin_fun5"; 362 + }; 363 + 364 + rk806_dvs3_null: dvs3-null-pins { 365 + pins = "gpio_pwrctrl3"; 366 + function = "pin_fun0"; 367 + }; 368 + 369 + rk806_dvs3_pwrdn: dvs3-pwrdn-pins { 370 + pins = "gpio_pwrctrl3"; 371 + function = "pin_fun2"; 372 + }; 373 + 374 + rk806_dvs3_rst: dvs3-rst-pins { 375 + pins = "gpio_pwrctrl3"; 376 + function = "pin_fun3"; 377 + }; 378 + 379 + rk806_dvs3_slp: dvs3-slp-pins { 380 + pins = "gpio_pwrctrl3"; 381 + function = "pin_fun1"; 382 + }; 383 + 384 + regulators { 385 + vdd_cpu_big_s0: dcdc-reg1 { 386 + regulator-always-on; 387 + regulator-boot-on; 388 + regulator-enable-ramp-delay = <400>; 389 + regulator-min-microvolt = <550000>; 390 + regulator-max-microvolt = <950000>; 391 + regulator-name = "vdd_cpu_big_s0"; 392 + regulator-ramp-delay = <12500>; 393 + regulator-state-mem { 394 + regulator-off-in-suspend; 395 + }; 396 + }; 397 + 398 + vdd_npu_s0: dcdc-reg2 { 399 + regulator-boot-on; 400 + regulator-enable-ramp-delay = <400>; 401 + regulator-min-microvolt = <550000>; 402 + regulator-max-microvolt = <950000>; 403 + regulator-name = "vdd_npu_s0"; 404 + regulator-ramp-delay = <12500>; 405 + regulator-state-mem { 406 + regulator-off-in-suspend; 407 + }; 408 + }; 409 + 410 + vdd_cpu_lit_s0: dcdc-reg3 { 411 + regulator-always-on; 412 + regulator-boot-on; 413 + regulator-min-microvolt = <550000>; 414 + regulator-max-microvolt = <950000>; 415 + regulator-name = "vdd_cpu_lit_s0"; 416 + regulator-ramp-delay = <12500>; 417 + regulator-state-mem { 418 + regulator-off-in-suspend; 419 + regulator-suspend-microvolt = <750000>; 420 + }; 421 + }; 422 + 423 + vcc_3v3_s3: dcdc-reg4 { 424 + regulator-always-on; 425 + regulator-boot-on; 426 + regulator-min-microvolt = <3300000>; 427 + regulator-max-microvolt = <3300000>; 428 + regulator-name = "vcc_3v3_s3"; 429 + regulator-state-mem { 430 + regulator-on-in-suspend; 431 + regulator-suspend-microvolt = <3300000>; 432 + }; 433 + }; 434 + 435 + vdd_gpu_s0: dcdc-reg5 { 436 + regulator-boot-on; 437 + regulator-enable-ramp-delay = <400>; 438 + regulator-min-microvolt = <550000>; 439 + regulator-max-microvolt = <900000>; 440 + regulator-name = "vdd_gpu_s0"; 441 + regulator-ramp-delay = <12500>; 442 + regulator-state-mem { 443 + regulator-off-in-suspend; 444 + regulator-suspend-microvolt = <850000>; 445 + }; 446 + }; 447 + 448 + vddq_ddr_s0: dcdc-reg6 { 449 + regulator-always-on; 450 + regulator-boot-on; 451 + regulator-name = "vddq_ddr_s0"; 452 + regulator-state-mem { 453 + regulator-off-in-suspend; 454 + }; 455 + }; 456 + 457 + vdd_logic_s0: dcdc-reg7 { 458 + regulator-always-on; 459 + regulator-boot-on; 460 + regulator-min-microvolt = <550000>; 461 + regulator-max-microvolt = <800000>; 462 + regulator-name = "vdd_logic_s0"; 463 + regulator-state-mem { 464 + regulator-off-in-suspend; 465 + }; 466 + }; 467 + 468 + vcc_1v8_s3: dcdc-reg8 { 469 + regulator-always-on; 470 + regulator-boot-on; 471 + regulator-min-microvolt = <1800000>; 472 + regulator-max-microvolt = <1800000>; 473 + regulator-name = "vcc_1v8_s3"; 474 + regulator-state-mem { 475 + regulator-on-in-suspend; 476 + regulator-suspend-microvolt = <1800000>; 477 + }; 478 + }; 479 + 480 + vdd2_ddr_s3: dcdc-reg9 { 481 + regulator-always-on; 482 + regulator-boot-on; 483 + regulator-name = "vdd2_ddr_s3"; 484 + regulator-state-mem { 485 + regulator-on-in-suspend; 486 + }; 487 + }; 488 + 489 + vdd_ddr_s0: dcdc-reg10 { 490 + regulator-always-on; 491 + regulator-boot-on; 492 + regulator-min-microvolt = <550000>; 493 + regulator-max-microvolt = <1200000>; 494 + regulator-name = "vdd_ddr_s0"; 495 + regulator-state-mem { 496 + regulator-off-in-suspend; 497 + }; 498 + }; 499 + 500 + vcca_1v8_s0: pldo-reg1 { 501 + regulator-always-on; 502 + regulator-boot-on; 503 + regulator-min-microvolt = <1800000>; 504 + regulator-max-microvolt = <1800000>; 505 + regulator-name = "vcca_1v8_s0"; 506 + regulator-state-mem { 507 + regulator-off-in-suspend; 508 + }; 509 + }; 510 + 511 + vcca1v8_pldo2_s0: pldo-reg2 { 512 + regulator-always-on; 513 + regulator-boot-on; 514 + regulator-min-microvolt = <1800000>; 515 + regulator-max-microvolt = <1800000>; 516 + regulator-name = "vcca1v8_pldo2_s0"; 517 + regulator-state-mem { 518 + regulator-off-in-suspend; 519 + }; 520 + }; 521 + 522 + vdda_1v2_s0: pldo-reg3 { 523 + regulator-always-on; 524 + regulator-boot-on; 525 + regulator-min-microvolt = <1200000>; 526 + regulator-max-microvolt = <1200000>; 527 + regulator-name = "vdda_1v2_s0"; 528 + regulator-state-mem { 529 + regulator-off-in-suspend; 530 + }; 531 + }; 532 + 533 + vcca_3v3_s0: pldo-reg4 { 534 + regulator-always-on; 535 + regulator-boot-on; 536 + regulator-min-microvolt = <3300000>; 537 + regulator-max-microvolt = <3300000>; 538 + regulator-name = "vcca_3v3_s0"; 539 + regulator-state-mem { 540 + regulator-off-in-suspend; 541 + }; 542 + }; 543 + 544 + vccio_sd_s0: pldo-reg5 { 545 + regulator-always-on; 546 + regulator-boot-on; 547 + regulator-min-microvolt = <1800000>; 548 + regulator-max-microvolt = <3300000>; 549 + regulator-name = "vccio_sd_s0"; 550 + regulator-state-mem { 551 + regulator-off-in-suspend; 552 + }; 553 + }; 554 + 555 + vcca1v8_pldo6_s3: pldo-reg6 { 556 + regulator-always-on; 557 + regulator-boot-on; 558 + regulator-min-microvolt = <1800000>; 559 + regulator-max-microvolt = <1800000>; 560 + regulator-name = "vcca1v8_pldo6_s3"; 561 + regulator-state-mem { 562 + regulator-on-in-suspend; 563 + regulator-suspend-microvolt = <1800000>; 564 + }; 565 + }; 566 + 567 + vdd_0v75_s3: nldo-reg1 { 568 + regulator-always-on; 569 + regulator-boot-on; 570 + regulator-min-microvolt = <750000>; 571 + regulator-max-microvolt = <750000>; 572 + regulator-name = "vdd_0v75_s3"; 573 + regulator-state-mem { 574 + regulator-on-in-suspend; 575 + regulator-suspend-microvolt = <750000>; 576 + }; 577 + }; 578 + 579 + vdda_ddr_pll_s0: nldo-reg2 { 580 + regulator-always-on; 581 + regulator-boot-on; 582 + regulator-min-microvolt = <850000>; 583 + regulator-max-microvolt = <850000>; 584 + regulator-name = "vdda_ddr_pll_s0"; 585 + regulator-state-mem { 586 + regulator-off-in-suspend; 587 + }; 588 + }; 589 + 590 + vdda0v75_hdmi_s0: nldo-reg3 { 591 + regulator-always-on; 592 + regulator-boot-on; 593 + regulator-min-microvolt = <837500>; 594 + regulator-max-microvolt = <837500>; 595 + regulator-name = "vdda0v75_hdmi_s0"; 596 + regulator-state-mem { 597 + regulator-off-in-suspend; 598 + }; 599 + }; 600 + 601 + vdda_0v85_s0: nldo-reg4 { 602 + regulator-always-on; 603 + regulator-boot-on; 604 + regulator-min-microvolt = <850000>; 605 + regulator-max-microvolt = <850000>; 606 + regulator-name = "vdda_0v85_s0"; 607 + regulator-state-mem { 608 + regulator-off-in-suspend; 609 + }; 610 + }; 611 + 612 + vdda_0v75_s0: nldo-reg5 { 613 + regulator-always-on; 614 + regulator-boot-on; 615 + regulator-min-microvolt = <750000>; 616 + regulator-max-microvolt = <750000>; 617 + regulator-name = "vdda_0v75_s0"; 618 + regulator-state-mem { 619 + regulator-off-in-suspend; 620 + }; 621 + }; 622 + }; 623 + }; 624 + }; 625 + 626 + &i2c2 { 627 + status = "okay"; 628 + 629 + hym8563: rtc@51 { 630 + compatible = "haoyu,hym8563"; 631 + reg = <0x51>; 632 + #clock-cells = <0>; 633 + clock-output-names = "hym8563"; 634 + interrupt-parent = <&gpio0>; 635 + interrupts = <RK_PA0 IRQ_TYPE_LEVEL_LOW>; 636 + pinctrl-names = "default"; 637 + pinctrl-0 = <&hym8563_int>; 638 + wakeup-source; 639 + }; 640 + }; 641 + 642 + &mdio0 { 643 + rgmii_phy0: ethernet-phy@1 { 644 + compatible = "ethernet-phy-ieee802.3-c22"; 645 + reg = <0x1>; 646 + clocks = <&cru REFCLKO25M_GMAC0_OUT>; 647 + pinctrl-names = "default"; 648 + pinctrl-0 = <&rtl8211f_rst>; 649 + reset-assert-us = <20000>; 650 + reset-deassert-us = <100000>; 651 + reset-gpio = <&gpio2 RK_PB5 GPIO_ACTIVE_LOW>; 652 + }; 653 + }; 654 + 655 + &pinctrl { 656 + hym8563 { 657 + hym8563_int: hym8563-int { 658 + rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>; 659 + }; 660 + }; 661 + 662 + leds { 663 + led_rgb_g: led-green-en { 664 + rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>; 665 + }; 666 + led_rgb_r: led-red-en { 667 + rockchip,pins = <0 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>; 668 + }; 669 + }; 670 + 671 + rtl8211f { 672 + rtl8211f_rst: rtl8211f-rst { 673 + rockchip,pins = <2 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; 674 + }; 675 + }; 676 + 677 + pcie { 678 + pcie_pwren: pcie-pwren { 679 + rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; 680 + }; 681 + }; 682 + 683 + usb { 684 + usb_host_pwren: usb-host-pwren { 685 + rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; 686 + }; 687 + }; 688 + }; 689 + 690 + &sdmmc { 691 + bus-width = <4>; 692 + cap-mmc-highspeed; 693 + cap-sd-highspeed; 694 + disable-wp; 695 + max-frequency = <200000000>; 696 + no-sdio; 697 + no-mmc; 698 + sd-uhs-sdr104; 699 + vmmc-supply = <&vcc_3v3_s3>; 700 + vqmmc-supply = <&vccio_sd_s0>; 701 + status = "okay"; 702 + }; 703 + 704 + 705 + &sfc0 { 706 + pinctrl-names = "default"; 707 + pinctrl-0 = <&fspi0_pins &fspi0_csn0>; 708 + status = "okay"; 709 + 710 + flash@0 { 711 + compatible = "jedec,spi-nor"; 712 + reg = <0>; 713 + spi-max-frequency = <50000000>; 714 + spi-rx-bus-width = <4>; 715 + spi-tx-bus-width = <1>; 716 + vcc-supply = <&vcc_1v8_s3>; 717 + }; 718 + }; 719 + 720 + &u2phy0 { 721 + status = "okay"; 722 + }; 723 + 724 + &u2phy1 { 725 + status = "okay"; 726 + }; 727 + 728 + &uart0 { 729 + pinctrl-0 = <&uart0m0_xfer>; 730 + status = "okay"; 731 + }; 732 + 733 + &usb_drd1_dwc3 { 734 + dr_mode = "host"; 735 + status = "okay"; 736 + }; 737 + 738 + &vop { 739 + status = "okay"; 740 + }; 741 + 742 + &vop_mmu { 743 + status = "okay"; 744 + }; 745 + 746 + &vp0 { 747 + vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 { 748 + reg = <ROCKCHIP_VOP2_EP_HDMI0>; 749 + remote-endpoint = <&hdmi_in_vp0>; 750 + }; 751 + };
+187
arch/arm64/boot/dts/rockchip/rk3576.dtsi
··· 393 393 }; 394 394 }; 395 395 396 + display_subsystem: display-subsystem { 397 + compatible = "rockchip,display-subsystem"; 398 + ports = <&vop_out>; 399 + }; 400 + 396 401 firmware { 397 402 scmi: scmi { 398 403 compatible = "arm,scmi-smc"; ··· 623 618 status = "disabled"; 624 619 }; 625 620 }; 621 + }; 622 + 623 + hdptxphy_grf: syscon@26032000 { 624 + compatible = "rockchip,rk3576-hdptxphy-grf", "syscon"; 625 + reg = <0x0 0x26032000 0x0 0x100>; 626 626 }; 627 627 628 628 vo1_grf: syscon@26036000 { ··· 947 937 status = "disabled"; 948 938 }; 949 939 940 + vop: vop@27d00000 { 941 + compatible = "rockchip,rk3576-vop"; 942 + reg = <0x0 0x27d00000 0x0 0x3000>, <0x0 0x27d05000 0x0 0x1000>; 943 + reg-names = "vop", "gamma-lut"; 944 + interrupts = <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH>, 945 + <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH>, 946 + <GIC_SPI 380 IRQ_TYPE_LEVEL_HIGH>, 947 + <GIC_SPI 381 IRQ_TYPE_LEVEL_HIGH>; 948 + interrupt-names = "sys", 949 + "vp0", 950 + "vp1", 951 + "vp2"; 952 + clocks = <&cru ACLK_VOP>, 953 + <&cru HCLK_VOP>, 954 + <&cru DCLK_VP0>, 955 + <&cru DCLK_VP1>, 956 + <&cru DCLK_VP2>; 957 + clock-names = "aclk", 958 + "hclk", 959 + "dclk_vp0", 960 + "dclk_vp1", 961 + "dclk_vp2"; 962 + iommus = <&vop_mmu>; 963 + power-domains = <&power RK3576_PD_VOP>; 964 + rockchip,grf = <&sys_grf>; 965 + rockchip,pmu = <&pmu>; 966 + status = "disabled"; 967 + 968 + vop_out: ports { 969 + #address-cells = <1>; 970 + #size-cells = <0>; 971 + 972 + vp0: port@0 { 973 + #address-cells = <1>; 974 + #size-cells = <0>; 975 + reg = <0>; 976 + }; 977 + 978 + vp1: port@1 { 979 + #address-cells = <1>; 980 + #size-cells = <0>; 981 + reg = <1>; 982 + }; 983 + 984 + vp2: port@2 { 985 + #address-cells = <1>; 986 + #size-cells = <0>; 987 + reg = <2>; 988 + }; 989 + }; 990 + }; 991 + 992 + vop_mmu: iommu@27d07e00 { 993 + compatible = "rockchip,rk3576-iommu", "rockchip,rk3568-iommu"; 994 + reg = <0x0 0x27d07e00 0x0 0x100>, <0x0 0x27d07f00 0x0 0x100>; 995 + interrupts = <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH>; 996 + clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>; 997 + clock-names = "aclk", "iface"; 998 + #iommu-cells = <0>; 999 + power-domains = <&power RK3576_PD_VOP>; 1000 + status = "disabled"; 1001 + }; 1002 + 1003 + hdmi: hdmi@27da0000 { 1004 + compatible = "rockchip,rk3576-dw-hdmi-qp"; 1005 + reg = <0x0 0x27da0000 0x0 0x20000>; 1006 + clocks = <&cru PCLK_HDMITX0>, 1007 + <&cru CLK_HDMITX0_EARC>, 1008 + <&cru CLK_HDMITX0_REF>, 1009 + <&cru MCLK_SAI6_8CH>, 1010 + <&cru CLK_HDMITXHDP>, 1011 + <&cru HCLK_VO0_ROOT>; 1012 + clock-names = "pclk", "earc", "ref", "aud", "hdp", "hclk_vo1"; 1013 + interrupts = <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>, 1014 + <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>, 1015 + <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH>, 1016 + <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>, 1017 + <GIC_SPI 367 IRQ_TYPE_LEVEL_HIGH>; 1018 + interrupt-names = "avp", "cec", "earc", "main", "hpd"; 1019 + phys = <&hdptxphy>; 1020 + pinctrl-names = "default"; 1021 + pinctrl-0 = <&hdmi_txm0_pins &hdmi_tx_scl &hdmi_tx_sda>; 1022 + power-domains = <&power RK3576_PD_VO0>; 1023 + resets = <&cru SRST_HDMITX0_REF>, <&cru SRST_HDMITXHDP>; 1024 + reset-names = "ref", "hdp"; 1025 + rockchip,grf = <&ioc_grf>; 1026 + rockchip,vo-grf = <&vo0_grf>; 1027 + status = "disabled"; 1028 + 1029 + ports { 1030 + #address-cells = <1>; 1031 + #size-cells = <0>; 1032 + 1033 + hdmi_in: port@0 { 1034 + reg = <0>; 1035 + }; 1036 + 1037 + hdmi_out: port@1 { 1038 + reg = <1>; 1039 + }; 1040 + }; 1041 + }; 1042 + 950 1043 qos_hdcp1: qos@27f02000 { 951 1044 compatible = "rockchip,rk3576-qos", "syscon"; 952 1045 reg = <0x0 0x27f02000 0x0 0x20>; ··· 1334 1221 }; 1335 1222 }; 1336 1223 1224 + sfc1: spi@2a300000 { 1225 + compatible = "rockchip,sfc"; 1226 + reg = <0x0 0x2a300000 0x0 0x4000>; 1227 + interrupts = <GIC_SPI 255 IRQ_TYPE_LEVEL_HIGH>; 1228 + clocks = <&cru SCLK_FSPI1_X2>, <&cru HCLK_FSPI1>; 1229 + clock-names = "clk_sfc", "hclk_sfc"; 1230 + #address-cells = <1>; 1231 + #size-cells = <0>; 1232 + status = "disabled"; 1233 + }; 1234 + 1337 1235 sdmmc: mmc@2a310000 { 1338 1236 compatible = "rockchip,rk3576-dw-mshc"; 1339 1237 reg = <0x0 0x2a310000 0x0 0x4000>; ··· 1382 1258 reset-names = "core", "bus", "axi", "block", "timer"; 1383 1259 supports-cqe; 1384 1260 status = "disabled"; 1261 + }; 1262 + 1263 + sfc0: spi@2a340000 { 1264 + compatible = "rockchip,sfc"; 1265 + reg = <0x0 0x2a340000 0x0 0x4000>; 1266 + interrupts = <GIC_SPI 254 IRQ_TYPE_LEVEL_HIGH>; 1267 + clocks = <&cru SCLK_FSPI_X2>, <&cru HCLK_FSPI>; 1268 + clock-names = "clk_sfc", "hclk_sfc"; 1269 + #address-cells = <1>; 1270 + #size-cells = <0>; 1271 + status = "disabled"; 1272 + }; 1273 + 1274 + otp: otp@2a580000 { 1275 + compatible = "rockchip,rk3576-otp"; 1276 + reg = <0x0 0x2a580000 0x0 0x400>; 1277 + #address-cells = <1>; 1278 + #size-cells = <1>; 1279 + clocks = <&cru CLK_OTPC_NS>, <&cru PCLK_OTPC_NS>, 1280 + <&cru CLK_OTP_PHY_G>; 1281 + clock-names = "otp", "apb_pclk", "phy"; 1282 + resets = <&cru SRST_OTPC_NS>, <&cru SRST_P_OTPC_NS>; 1283 + reset-names = "otp", "apb"; 1284 + 1285 + /* Data cells */ 1286 + cpu_code: cpu-code@2 { 1287 + reg = <0x02 0x2>; 1288 + }; 1289 + otp_cpu_version: cpu-version@5 { 1290 + reg = <0x05 0x1>; 1291 + bits = <3 3>; 1292 + }; 1293 + otp_id: id@a { 1294 + reg = <0x0a 0x10>; 1295 + }; 1296 + cpub_leakage: cpub-leakage@1e { 1297 + reg = <0x1e 0x1>; 1298 + }; 1299 + cpul_leakage: cpul-leakage@1f { 1300 + reg = <0x1f 0x1>; 1301 + }; 1302 + npu_leakage: npu-leakage@20 { 1303 + reg = <0x20 0x1>; 1304 + }; 1305 + gpu_leakage: gpu-leakage@21 { 1306 + reg = <0x21 0x1>; 1307 + }; 1308 + log_leakage: log-leakage@22 { 1309 + reg = <0x22 0x1>; 1310 + }; 1385 1311 }; 1386 1312 1387 1313 gic: interrupt-controller@2a701000 { ··· 1927 1753 rockchip,usb-grf = <&usb_grf>; 1928 1754 rockchip,usbdpphy-grf = <&usbdpphy_grf>; 1929 1755 rockchip,vo-grf = <&vo1_grf>; 1756 + status = "disabled"; 1757 + }; 1758 + 1759 + hdptxphy: hdmiphy@2b000000 { 1760 + compatible = "rockchip,rk3576-hdptx-phy", "rockchip,rk3588-hdptx-phy"; 1761 + reg = <0x0 0x2b000000 0x0 0x2000>; 1762 + clocks = <&cru CLK_PHY_REF_SRC>, <&cru PCLK_HDPTX_APB>; 1763 + clock-names = "ref", "apb"; 1764 + resets = <&cru SRST_P_HDPTX_APB>, <&cru SRST_HDPTX_INIT>, 1765 + <&cru SRST_HDPTX_CMN>, <&cru SRST_HDPTX_LANE>; 1766 + reset-names = "apb", "init", "cmn", "lane"; 1767 + rockchip,grf = <&hdptxphy_grf>; 1768 + #phy-cells = <0>; 1930 1769 status = "disabled"; 1931 1770 }; 1932 1771
+4
arch/arm64/boot/dts/rockchip/rk3588-armsom-lm7.dtsi
··· 114 114 }; 115 115 }; 116 116 117 + &pd_gpu { 118 + domain-supply = <&vdd_gpu_s0>; 119 + }; 120 + 117 121 &saradc { 118 122 vref-supply = <&avcc_1v8_s0>; 119 123 status = "okay";
+51
arch/arm64/boot/dts/rockchip/rk3588-armsom-sige7.dts
··· 4 4 5 5 #include <dt-bindings/gpio/gpio.h> 6 6 #include <dt-bindings/leds/common.h> 7 + #include <dt-bindings/soc/rockchip,vop2.h> 7 8 #include "rk3588.dtsi" 8 9 9 10 / { ··· 32 31 "Headphones", "HPOR"; 33 32 widgets = "Microphone", "Mic Jack", 34 33 "Headphone", "Headphones"; 34 + }; 35 + 36 + hdmi0-con { 37 + compatible = "hdmi-connector"; 38 + type = "a"; 39 + 40 + port { 41 + hdmi0_con_in: endpoint { 42 + remote-endpoint = <&hdmi0_out_con>; 43 + }; 44 + }; 35 45 }; 36 46 37 47 leds { ··· 176 164 status = "okay"; 177 165 }; 178 166 167 + &hdmi0 { 168 + status = "okay"; 169 + }; 170 + 171 + &hdmi0_in { 172 + hdmi0_in_vp0: endpoint { 173 + remote-endpoint = <&vp0_out_hdmi0>; 174 + }; 175 + }; 176 + 177 + &hdmi0_out { 178 + hdmi0_out_con: endpoint { 179 + remote-endpoint = <&hdmi0_con_in>; 180 + }; 181 + }; 182 + 183 + &hdptxphy0 { 184 + status = "okay"; 185 + }; 186 + 179 187 &i2c0 { 180 188 pinctrl-names = "default"; 181 189 pinctrl-0 = <&i2c0m2_xfer>; ··· 316 284 reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>; 317 285 vpcie3v3-supply = <&vcc3v3_pcie30>; 318 286 status = "okay"; 287 + }; 288 + 289 + &pd_gpu { 290 + domain-supply = <&vdd_gpu_s0>; 319 291 }; 320 292 321 293 &pinctrl { ··· 758 722 &usb_host1_xhci { 759 723 dr_mode = "host"; 760 724 status = "okay"; 725 + }; 726 + 727 + &vop_mmu { 728 + status = "okay"; 729 + }; 730 + 731 + &vop { 732 + status = "okay"; 733 + }; 734 + 735 + &vp0 { 736 + vp0_out_hdmi0: endpoint@ROCKCHIP_VOP2_EP_HDMI0 { 737 + reg = <ROCKCHIP_VOP2_EP_HDMI0>; 738 + remote-endpoint = <&hdmi0_in_vp0>; 739 + }; 761 740 };
+100 -10
arch/arm64/boot/dts/rockchip/rk3588-base.dtsi
··· 358 358 }; 359 359 360 360 firmware { 361 - optee: optee { 362 - compatible = "linaro,optee-tz"; 363 - method = "smc"; 364 - }; 365 - 366 361 scmi: scmi { 367 362 compatible = "arm,scmi-smc"; 368 363 arm,smc-id = <0x82000010>; ··· 374 379 reg = <0x16>; 375 380 #reset-cells = <1>; 376 381 }; 382 + }; 383 + }; 384 + 385 + hdmi0_sound: hdmi0-sound { 386 + compatible = "simple-audio-card"; 387 + simple-audio-card,format = "i2s"; 388 + simple-audio-card,mclk-fs = <128>; 389 + simple-audio-card,name = "hdmi0"; 390 + status = "disabled"; 391 + 392 + simple-audio-card,codec { 393 + sound-dai = <&hdmi0>; 394 + }; 395 + 396 + simple-audio-card,cpu { 397 + sound-dai = <&i2s5_8ch>; 377 398 }; 378 399 }; 379 400 ··· 875 864 }; 876 865 }; 877 866 /* These power domains are grouped by VD_GPU */ 878 - power-domain@RK3588_PD_GPU { 867 + pd_gpu: power-domain@RK3588_PD_GPU { 879 868 reg = <RK3588_PD_GPU>; 880 869 clocks = <&cru CLK_GPU>, 881 870 <&cru CLK_GPU_COREGROUP>, ··· 1272 1261 <&cru DCLK_VOP1>, 1273 1262 <&cru DCLK_VOP2>, 1274 1263 <&cru DCLK_VOP3>, 1275 - <&cru PCLK_VOP_ROOT>; 1264 + <&cru PCLK_VOP_ROOT>, 1265 + <&hdptxphy0>; 1276 1266 clock-names = "aclk", 1277 1267 "hclk", 1278 1268 "dclk_vp0", 1279 1269 "dclk_vp1", 1280 1270 "dclk_vp2", 1281 1271 "dclk_vp3", 1282 - "pclk_vop"; 1272 + "pclk_vop", 1273 + "pll_hdmiphy0"; 1283 1274 iommus = <&vop_mmu>; 1284 1275 power-domains = <&power RK3588_PD_VOP>; 1285 1276 rockchip,grf = <&sys_grf>; ··· 1331 1318 status = "disabled"; 1332 1319 }; 1333 1320 1321 + spdif_tx2: spdif-tx@fddb0000 { 1322 + compatible = "rockchip,rk3588-spdif", "rockchip,rk3568-spdif"; 1323 + reg = <0x0 0xfddb0000 0x0 0x1000>; 1324 + assigned-clock-parents = <&cru PLL_AUPLL>; 1325 + assigned-clocks = <&cru CLK_SPDIF2_DP0_SRC>; 1326 + clock-names = "mclk", "hclk"; 1327 + clocks = <&cru MCLK_SPDIF2>, <&cru HCLK_SPDIF2_DP0>; 1328 + dma-names = "tx"; 1329 + dmas = <&dmac1 6>; 1330 + interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH 0>; 1331 + power-domains = <&power RK3588_PD_VO0>; 1332 + #sound-dai-cells = <0>; 1333 + status = "disabled"; 1334 + }; 1335 + 1334 1336 i2s4_8ch: i2s@fddc0000 { 1335 1337 compatible = "rockchip,rk3588-i2s-tdm"; 1336 1338 reg = <0x0 0xfddc0000 0x0 0x1000>; ··· 1359 1331 power-domains = <&power RK3588_PD_VO0>; 1360 1332 resets = <&cru SRST_M_I2S4_8CH_TX>; 1361 1333 reset-names = "tx-m"; 1334 + #sound-dai-cells = <0>; 1335 + status = "disabled"; 1336 + }; 1337 + 1338 + spdif_tx3: spdif-tx@fdde0000 { 1339 + compatible = "rockchip,rk3588-spdif", "rockchip,rk3568-spdif"; 1340 + reg = <0x0 0xfdde0000 0x0 0x1000>; 1341 + assigned-clock-parents = <&cru PLL_AUPLL>; 1342 + assigned-clocks = <&cru CLK_SPDIF3_SRC>; 1343 + clock-names = "mclk", "hclk"; 1344 + clocks = <&cru MCLK_SPDIF3>, <&cru HCLK_SPDIF3>; 1345 + dma-names = "tx"; 1346 + dmas = <&dmac1 7>; 1347 + interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH 0>; 1348 + power-domains = <&power RK3588_PD_VO1>; 1362 1349 #sound-dai-cells = <0>; 1363 1350 status = "disabled"; 1364 1351 }; ··· 1428 1385 <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH 0>, 1429 1386 <GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH 0>; 1430 1387 interrupt-names = "avp", "cec", "earc", "main", "hpd"; 1431 - phys = <&hdptxphy_hdmi0>; 1388 + phys = <&hdptxphy0>; 1432 1389 pinctrl-names = "default"; 1433 1390 pinctrl-0 = <&hdmim0_tx0_cec &hdmim0_tx0_hpd 1434 1391 &hdmim0_tx0_scl &hdmim0_tx0_sda>; ··· 1437 1394 reset-names = "ref", "hdp"; 1438 1395 rockchip,grf = <&sys_grf>; 1439 1396 rockchip,vo-grf = <&vo1_grf>; 1397 + #sound-dai-cells = <0>; 1440 1398 status = "disabled"; 1441 1399 1442 1400 ports { ··· 1965 1921 status = "disabled"; 1966 1922 }; 1967 1923 1924 + rng@fe378000 { 1925 + compatible = "rockchip,rk3588-rng"; 1926 + reg = <0x0 0xfe378000 0x0 0x200>; 1927 + interrupts = <GIC_SPI 400 IRQ_TYPE_LEVEL_HIGH 0>; 1928 + clocks = <&scmi_clk SCMI_HCLK_SECURE_NS>; 1929 + resets = <&scmi_reset 48>; 1930 + }; 1931 + 1968 1932 i2s0_8ch: i2s@fe470000 { 1969 1933 compatible = "rockchip,rk3588-i2s-tdm"; 1970 1934 reg = <0x0 0xfe470000 0x0 0x1000>; ··· 2068 2016 status = "disabled"; 2069 2017 }; 2070 2018 2019 + spdif_tx0: spdif-tx@fe4e0000 { 2020 + compatible = "rockchip,rk3588-spdif", "rockchip,rk3568-spdif"; 2021 + reg = <0x0 0xfe4e0000 0x0 0x1000>; 2022 + assigned-clock-parents = <&cru PLL_AUPLL>; 2023 + assigned-clocks = <&cru CLK_SPDIF0_SRC>; 2024 + clock-names = "mclk", "hclk"; 2025 + clocks = <&cru MCLK_SPDIF0>, <&cru HCLK_SPDIF0>; 2026 + dma-names = "tx"; 2027 + dmas = <&dmac0 5>; 2028 + interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH 0>; 2029 + pinctrl-0 = <&spdif0m0_tx>; 2030 + pinctrl-names = "default"; 2031 + power-domains = <&power RK3588_PD_AUDIO>; 2032 + #sound-dai-cells = <0>; 2033 + status = "disabled"; 2034 + }; 2035 + 2036 + spdif_tx1: spdif-tx@fe4f0000 { 2037 + compatible = "rockchip,rk3588-spdif", "rockchip,rk3568-spdif"; 2038 + reg = <0x0 0xfe4f0000 0x0 0x1000>; 2039 + assigned-clock-parents = <&cru PLL_AUPLL>; 2040 + assigned-clocks = <&cru CLK_SPDIF1_SRC>; 2041 + clock-names = "mclk", "hclk"; 2042 + clocks = <&cru MCLK_SPDIF1>, <&cru HCLK_SPDIF1>; 2043 + dma-names = "tx"; 2044 + dmas = <&dmac1 5>; 2045 + interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH 0>; 2046 + pinctrl-0 = <&spdif1m0_tx>; 2047 + pinctrl-names = "default"; 2048 + power-domains = <&power RK3588_PD_AUDIO>; 2049 + #sound-dai-cells = <0>; 2050 + status = "disabled"; 2051 + }; 2052 + 2071 2053 gic: interrupt-controller@fe600000 { 2072 2054 compatible = "arm,gic-v3"; 2073 2055 reg = <0x0 0xfe600000 0 0x10000>, /* GICD */ 2074 2056 <0x0 0xfe680000 0 0x100000>; /* GICR */ 2075 2057 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>; 2076 2058 interrupt-controller; 2059 + dma-noncoherent; 2077 2060 mbi-alias = <0x0 0xfe610000>; 2078 2061 mbi-ranges = <424 56>; 2079 2062 msi-controller; ··· 2120 2033 its0: msi-controller@fe640000 { 2121 2034 compatible = "arm,gic-v3-its"; 2122 2035 reg = <0x0 0xfe640000 0x0 0x20000>; 2036 + dma-noncoherent; 2123 2037 msi-controller; 2124 2038 #msi-cells = <1>; 2125 2039 }; ··· 2128 2040 its1: msi-controller@fe660000 { 2129 2041 compatible = "arm,gic-v3-its"; 2130 2042 reg = <0x0 0xfe660000 0x0 0x20000>; 2043 + dma-noncoherent; 2131 2044 msi-controller; 2132 2045 #msi-cells = <1>; 2133 2046 }; ··· 2896 2807 #dma-cells = <1>; 2897 2808 }; 2898 2809 2899 - hdptxphy_hdmi0: phy@fed60000 { 2810 + hdptxphy0: phy@fed60000 { 2900 2811 compatible = "rockchip,rk3588-hdptx-phy"; 2901 2812 reg = <0x0 0xfed60000 0x0 0x2000>; 2902 2813 clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>, <&cru PCLK_HDPTX0>; 2903 2814 clock-names = "ref", "apb"; 2815 + #clock-cells = <0>; 2904 2816 #phy-cells = <0>; 2905 2817 resets = <&cru SRST_HDPTX0>, <&cru SRST_P_HDPTX0>, 2906 2818 <&cru SRST_HDPTX0_INIT>, <&cru SRST_HDPTX0_CMN>,
+1 -1
arch/arm64/boot/dts/rockchip/rk3588-coolpi-cm5-evb.dts
··· 129 129 }; 130 130 }; 131 131 132 - &hdptxphy_hdmi0 { 132 + &hdptxphy0 { 133 133 status = "okay"; 134 134 }; 135 135
+1 -1
arch/arm64/boot/dts/rockchip/rk3588-coolpi-cm5-genbook.dts
··· 166 166 }; 167 167 }; 168 168 169 - &hdptxphy_hdmi0 { 169 + &hdptxphy0 { 170 170 status = "okay"; 171 171 }; 172 172
+4
arch/arm64/boot/dts/rockchip/rk3588-coolpi-cm5.dtsi
··· 277 277 status = "okay"; 278 278 }; 279 279 280 + &pd_gpu { 281 + domain-supply = <&vdd_gpu_s0>; 282 + }; 283 + 280 284 &pinctrl { 281 285 hym8563 { 282 286 hym8563_int: hym8563-int {
+4
arch/arm64/boot/dts/rockchip/rk3588-edgeble-neu6a-common.dtsi
··· 126 126 }; 127 127 }; 128 128 129 + &pd_gpu { 130 + domain-supply = <&vdd_gpu_s0>; 131 + }; 132 + 129 133 &pinctrl { 130 134 leds { 131 135 led_user_en: led_user_en {
+47
arch/arm64/boot/dts/rockchip/rk3588-edgeble-neu6a-io.dtsi
··· 4 4 */ 5 5 6 6 #include <dt-bindings/gpio/gpio.h> 7 + #include <dt-bindings/soc/rockchip,vop2.h> 7 8 8 9 / { 9 10 chosen { 10 11 stdout-path = "serial2:1500000n8"; 12 + }; 13 + 14 + hdmi1-con { 15 + compatible = "hdmi-connector"; 16 + type = "a"; 17 + 18 + port { 19 + hdmi1_con_in: endpoint { 20 + remote-endpoint = <&hdmi1_out_con>; 21 + }; 22 + }; 11 23 }; 12 24 13 25 /* Unnamed gated oscillator: 100MHz,3.3V,3225 */ ··· 90 78 }; 91 79 92 80 &combphy2_psu { 81 + status = "okay"; 82 + }; 83 + 84 + &hdmi1 { 85 + status = "okay"; 86 + }; 87 + 88 + &hdmi1_in { 89 + hdmi1_in_vp0: endpoint { 90 + remote-endpoint = <&vp0_out_hdmi1>; 91 + }; 92 + }; 93 + 94 + &hdmi1_out { 95 + hdmi1_out_con: endpoint { 96 + remote-endpoint = <&hdmi1_con_in>; 97 + }; 98 + }; 99 + 100 + &hdptxphy1 { 93 101 status = "okay"; 94 102 }; 95 103 ··· 306 274 307 275 &usb_host2_xhci { 308 276 status = "okay"; 277 + }; 278 + 279 + &vop_mmu { 280 + status = "okay"; 281 + }; 282 + 283 + &vop { 284 + status = "okay"; 285 + }; 286 + 287 + &vp0 { 288 + vp0_out_hdmi1: endpoint@ROCKCHIP_VOP2_EP_HDMI1 { 289 + reg = <ROCKCHIP_VOP2_EP_HDMI1>; 290 + remote-endpoint = <&hdmi1_in_vp0>; 291 + }; 309 292 };
+46 -4
arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts
··· 132 132 }; 133 133 }; 134 134 135 + hdmi1-con { 136 + compatible = "hdmi-connector"; 137 + type = "a"; 138 + 139 + port { 140 + hdmi1_con_in: endpoint { 141 + remote-endpoint = <&hdmi1_out_con>; 142 + }; 143 + }; 144 + }; 145 + 135 146 pcie20_avdd0v85: regulator-pcie20-avdd0v85 { 136 147 compatible = "regulator-fixed"; 137 148 regulator-name = "pcie20_avdd0v85"; ··· 375 364 }; 376 365 }; 377 366 378 - &hdptxphy_hdmi0 { 367 + &hdmi1 { 368 + status = "okay"; 369 + }; 370 + 371 + &hdmi1_in { 372 + hdmi1_in_vp1: endpoint { 373 + remote-endpoint = <&vp1_out_hdmi1>; 374 + }; 375 + }; 376 + 377 + &hdmi1_out { 378 + hdmi1_out_con: endpoint { 379 + remote-endpoint = <&hdmi1_con_in>; 380 + }; 381 + }; 382 + 383 + &hdptxphy0 { 384 + status = "okay"; 385 + }; 386 + 387 + &hdptxphy1 { 379 388 status = "okay"; 380 389 }; 381 390 ··· 472 441 status = "okay"; 473 442 474 443 es8388: audio-codec@11 { 475 - compatible = "everest,es8388"; 444 + compatible = "everest,es8388", "everest,es8328"; 476 445 reg = <0x11>; 477 446 clocks = <&cru I2S0_8CH_MCLKOUT>; 478 447 assigned-clocks = <&cru I2S0_8CH_MCLKOUT>; ··· 548 517 reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>; 549 518 vpcie3v3-supply = <&vcc3v3_pcie30>; 550 519 status = "okay"; 520 + }; 521 + 522 + &pd_gpu { 523 + domain-supply = <&vdd_gpu_s0>; 551 524 }; 552 525 553 526 &pinctrl { ··· 1406 1371 status = "okay"; 1407 1372 }; 1408 1373 1409 - &vop_mmu { 1374 + &vop { 1410 1375 status = "okay"; 1411 1376 }; 1412 1377 1413 - &vop { 1378 + &vop_mmu { 1414 1379 status = "okay"; 1415 1380 }; 1416 1381 ··· 1418 1383 vp0_out_hdmi0: endpoint@ROCKCHIP_VOP2_EP_HDMI0 { 1419 1384 reg = <ROCKCHIP_VOP2_EP_HDMI0>; 1420 1385 remote-endpoint = <&hdmi0_in_vp0>; 1386 + }; 1387 + }; 1388 + 1389 + &vp1 { 1390 + vp1_out_hdmi1: endpoint@ROCKCHIP_VOP2_EP_HDMI1 { 1391 + reg = <ROCKCHIP_VOP2_EP_HDMI1>; 1392 + remote-endpoint = <&hdmi1_in_vp1>; 1421 1393 }; 1422 1394 };
+186
arch/arm64/boot/dts/rockchip/rk3588-extra.dtsi
··· 7 7 #include "rk3588-extra-pinctrl.dtsi" 8 8 9 9 / { 10 + hdmi1_sound: hdmi1-sound { 11 + compatible = "simple-audio-card"; 12 + simple-audio-card,format = "i2s"; 13 + simple-audio-card,mclk-fs = <128>; 14 + simple-audio-card,name = "hdmi1"; 15 + status = "disabled"; 16 + 17 + simple-audio-card,codec { 18 + sound-dai = <&hdmi1>; 19 + }; 20 + 21 + simple-audio-card,cpu { 22 + sound-dai = <&i2s6_8ch>; 23 + }; 24 + }; 25 + 26 + reserved-memory { 27 + #address-cells = <2>; 28 + #size-cells = <2>; 29 + ranges; 30 + 31 + /* 32 + * The 4k HDMI capture controller works only with 32bit 33 + * phys addresses and doesn't support IOMMU. HDMI RX CMA 34 + * must be reserved below 4GB. 35 + * The size of 160MB was determined as follows: 36 + * (3840 * 2160 pixels) * (4 bytes/pixel) * (2 frames/buffer) / 10^6 = 66MB 37 + * To ensure sufficient support for practical use-cases, 38 + * we doubled the 66MB value. 39 + */ 40 + hdmi_receiver_cma: hdmi-receiver-cma { 41 + compatible = "shared-dma-pool"; 42 + alloc-ranges = <0x0 0x0 0x0 0xffffffff>; 43 + size = <0x0 (160 * 0x100000)>; /* 160MiB */ 44 + alignment = <0x0 0x40000>; /* 64K */ 45 + no-map; 46 + status = "disabled"; 47 + }; 48 + }; 49 + 10 50 usb_host1_xhci: usb@fc400000 { 11 51 compatible = "rockchip,rk3588-dwc3", "snps,dwc3"; 12 52 reg = <0x0 0xfc400000 0x0 0x400000>; ··· 107 67 }; 108 68 }; 109 69 70 + hdptxphy1_grf: syscon@fd5e4000 { 71 + compatible = "rockchip,rk3588-hdptxphy-grf", "syscon"; 72 + reg = <0x0 0xfd5e4000 0x0 0x100>; 73 + }; 74 + 75 + spdif_tx5: spdif-tx@fddb8000 { 76 + compatible = "rockchip,rk3588-spdif", "rockchip,rk3568-spdif"; 77 + reg = <0x0 0xfddb8000 0x0 0x1000>; 78 + assigned-clock-parents = <&cru PLL_AUPLL>; 79 + assigned-clocks = <&cru CLK_SPDIF5_DP1_SRC>; 80 + clock-names = "mclk", "hclk"; 81 + clocks = <&cru MCLK_SPDIF5>, <&cru HCLK_SPDIF5_DP1>; 82 + dma-names = "tx"; 83 + dmas = <&dmac1 22>; 84 + interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH 0>; 85 + power-domains = <&power RK3588_PD_VO0>; 86 + #sound-dai-cells = <0>; 87 + status = "disabled"; 88 + }; 89 + 110 90 i2s8_8ch: i2s@fddc8000 { 111 91 compatible = "rockchip,rk3588-i2s-tdm"; 112 92 reg = <0x0 0xfddc8000 0x0 0x1000>; ··· 140 80 power-domains = <&power RK3588_PD_VO0>; 141 81 resets = <&cru SRST_M_I2S8_8CH_TX>; 142 82 reset-names = "tx-m"; 83 + #sound-dai-cells = <0>; 84 + status = "disabled"; 85 + }; 86 + 87 + spdif_tx4: spdif-tx@fdde8000 { 88 + compatible = "rockchip,rk3588-spdif", "rockchip,rk3568-spdif"; 89 + reg = <0x0 0xfdde8000 0x0 0x1000>; 90 + assigned-clock-parents = <&cru PLL_AUPLL>; 91 + assigned-clocks = <&cru CLK_SPDIF4_SRC>; 92 + clock-names = "mclk", "hclk"; 93 + clocks = <&cru MCLK_SPDIF4>, <&cru HCLK_SPDIF4>; 94 + dma-names = "tx"; 95 + dmas = <&dmac1 8>; 96 + interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH 0>; 97 + power-domains = <&power RK3588_PD_VO1>; 143 98 #sound-dai-cells = <0>; 144 99 status = "disabled"; 145 100 }; ··· 207 132 resets = <&cru SRST_M_I2S10_8CH_RX>; 208 133 reset-names = "rx-m"; 209 134 #sound-dai-cells = <0>; 135 + status = "disabled"; 136 + }; 137 + 138 + hdmi1: hdmi@fdea0000 { 139 + compatible = "rockchip,rk3588-dw-hdmi-qp"; 140 + reg = <0x0 0xfdea0000 0x0 0x20000>; 141 + clocks = <&cru PCLK_HDMITX1>, 142 + <&cru CLK_HDMITX1_EARC>, 143 + <&cru CLK_HDMITX1_REF>, 144 + <&cru MCLK_I2S6_8CH_TX>, 145 + <&cru CLK_HDMIHDP1>, 146 + <&cru HCLK_VO1>; 147 + clock-names = "pclk", "earc", "ref", "aud", "hdp", "hclk_vo1"; 148 + interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH 0>, 149 + <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH 0>, 150 + <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH 0>, 151 + <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH 0>, 152 + <GIC_SPI 361 IRQ_TYPE_LEVEL_HIGH 0>; 153 + interrupt-names = "avp", "cec", "earc", "main", "hpd"; 154 + phys = <&hdptxphy1>; 155 + pinctrl-names = "default"; 156 + pinctrl-0 = <&hdmim2_tx1_cec &hdmim0_tx1_hpd 157 + &hdmim1_tx1_scl &hdmim1_tx1_sda>; 158 + power-domains = <&power RK3588_PD_VO1>; 159 + resets = <&cru SRST_HDMITX1_REF>, <&cru SRST_HDMIHDP1>; 160 + reset-names = "ref", "hdp"; 161 + rockchip,grf = <&sys_grf>; 162 + rockchip,vo-grf = <&vo1_grf>; 163 + #sound-dai-cells = <0>; 164 + status = "disabled"; 165 + 166 + ports { 167 + #address-cells = <1>; 168 + #size-cells = <0>; 169 + 170 + hdmi1_in: port@0 { 171 + reg = <0>; 172 + }; 173 + 174 + hdmi1_out: port@1 { 175 + reg = <1>; 176 + }; 177 + }; 178 + }; 179 + 180 + hdmi_receiver: hdmi_receiver@fdee0000 { 181 + compatible = "rockchip,rk3588-hdmirx-ctrler", "snps,dw-hdmi-rx"; 182 + reg = <0x0 0xfdee0000 0x0 0x6000>; 183 + interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH 0>, 184 + <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH 0>, 185 + <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH 0>; 186 + interrupt-names = "cec", "hdmi", "dma"; 187 + clocks = <&cru ACLK_HDMIRX>, 188 + <&cru CLK_HDMIRX_AUD>, 189 + <&cru CLK_CR_PARA>, 190 + <&cru PCLK_HDMIRX>, 191 + <&cru CLK_HDMIRX_REF>, 192 + <&cru PCLK_S_HDMIRX>, 193 + <&cru HCLK_VO1>; 194 + clock-names = "aclk", 195 + "audio", 196 + "cr_para", 197 + "pclk", 198 + "ref", 199 + "hclk_s_hdmirx", 200 + "hclk_vo1"; 201 + memory-region = <&hdmi_receiver_cma>; 202 + power-domains = <&power RK3588_PD_VO1>; 203 + resets = <&cru SRST_A_HDMIRX>, <&cru SRST_P_HDMIRX>, 204 + <&cru SRST_HDMIRX_REF>, <&cru SRST_A_HDMIRX_BIU>; 205 + reset-names = "axi", "apb", "ref", "biu"; 206 + rockchip,grf = <&sys_grf>; 207 + rockchip,vo1-grf = <&vo1_grf>; 210 208 status = "disabled"; 211 209 }; 212 210 ··· 547 399 }; 548 400 }; 549 401 402 + hdptxphy1: phy@fed70000 { 403 + compatible = "rockchip,rk3588-hdptx-phy"; 404 + reg = <0x0 0xfed70000 0x0 0x2000>; 405 + clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>, <&cru PCLK_HDPTX1>; 406 + clock-names = "ref", "apb"; 407 + #clock-cells = <0>; 408 + #phy-cells = <0>; 409 + resets = <&cru SRST_HDPTX1>, <&cru SRST_P_HDPTX1>, 410 + <&cru SRST_HDPTX1_INIT>, <&cru SRST_HDPTX1_CMN>, 411 + <&cru SRST_HDPTX1_LANE>, <&cru SRST_HDPTX1_ROPLL>, 412 + <&cru SRST_HDPTX1_LCPLL>; 413 + reset-names = "phy", "apb", "init", "cmn", "lane", "ropll", 414 + "lcpll"; 415 + rockchip,grf = <&hdptxphy1_grf>; 416 + status = "disabled"; 417 + }; 418 + 550 419 usbdp_phy1: phy@fed90000 { 551 420 compatible = "rockchip,rk3588-usbdp-phy"; 552 421 reg = <0x0 0xfed90000 0x0 0x10000>; ··· 614 449 rockchip,phy-grf = <&pcie30_phy_grf>; 615 450 status = "disabled"; 616 451 }; 452 + }; 453 + 454 + &vop { 455 + clocks = <&cru ACLK_VOP>, 456 + <&cru HCLK_VOP>, 457 + <&cru DCLK_VOP0>, 458 + <&cru DCLK_VOP1>, 459 + <&cru DCLK_VOP2>, 460 + <&cru DCLK_VOP3>, 461 + <&cru PCLK_VOP_ROOT>, 462 + <&hdptxphy0>, 463 + <&hdptxphy1>; 464 + clock-names = "aclk", 465 + "hclk", 466 + "dclk_vp0", 467 + "dclk_vp1", 468 + "dclk_vp2", 469 + "dclk_vp3", 470 + "pclk_vop", 471 + "pll_hdmiphy0", 472 + "pll_hdmiphy1"; 617 473 };
+4
arch/arm64/boot/dts/rockchip/rk3588-fet3588-c.dtsi
··· 205 205 }; 206 206 }; 207 207 208 + &pd_gpu { 209 + domain-supply = <&vdd_gpu_s0>; 210 + }; 211 + 208 212 &pinctrl { 209 213 leds { 210 214 led_rgb_b: led-rgb-b {
+4
arch/arm64/boot/dts/rockchip/rk3588-firefly-core-3588j.dtsi
··· 108 108 }; 109 109 }; 110 110 111 + &pd_gpu { 112 + domain-supply = <&vdd_gpu_s0>; 113 + }; 114 + 111 115 &sdhci { 112 116 bus-width = <8>; 113 117 no-sdio;
+443
arch/arm64/boot/dts/rockchip/rk3588-firefly-icore-3588q.dtsi
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 + 3 + #include <dt-bindings/gpio/gpio.h> 4 + #include <dt-bindings/pinctrl/rockchip.h> 5 + 6 + #include "rk3588.dtsi" 7 + 8 + / { 9 + compatible = "firefly,icore-3588q", "rockchip,rk3588"; 10 + 11 + aliases { 12 + mmc0 = &sdhci; 13 + }; 14 + }; 15 + 16 + &cpu_b0 { 17 + cpu-supply = <&vdd_cpu_big0_s0>; 18 + }; 19 + 20 + &cpu_b1 { 21 + cpu-supply = <&vdd_cpu_big0_s0>; 22 + }; 23 + 24 + &cpu_b2 { 25 + cpu-supply = <&vdd_cpu_big1_s0>; 26 + }; 27 + 28 + &cpu_b3 { 29 + cpu-supply = <&vdd_cpu_big1_s0>; 30 + }; 31 + 32 + &cpu_l0 { 33 + cpu-supply = <&vdd_cpu_lit_s0>; 34 + }; 35 + 36 + &cpu_l1 { 37 + cpu-supply = <&vdd_cpu_lit_s0>; 38 + }; 39 + 40 + &cpu_l2 { 41 + cpu-supply = <&vdd_cpu_lit_s0>; 42 + }; 43 + 44 + &cpu_l3 { 45 + cpu-supply = <&vdd_cpu_lit_s0>; 46 + }; 47 + 48 + &i2c0 { 49 + pinctrl-names = "default"; 50 + pinctrl-0 = <&i2c0m2_xfer>; 51 + status = "okay"; 52 + 53 + vdd_cpu_big0_s0: regulator@42 { 54 + compatible = "rockchip,rk8602"; 55 + reg = <0x42>; 56 + fcs,suspend-voltage-selector = <1>; 57 + regulator-always-on; 58 + regulator-boot-on; 59 + regulator-min-microvolt = <550000>; 60 + regulator-max-microvolt = <1050000>; 61 + regulator-name = "vdd_cpu_big0_s0"; 62 + regulator-ramp-delay = <2300>; 63 + vin-supply = <&vcc5v0_sys>; 64 + 65 + regulator-state-mem { 66 + regulator-off-in-suspend; 67 + }; 68 + }; 69 + 70 + vdd_cpu_big1_s0: regulator@43 { 71 + compatible = "rockchip,rk8603", "rockchip,rk8602"; 72 + reg = <0x43>; 73 + fcs,suspend-voltage-selector = <1>; 74 + regulator-always-on; 75 + regulator-boot-on; 76 + regulator-min-microvolt = <550000>; 77 + regulator-max-microvolt = <1050000>; 78 + regulator-name = "vdd_cpu_big1_s0"; 79 + regulator-ramp-delay = <2300>; 80 + vin-supply = <&vcc5v0_sys>; 81 + 82 + regulator-state-mem { 83 + regulator-off-in-suspend; 84 + }; 85 + }; 86 + }; 87 + 88 + &i2c1 { 89 + pinctrl-names = "default"; 90 + pinctrl-0 = <&i2c1m2_xfer>; 91 + status = "okay"; 92 + 93 + vdd_npu_s0: vdd_npu_mem_s0: regulator@42 { 94 + compatible = "rockchip,rk8602"; 95 + reg = <0x42>; 96 + fcs,suspend-voltage-selector = <1>; 97 + regulator-always-on; 98 + regulator-boot-on; 99 + regulator-min-microvolt = <550000>; 100 + regulator-max-microvolt = <950000>; 101 + regulator-name = "vdd_npu_s0"; 102 + regulator-ramp-delay = <2300>; 103 + vin-supply = <&vcc5v0_sys>; 104 + 105 + regulator-state-mem { 106 + regulator-off-in-suspend; 107 + }; 108 + }; 109 + }; 110 + 111 + &sdhci { 112 + bus-width = <8>; 113 + no-sdio; 114 + no-sd; 115 + non-removable; 116 + max-frequency = <150000000>; 117 + mmc-hs400-1_8v; 118 + mmc-hs400-enhanced-strobe; 119 + status = "okay"; 120 + }; 121 + 122 + &spi2 { 123 + assigned-clocks = <&cru CLK_SPI2>; 124 + assigned-clock-rates = <200000000>; 125 + num-cs = <1>; 126 + pinctrl-names = "default"; 127 + pinctrl-0 = <&spi2m2_cs0 &spi2m2_pins>; 128 + status = "okay"; 129 + 130 + pmic@0 { 131 + compatible = "rockchip,rk806"; 132 + reg = <0x0>; 133 + interrupt-parent = <&gpio0>; 134 + interrupts = <7 IRQ_TYPE_LEVEL_LOW>; 135 + gpio-controller; 136 + #gpio-cells = <2>; 137 + pinctrl-names = "default"; 138 + pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>, 139 + <&rk806_dvs2_null>, <&rk806_dvs3_null>; 140 + spi-max-frequency = <1000000>; 141 + system-power-controller; 142 + 143 + vcc1-supply = <&vcc5v0_sys>; 144 + vcc2-supply = <&vcc5v0_sys>; 145 + vcc3-supply = <&vcc5v0_sys>; 146 + vcc4-supply = <&vcc5v0_sys>; 147 + vcc5-supply = <&vcc5v0_sys>; 148 + vcc6-supply = <&vcc5v0_sys>; 149 + vcc7-supply = <&vcc5v0_sys>; 150 + vcc8-supply = <&vcc5v0_sys>; 151 + vcc9-supply = <&vcc5v0_sys>; 152 + vcc10-supply = <&vcc5v0_sys>; 153 + vcc11-supply = <&vcc_2v0_pldo_s3>; 154 + vcc12-supply = <&vcc5v0_sys>; 155 + vcc13-supply = <&vcc_1v1_nldo_s3>; 156 + vcc14-supply = <&vcc_1v1_nldo_s3>; 157 + vcca-supply = <&vcc5v0_sys>; 158 + 159 + rk806_dvs1_null: dvs1-null-pins { 160 + pins = "gpio_pwrctrl1"; 161 + function = "pin_fun0"; 162 + }; 163 + 164 + rk806_dvs2_null: dvs2-null-pins { 165 + pins = "gpio_pwrctrl2"; 166 + function = "pin_fun0"; 167 + }; 168 + 169 + rk806_dvs3_null: dvs3-null-pins { 170 + pins = "gpio_pwrctrl3"; 171 + function = "pin_fun0"; 172 + }; 173 + 174 + regulators { 175 + vdd_gpu_s0: vdd_gpu_mem_s0: dcdc-reg1 { 176 + regulator-boot-on; 177 + regulator-min-microvolt = <550000>; 178 + regulator-max-microvolt = <950000>; 179 + regulator-ramp-delay = <12500>; 180 + regulator-name = "vdd_gpu_s0"; 181 + regulator-enable-ramp-delay = <400>; 182 + 183 + regulator-state-mem { 184 + regulator-off-in-suspend; 185 + }; 186 + }; 187 + 188 + vdd_cpu_lit_s0: vdd_cpu_lit_mem_s0: dcdc-reg2 { 189 + regulator-always-on; 190 + regulator-boot-on; 191 + regulator-min-microvolt = <550000>; 192 + regulator-max-microvolt = <950000>; 193 + regulator-ramp-delay = <12500>; 194 + regulator-name = "vdd_cpu_lit_s0"; 195 + 196 + regulator-state-mem { 197 + regulator-off-in-suspend; 198 + }; 199 + }; 200 + 201 + vdd_log_s0: dcdc-reg3 { 202 + regulator-always-on; 203 + regulator-boot-on; 204 + regulator-min-microvolt = <675000>; 205 + regulator-max-microvolt = <750000>; 206 + regulator-ramp-delay = <12500>; 207 + regulator-name = "vdd_log_s0"; 208 + 209 + regulator-state-mem { 210 + regulator-off-in-suspend; 211 + regulator-suspend-microvolt = <750000>; 212 + }; 213 + }; 214 + 215 + vdd_vdenc_s0: vdd_vdenc_mem_s0: dcdc-reg4 { 216 + regulator-always-on; 217 + regulator-boot-on; 218 + regulator-min-microvolt = <550000>; 219 + regulator-max-microvolt = <950000>; 220 + regulator-ramp-delay = <12500>; 221 + regulator-name = "vdd_vdenc_s0"; 222 + 223 + regulator-state-mem { 224 + regulator-off-in-suspend; 225 + }; 226 + }; 227 + 228 + vdd_ddr_s0: dcdc-reg5 { 229 + regulator-always-on; 230 + regulator-boot-on; 231 + regulator-min-microvolt = <675000>; 232 + regulator-max-microvolt = <950000>; 233 + regulator-ramp-delay = <12500>; 234 + regulator-name = "vdd_ddr_s0"; 235 + 236 + regulator-state-mem { 237 + regulator-off-in-suspend; 238 + regulator-suspend-microvolt = <850000>; 239 + }; 240 + }; 241 + 242 + vdd2_ddr_s3: dcdc-reg6 { 243 + regulator-always-on; 244 + regulator-boot-on; 245 + regulator-name = "vdd2_ddr_s3"; 246 + 247 + regulator-state-mem { 248 + regulator-on-in-suspend; 249 + }; 250 + }; 251 + 252 + vcc_2v0_pldo_s3: dcdc-reg7 { 253 + regulator-always-on; 254 + regulator-boot-on; 255 + regulator-min-microvolt = <2000000>; 256 + regulator-max-microvolt = <2000000>; 257 + regulator-name = "vdd_2v0_pldo_s3"; 258 + 259 + regulator-state-mem { 260 + regulator-on-in-suspend; 261 + regulator-suspend-microvolt = <2000000>; 262 + }; 263 + }; 264 + 265 + vcc_3v3_s3: dcdc-reg8 { 266 + regulator-always-on; 267 + regulator-boot-on; 268 + regulator-min-microvolt = <3300000>; 269 + regulator-max-microvolt = <3300000>; 270 + regulator-name = "vcc_3v3_s3"; 271 + 272 + regulator-state-mem { 273 + regulator-on-in-suspend; 274 + regulator-suspend-microvolt = <3300000>; 275 + }; 276 + }; 277 + 278 + vddq_ddr_s0: dcdc-reg9 { 279 + regulator-always-on; 280 + regulator-boot-on; 281 + regulator-name = "vddq_ddr_s0"; 282 + 283 + regulator-state-mem { 284 + regulator-off-in-suspend; 285 + }; 286 + }; 287 + 288 + vcc_1v8_s3: dcdc-reg10 { 289 + regulator-always-on; 290 + regulator-boot-on; 291 + regulator-min-microvolt = <1800000>; 292 + regulator-max-microvolt = <1800000>; 293 + regulator-name = "vcc_1v8_s3"; 294 + 295 + regulator-state-mem { 296 + regulator-on-in-suspend; 297 + regulator-suspend-microvolt = <1800000>; 298 + }; 299 + }; 300 + 301 + avcc_1v8_s0: pldo-reg1 { 302 + regulator-always-on; 303 + regulator-boot-on; 304 + regulator-min-microvolt = <1800000>; 305 + regulator-max-microvolt = <1800000>; 306 + regulator-name = "avcc_1v8_s0"; 307 + 308 + regulator-state-mem { 309 + regulator-off-in-suspend; 310 + }; 311 + }; 312 + 313 + vcc_1v8_s0: pldo-reg2 { 314 + regulator-always-on; 315 + regulator-boot-on; 316 + regulator-min-microvolt = <1800000>; 317 + regulator-max-microvolt = <1800000>; 318 + regulator-name = "vcc_1v8_s0"; 319 + 320 + regulator-state-mem { 321 + regulator-off-in-suspend; 322 + regulator-suspend-microvolt = <1800000>; 323 + }; 324 + }; 325 + 326 + avdd_1v2_s0: pldo-reg3 { 327 + regulator-always-on; 328 + regulator-boot-on; 329 + regulator-min-microvolt = <1200000>; 330 + regulator-max-microvolt = <1200000>; 331 + regulator-name = "avdd_1v2_s0"; 332 + 333 + regulator-state-mem { 334 + regulator-off-in-suspend; 335 + }; 336 + }; 337 + 338 + vcc_3v3_s0: pldo-reg4 { 339 + regulator-always-on; 340 + regulator-boot-on; 341 + regulator-min-microvolt = <3300000>; 342 + regulator-max-microvolt = <3300000>; 343 + regulator-name = "vcc_3v3_s0"; 344 + 345 + regulator-state-mem { 346 + regulator-on-in-suspend; 347 + }; 348 + }; 349 + 350 + vccio_sd_s0: pldo-reg5 { 351 + regulator-always-on; 352 + regulator-boot-on; 353 + regulator-min-microvolt = <1800000>; 354 + regulator-max-microvolt = <3300000>; 355 + regulator-name = "vccio_sd_s0"; 356 + 357 + regulator-state-mem { 358 + regulator-off-in-suspend; 359 + }; 360 + }; 361 + 362 + pldo6_s3: pldo-reg6 { 363 + regulator-always-on; 364 + regulator-boot-on; 365 + regulator-min-microvolt = <1800000>; 366 + regulator-max-microvolt = <1800000>; 367 + regulator-name = "pldo6_s3"; 368 + 369 + regulator-state-mem { 370 + regulator-on-in-suspend; 371 + regulator-suspend-microvolt = <1800000>; 372 + }; 373 + }; 374 + 375 + vdd_0v75_s3: nldo-reg1 { 376 + regulator-always-on; 377 + regulator-boot-on; 378 + regulator-min-microvolt = <750000>; 379 + regulator-max-microvolt = <750000>; 380 + regulator-name = "vdd_0v75_s3"; 381 + 382 + regulator-state-mem { 383 + regulator-on-in-suspend; 384 + regulator-suspend-microvolt = <750000>; 385 + }; 386 + }; 387 + 388 + vdd_ddr_pll_s0: nldo-reg2 { 389 + regulator-always-on; 390 + regulator-boot-on; 391 + regulator-min-microvolt = <850000>; 392 + regulator-max-microvolt = <850000>; 393 + regulator-name = "vdd_ddr_pll_s0"; 394 + 395 + regulator-state-mem { 396 + regulator-off-in-suspend; 397 + regulator-suspend-microvolt = <850000>; 398 + }; 399 + }; 400 + 401 + avdd_0v75_s0: nldo-reg3 { 402 + regulator-always-on; 403 + regulator-boot-on; 404 + regulator-min-microvolt = <750000>; 405 + regulator-max-microvolt = <750000>; 406 + regulator-name = "avdd_0v75_s0"; 407 + 408 + regulator-state-mem { 409 + regulator-off-in-suspend; 410 + }; 411 + }; 412 + 413 + vdd_0v85_s0: nldo-reg4 { 414 + regulator-always-on; 415 + regulator-boot-on; 416 + regulator-min-microvolt = <850000>; 417 + regulator-max-microvolt = <850000>; 418 + regulator-name = "vdd_0v85_s0"; 419 + 420 + regulator-state-mem { 421 + regulator-off-in-suspend; 422 + }; 423 + }; 424 + 425 + vdd_0v75_s0: nldo-reg5 { 426 + regulator-always-on; 427 + regulator-boot-on; 428 + regulator-min-microvolt = <750000>; 429 + regulator-max-microvolt = <750000>; 430 + regulator-name = "vdd_0v75_s0"; 431 + 432 + regulator-state-mem { 433 + regulator-off-in-suspend; 434 + }; 435 + }; 436 + }; 437 + }; 438 + }; 439 + 440 + &uart2 { 441 + pinctrl-0 = <&uart2m0_xfer>; 442 + status = "okay"; 443 + };
+1 -1
arch/arm64/boot/dts/rockchip/rk3588-firefly-itx-3588j.dts
··· 337 337 }; 338 338 }; 339 339 340 - &hdptxphy_hdmi0 { 340 + &hdptxphy0 { 341 341 status = "okay"; 342 342 }; 343 343
+1 -1
arch/arm64/boot/dts/rockchip/rk3588-friendlyelec-cm3588-nas.dts
··· 335 335 }; 336 336 }; 337 337 338 - &hdptxphy_hdmi0 { 338 + &hdptxphy0 { 339 339 status = "okay"; 340 340 }; 341 341
+4
arch/arm64/boot/dts/rockchip/rk3588-friendlyelec-cm3588.dtsi
··· 256 256 status = "okay"; 257 257 }; 258 258 259 + &pd_gpu { 260 + domain-supply = <&vdd_gpu_s0>; 261 + }; 262 + 259 263 &pinctrl { 260 264 gpio-leds { 261 265 led_sys_pin: led-sys-pin {
+29 -1
arch/arm64/boot/dts/rockchip/rk3588-h96-max-v58.dts
··· 140 140 regulator-min-microvolt = <5000000>; 141 141 regulator-max-microvolt = <5000000>; 142 142 }; 143 + 144 + spdif_dit: spdif-dit { 145 + compatible = "linux,spdif-dit"; 146 + #sound-dai-cells = <0>; 147 + }; 148 + 149 + spdif_sound: spdif-sound { 150 + compatible = "simple-audio-card"; 151 + simple-audio-card,name = "SPDIF"; 152 + 153 + simple-audio-card,cpu { 154 + sound-dai = <&spdif_tx0>; 155 + }; 156 + 157 + simple-audio-card,codec { 158 + sound-dai = <&spdif_dit>; 159 + }; 160 + }; 143 161 }; 144 162 145 163 &combphy0_ps { ··· 225 207 }; 226 208 }; 227 209 228 - &hdptxphy_hdmi0 { 210 + &hdptxphy0 { 229 211 status = "okay"; 230 212 }; 231 213 ··· 334 316 }; 335 317 }; 336 318 319 + &pd_gpu { 320 + domain-supply = <&vdd_gpu_s0>; 321 + }; 322 + 337 323 &pinctrl { 338 324 hym8563 { 339 325 hym8563_int: hym8563-int { ··· 419 397 non-removable; 420 398 mmc-hs400-1_8v; 421 399 mmc-hs400-enhanced-strobe; 400 + status = "okay"; 401 + }; 402 + 403 + &spdif_tx0 { 404 + pinctrl-names = "default"; 405 + pinctrl-0 = <&spdif0m1_tx>; 422 406 status = "okay"; 423 407 }; 424 408
+171
arch/arm64/boot/dts/rockchip/rk3588-jaguar-pre-ict-tester.dtso
··· 1 + // SPDX-License-Identifier: (GPL-2.0-or-later OR MIT) 2 + /* 3 + * Copyright (c) 2024 Cherry Embedded Solutions GmbH 4 + * 5 + * Device Tree Overlay for the Pre-ICT tester adapter for the Mezzanine 6 + * connector on RK3588 Jaguar. 7 + * 8 + * This adapter has a PCIe Gen2 x1 M.2 M-Key connector and two proprietary 9 + * camera connectors (each their own I2C bus, clock, reset and PWM lines as well 10 + * as 2-lane CSI). 11 + * 12 + * This adapter routes some GPIOs to power rails and loops together some other 13 + * GPIOs. 14 + * 15 + * This adapter is used during manufacturing for validating proper soldering of 16 + * the mezzanine connector. 17 + */ 18 + 19 + /dts-v1/; 20 + /plugin/; 21 + 22 + #include <dt-bindings/gpio/gpio.h> 23 + #include <dt-bindings/pinctrl/rockchip.h> 24 + 25 + &{/} { 26 + pre_ict_tester_vcc_1v2: regulator-pre-ict-tester-vcc-1v2 { 27 + compatible = "regulator-fixed"; 28 + regulator-name = "pre_ict_tester_vcc_1v2"; 29 + regulator-always-on; 30 + regulator-boot-on; 31 + regulator-min-microvolt = <1200000>; 32 + regulator-max-microvolt = <1200000>; 33 + vin-supply = <&vcc_3v3_s3>; 34 + }; 35 + 36 + pre_ict_tester_vcc_2v8: regulator-pre-ict-tester-vcc-2v8 { 37 + compatible = "regulator-fixed"; 38 + regulator-name = "pre_ict_tester_vcc_2v8"; 39 + regulator-always-on; 40 + regulator-boot-on; 41 + regulator-min-microvolt = <2800000>; 42 + regulator-max-microvolt = <2800000>; 43 + vin-supply = <&vcc_3v3_s3>; 44 + }; 45 + }; 46 + 47 + &combphy0_ps { 48 + status = "okay"; 49 + }; 50 + 51 + &gpio3 { 52 + pinctrl-0 = <&pre_ict_pwr2gpio>; 53 + pinctrl-names = "default"; 54 + }; 55 + 56 + &pcie2x1l2 { 57 + pinctrl-names = "default"; 58 + pinctrl-0 = <&pcie2x1l2_perstn_m0>; 59 + reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>; /* PCIE20X1_2_PERSTN_M0 */ 60 + vpcie3v3-supply = <&vcc_3v3_s3>; 61 + status = "okay"; 62 + }; 63 + 64 + &pinctrl { 65 + pcie2x1l2 { 66 + pcie2x1l2_perstn_m0: pcie2x1l2-perstn-m0 { 67 + rockchip,pins = <3 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>; 68 + }; 69 + }; 70 + 71 + pre-ict-tester { 72 + pre_ict_pwr2gpio: pre-ict-pwr2gpio-pins { 73 + rockchip,pins = 74 + /* 75 + * GPIO3_A3 requires two power rails to be properly 76 + * routed to the mezzanine connector to report a proper 77 + * value: VCC_1V8_S0_1 and VCC_IN_2. It may report an 78 + * incorrect value if VCC_1V8_S0_1 isn't properly routed, 79 + * but GPIO3_C6 would catch this HW soldering issue. 80 + * If VCC_IN_2 is properly routed, GPIO3_A3 should be 81 + * LOW. The signal shall not read HIGH in the event 82 + * GPIO3_A3 isn't properly routed due to soldering 83 + * issue. Therefore, let's enforce a pull-up (which is 84 + * the SoC default for this pin). 85 + */ 86 + <3 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>, 87 + /* 88 + * GPIO3_A4 is directly routed to VCC_1V8_S0_2 power 89 + * rail. It should be HIGH if all is properly soldered. 90 + * To guarantee that, a pull-down is enforced (which is 91 + * the SoC default for this pin) so that LOW is read if 92 + * the loop doesn't exist on HW (soldering issue on 93 + * either signals). 94 + */ 95 + <3 RK_PA4 RK_FUNC_GPIO &pcfg_pull_down>, 96 + /* 97 + * GPIO3_B2 requires two power rails to be properly 98 + * routed to the mezzanine connector to report a proper 99 + * value: VCC_1V8_S0_1 and VCC_IN_1. It may report an 100 + * incorrect value if VCC_1V8_S0_1 isn't properly routed, 101 + * but GPIO3_C6 would catch this HW soldering issue. 102 + * If VCC_IN_1 is properly routed, GPIO3_B2 should be 103 + * LOW. This is an issue if GPIO3_B2 isn't properly 104 + * routed due to soldering issue, because GPIO3_B2 105 + * default bias is pull-down therefore being LOW. So 106 + * the worst case scenario and the pass scenario expect 107 + * the same value. Make GPIO3_B2 a pull-up so that a 108 + * soldering issue on GPIO3_B2 reports HIGH but proper 109 + * soldering reports LOW. 110 + */ 111 + <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>, 112 + /* 113 + * GPIO3_C6 is directly routed to VCC_1V8_S0_1 power 114 + * rail. It should be HIGH if all is properly soldered. 115 + * This is an issue if GPIO3_C6 or VCC_1V8_S0_1 isn't 116 + * properly routed due to soldering issue, because 117 + * GPIO3_C6 default bias is pull-up therefore being HIGH 118 + * in all cases: 119 + * - GPIO3_C6 is floating (so HIGH) if GPIO3_C6 is not 120 + * routed properly, 121 + * - GPIO3_C6 is floating (so HIGH) if VCC_1V8_S0_1 is 122 + * not routed properly, 123 + * - GPIO3_C6 is HIGH if everything is proper, 124 + * Make GPIO3_C6 a pull-down so that a soldering issue 125 + * on GPIO3_C6 or VCC_1V8_S0_1 reports LOW but proper 126 + * soldering reports HIGH. 127 + */ 128 + <3 RK_PC6 RK_FUNC_GPIO &pcfg_pull_down>, 129 + /* 130 + * GPIO3_D2 is routed to VCC_5V0_1 power rail through a 131 + * voltage divider on the adapter. 132 + * It should be HIGH if all is properly soldered. 133 + * To guarantee that, a pull-down is enforced (which is 134 + * the SoC default for this pin) so that LOW is read if 135 + * the loop doesn't exist on HW (soldering issue on 136 + * either signals). 137 + */ 138 + <3 RK_PD2 RK_FUNC_GPIO &pcfg_pull_down>, 139 + /* 140 + * GPIO3_D3 is routed to VCC_5V0_2 power rail through a 141 + * voltage divider on the adapter. 142 + * It should be HIGH if all is properly soldered. 143 + * To guarantee that, a pull-down is enforced (which is 144 + * the SoC default for this pin) so that LOW is read if 145 + * the loop doesn't exist on HW (soldering issue on 146 + * either signals). 147 + */ 148 + <3 RK_PD3 RK_FUNC_GPIO &pcfg_pull_down>, 149 + /* 150 + * GPIO3_D4 is routed to VCC_3V3_S3_1 power rail through 151 + * a voltage divider on the adapter. 152 + * It should be HIGH if all is properly soldered. 153 + * To guarantee that, a pull-down is enforced (which is 154 + * the SoC default for this pin) so that LOW is read if 155 + * the loop doesn't exist on HW (soldering issue on 156 + * either signals). 157 + */ 158 + <3 RK_PD4 RK_FUNC_GPIO &pcfg_pull_down>, 159 + /* 160 + * GPIO3_D5 is routed to VCC_3V3_S3_2 power rail through 161 + * a voltage divider on the adapter. 162 + * It should be HIGH if all is properly soldered. 163 + * To guarantee that, a pull-down is enforced (which is 164 + * the SoC default for this pin) so that LOW is read if 165 + * the loop doesn't exist on HW (soldering issue on 166 + * either signals). 167 + */ 168 + <3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_down>; 169 + }; 170 + }; 171 + };
+223 -1
arch/arm64/boot/dts/rockchip/rk3588-jaguar.dts
··· 303 303 }; 304 304 }; 305 305 306 - &hdptxphy_hdmi0 { 306 + &hdptxphy0 { 307 307 status = "okay"; 308 308 }; 309 309 ··· 328 328 rtc_twi: rtc@6f { 329 329 compatible = "isil,isl1208"; 330 330 reg = <0x6f>; 331 + }; 332 + }; 333 + }; 334 + }; 335 + 336 + typec-portc@22 { 337 + compatible = "fcs,fusb302"; 338 + reg = <0x22>; 339 + interrupt-parent = <&gpio4>; 340 + interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>; 341 + pinctrl-names = "default"; 342 + pinctrl-0 = <&cc_int1>; 343 + vbus-supply = <&vcc_5v0_usb_c1>; 344 + 345 + connector { 346 + compatible = "usb-c-connector"; 347 + data-role = "dual"; 348 + label = "USBC-1 P11"; 349 + power-role = "source"; 350 + self-powered; 351 + source-pdos = 352 + <PDO_FIXED(5000, 1500, PDO_FIXED_DATA_SWAP | PDO_FIXED_USB_COMM)>; 353 + vbus-supply = <&vcc_5v0_usb_c1>; 354 + 355 + ports { 356 + #address-cells = <1>; 357 + #size-cells = <0>; 358 + 359 + port@0 { 360 + reg = <0>; 361 + 362 + usbc0_hs: endpoint { 363 + remote-endpoint = <&usb_host0_xhci_drd_sw>; 364 + }; 365 + }; 366 + 367 + port@1 { 368 + reg = <1>; 369 + 370 + usbc0_ss: endpoint { 371 + remote-endpoint = <&usbdp_phy0_typec_ss>; 372 + }; 373 + }; 374 + 375 + port@2 { 376 + reg = <2>; 377 + 378 + usbc0_sbu: endpoint { 379 + remote-endpoint = <&usbdp_phy0_typec_sbu>; 380 + }; 331 381 }; 332 382 }; 333 383 }; ··· 444 394 pinctrl-0 = <&i2c8m2_xfer>; 445 395 status = "okay"; 446 396 397 + typec-portc@22 { 398 + compatible = "fcs,fusb302"; 399 + reg = <0x22>; 400 + interrupt-parent = <&gpio4>; 401 + interrupts = <RK_PA4 IRQ_TYPE_LEVEL_LOW>; 402 + pinctrl-names = "default"; 403 + pinctrl-0 = <&cc_int2>; 404 + vbus-supply = <&vcc_5v0_usb_c2>; 405 + 406 + connector { 407 + compatible = "usb-c-connector"; 408 + data-role = "dual"; 409 + label = "USBC-2 P12"; 410 + power-role = "source"; 411 + self-powered; 412 + source-pdos = 413 + <PDO_FIXED(5000, 1500, PDO_FIXED_DATA_SWAP | PDO_FIXED_USB_COMM)>; 414 + vbus-supply = <&vcc_5v0_usb_c2>; 415 + 416 + ports { 417 + #address-cells = <1>; 418 + #size-cells = <0>; 419 + 420 + port@0 { 421 + reg = <0>; 422 + 423 + usbc1_hs: endpoint { 424 + remote-endpoint = <&usb_host1_xhci_drd_sw>; 425 + }; 426 + }; 427 + 428 + port@1 { 429 + reg = <1>; 430 + 431 + usbc1_ss: endpoint { 432 + remote-endpoint = <&usbdp_phy1_typec_ss>; 433 + }; 434 + }; 435 + 436 + port@2 { 437 + reg = <2>; 438 + 439 + usbc1_sbu: endpoint { 440 + remote-endpoint = <&usbdp_phy1_typec_sbu>; 441 + }; 442 + }; 443 + }; 444 + }; 445 + }; 446 + 447 447 vdd_cpu_big0_s0: regulator@42 { 448 448 compatible = "rockchip,rk8602"; 449 449 reg = <0x42>; ··· 551 451 status = "okay"; 552 452 }; 553 453 454 + &pd_gpu { 455 + domain-supply = <&vdd_gpu_s0>; 456 + }; 457 + 554 458 &pinctrl { 555 459 emmc { 556 460 emmc_reset: emmc-reset { ··· 585 481 586 482 pcie30x4_waken_m0: pcie30x4-waken-m0 { 587 483 rockchip,pins = <0 RK_PC7 12 &pcfg_pull_none>; 484 + }; 485 + }; 486 + 487 + usb3 { 488 + cc_int1: cc-int1 { 489 + rockchip,pins = <4 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>; 490 + }; 491 + 492 + cc_int2: cc-int2 { 493 + rockchip,pins = <4 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; 494 + }; 495 + 496 + typec0_sbu_dc_pins: typec0-sbu-dc-pins { 497 + rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_down>, 498 + <1 RK_PC3 RK_FUNC_GPIO &pcfg_pull_down>; 499 + }; 500 + 501 + typec1_sbu_dc_pins: typec1-sbu-dc-pins { 502 + rockchip,pins = <0 RK_PD4 RK_FUNC_GPIO &pcfg_pull_down>, 503 + <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_down>; 588 504 }; 589 505 }; 590 506 }; ··· 975 851 status = "okay"; 976 852 }; 977 853 854 + /* USB-C P11 connector */ 855 + &u2phy0 { 856 + status = "okay"; 857 + }; 858 + 859 + &u2phy0_otg { 860 + status = "okay"; 861 + }; 862 + 863 + /* USB-C P12 connector */ 864 + &u2phy1 { 865 + status = "okay"; 866 + }; 867 + 868 + &u2phy1_otg { 869 + status = "okay"; 870 + }; 871 + 978 872 &u2phy2 { 979 873 status = "okay"; 980 874 }; ··· 1035 893 status = "okay"; 1036 894 }; 1037 895 896 + /* Type-C on P11 */ 897 + &usbdp_phy0 { 898 + orientation-switch; 899 + pinctrl-names = "default"; 900 + pinctrl-0 = <&typec0_sbu_dc_pins>; 901 + sbu1-dc-gpios = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>; /* Q7_USB_C0_SBU1_DC */ 902 + sbu2-dc-gpios = <&gpio1 RK_PC3 GPIO_ACTIVE_HIGH>; /* Q7_USB_C0_SBU2_DC */ 903 + status = "okay"; 904 + 905 + port { 906 + #address-cells = <1>; 907 + #size-cells = <0>; 908 + 909 + usbdp_phy0_typec_ss: endpoint@0 { 910 + reg = <0>; 911 + remote-endpoint = <&usbc0_ss>; 912 + }; 913 + 914 + usbdp_phy0_typec_sbu: endpoint@1 { 915 + reg = <1>; 916 + remote-endpoint = <&usbc0_sbu>; 917 + }; 918 + }; 919 + }; 920 + 921 + /* Type-C on P12 */ 922 + &usbdp_phy1 { 923 + orientation-switch; 924 + pinctrl-names = "default"; 925 + pinctrl-0 = <&typec1_sbu_dc_pins>; 926 + sbu1-dc-gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>; /* Q7_USB_C1_SBU1_DC */ 927 + sbu2-dc-gpios = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>; /* Q7_USB_C1_SBU2_DC */ 928 + status = "okay"; 929 + 930 + port { 931 + #address-cells = <1>; 932 + #size-cells = <0>; 933 + 934 + usbdp_phy1_typec_ss: endpoint@0 { 935 + reg = <0>; 936 + remote-endpoint = <&usbc1_ss>; 937 + }; 938 + 939 + usbdp_phy1_typec_sbu: endpoint@1 { 940 + reg = <1>; 941 + remote-endpoint = <&usbc1_sbu>; 942 + }; 943 + }; 944 + }; 945 + 1038 946 /* host0 on P10 USB-A */ 1039 947 &usb_host0_ehci { 1040 948 status = "okay"; ··· 1093 901 /* host0 on P10 USB-A */ 1094 902 &usb_host0_ohci { 1095 903 status = "okay"; 904 + }; 905 + 906 + /* host0 on P11 USB-C */ 907 + &usb_host0_xhci { 908 + usb-role-switch; 909 + status = "okay"; 910 + 911 + port { 912 + #address-cells = <1>; 913 + #size-cells = <0>; 914 + 915 + usb_host0_xhci_drd_sw: endpoint { 916 + remote-endpoint = <&usbc0_hs>; 917 + }; 918 + }; 919 + }; 920 + 921 + /* host1 on P12 USB-C */ 922 + &usb_host1_xhci { 923 + usb-role-switch; 924 + status = "okay"; 925 + 926 + port { 927 + #address-cells = <1>; 928 + #size-cells = <0>; 929 + 930 + usb_host1_xhci_drd_sw: endpoint { 931 + remote-endpoint = <&usbc1_hs>; 932 + }; 933 + }; 1096 934 }; 1097 935 1098 936 /* host1 on M.2 E-key */
+336
arch/arm64/boot/dts/rockchip/rk3588-mnt-reform2.dts
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 + /* 3 + * Copyright (c) 2021 Rockchip Electronics Co., Ltd. 4 + * Copyright (c) 2024 MNT Research GmbH 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include <dt-bindings/gpio/gpio.h> 10 + #include <dt-bindings/input/input.h> 11 + #include <dt-bindings/pinctrl/rockchip.h> 12 + #include <dt-bindings/soc/rockchip,vop2.h> 13 + #include <dt-bindings/usb/pd.h> 14 + 15 + #include "rk3588-firefly-icore-3588q.dtsi" 16 + 17 + / { 18 + model = "MNT Reform 2 with RCORE RK3588 Module"; 19 + compatible = "mntre,reform2-rcore", "firefly,icore-3588q", "rockchip,rk3588"; 20 + chassis-type = "laptop"; 21 + 22 + aliases { 23 + ethernet0 = &gmac0; 24 + mmc1 = &sdmmc; 25 + }; 26 + 27 + chosen { 28 + stdout-path = "serial2:1500000n8"; 29 + }; 30 + 31 + backlight: backlight { 32 + compatible = "pwm-backlight"; 33 + brightness-levels = <0 8 16 32 64 128 160 200 255>; 34 + default-brightness-level = <128>; 35 + enable-gpios = <&gpio2 RK_PB5 GPIO_ACTIVE_HIGH>; 36 + pwms = <&pwm8 0 10000 0>; 37 + }; 38 + 39 + gmac0_clkin: external-gmac0-clock { 40 + compatible = "fixed-clock"; 41 + #clock-cells = <0>; 42 + clock-frequency = <125000000>; 43 + clock-output-names = "gmac0_clkin"; 44 + }; 45 + 46 + pcie30_avdd1v8: regulator-pcie30-avdd1v8 { 47 + compatible = "regulator-fixed"; 48 + regulator-boot-on; 49 + regulator-always-on; 50 + regulator-min-microvolt = <1800000>; 51 + regulator-max-microvolt = <1800000>; 52 + regulator-name = "pcie30_avdd1v8"; 53 + vin-supply = <&avcc_1v8_s0>; 54 + }; 55 + 56 + pcie30_avdd0v75: regulator-pcie30-avdd0v75 { 57 + compatible = "regulator-fixed"; 58 + regulator-always-on; 59 + regulator-boot-on; 60 + regulator-min-microvolt = <750000>; 61 + regulator-max-microvolt = <750000>; 62 + regulator-name = "pcie30_avdd0v75"; 63 + vin-supply = <&avdd_0v75_s0>; 64 + }; 65 + 66 + vcc12v_dcin: regulator-vcc12v-dcin { 67 + compatible = "regulator-fixed"; 68 + regulator-always-on; 69 + regulator-boot-on; 70 + regulator-min-microvolt = <12000000>; 71 + regulator-max-microvolt = <12000000>; 72 + regulator-name = "vcc12v_dcin"; 73 + }; 74 + 75 + vcc_1v1_nldo_s3: regulator-vcc-1v1-nldo-s3 { 76 + compatible = "regulator-fixed"; 77 + regulator-name = "vcc_1v1_nldo_s3"; 78 + regulator-always-on; 79 + regulator-boot-on; 80 + regulator-min-microvolt = <1100000>; 81 + regulator-max-microvolt = <1100000>; 82 + vin-supply = <&vcc5v0_sys>; 83 + }; 84 + 85 + vcc3v3_pcie30: regulator-vcc3v3-pcie30 { 86 + compatible = "regulator-fixed"; 87 + regulator-always-on; 88 + regulator-boot-on; 89 + regulator-min-microvolt = <3300000>; 90 + regulator-max-microvolt = <3300000>; 91 + regulator-name = "vcc3v3_pcie30"; 92 + vin-supply = <&vcc12v_dcin>; 93 + }; 94 + 95 + vcc5v0_host: regulator-vcc5v0-host { 96 + compatible = "regulator-fixed"; 97 + regulator-always-on; 98 + regulator-boot-on; 99 + regulator-min-microvolt = <5000000>; 100 + regulator-max-microvolt = <5000000>; 101 + regulator-name = "vcc5v0_host"; 102 + }; 103 + 104 + vcc5v0_sys: regulator-vcc5v0-sys { 105 + compatible = "regulator-fixed"; 106 + regulator-always-on; 107 + regulator-boot-on; 108 + regulator-min-microvolt = <5000000>; 109 + regulator-max-microvolt = <5000000>; 110 + regulator-name = "vcc5v0_sys"; 111 + vin-supply = <&vcc12v_dcin>; 112 + }; 113 + 114 + vcc5v0_usb: regulator-vcc5v0-usb { 115 + compatible = "regulator-fixed"; 116 + regulator-always-on; 117 + regulator-boot-on; 118 + regulator-min-microvolt = <5000000>; 119 + regulator-max-microvolt = <5000000>; 120 + regulator-name = "vcc5v0_usb"; 121 + vin-supply = <&vcc12v_dcin>; 122 + }; 123 + }; 124 + 125 + &combphy0_ps { 126 + status = "okay"; 127 + }; 128 + 129 + &gmac0 { 130 + clock_in_out = "output"; 131 + phy-handle = <&rgmii_phy>; 132 + phy-mode = "rgmii-id"; 133 + pinctrl-names = "default"; 134 + pinctrl-0 = <&gmac0_miim 135 + &gmac0_tx_bus2 136 + &gmac0_rx_bus2 137 + &gmac0_rgmii_clk 138 + &gmac0_rgmii_bus 139 + &gmac0_clkinout 140 + &eth_phy_reset>; 141 + status = "okay"; 142 + }; 143 + 144 + &gpu { 145 + mali-supply = <&vdd_gpu_s0>; 146 + sram-supply = <&vdd_gpu_mem_s0>; 147 + status = "okay"; 148 + }; 149 + 150 + &hdmi0 { 151 + status = "okay"; 152 + }; 153 + 154 + &hdmi0_in { 155 + hdmi0_in_vp2: endpoint { 156 + remote-endpoint = <&vp2_out_hdmi0>; 157 + }; 158 + }; 159 + 160 + &hdptxphy0 { 161 + status = "okay"; 162 + }; 163 + 164 + &i2c6 { 165 + pinctrl-names = "default"; 166 + pinctrl-0 = <&i2c6m0_xfer>; 167 + status = "okay"; 168 + 169 + rtc@68 { 170 + compatible = "nxp,pcf8523"; 171 + reg = <0x68>; 172 + }; 173 + }; 174 + 175 + &mdio0 { 176 + rgmii_phy: ethernet-phy@0 { 177 + compatible = "ethernet-phy-ieee802.3-c22"; 178 + reg = <0x0>; 179 + }; 180 + }; 181 + 182 + &pcie2x1l2 { 183 + pinctrl-0 = <&pcie2_0_rst>; 184 + reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>; 185 + status = "okay"; 186 + }; 187 + 188 + &pcie30phy { 189 + status = "okay"; 190 + }; 191 + 192 + &pcie3x4 { 193 + num-lanes = <1>; 194 + pinctrl-names = "default"; 195 + pinctrl-0 = <&pcie3_reset>; 196 + reset-gpios = <&gpio1 RK_PB4 GPIO_ACTIVE_HIGH>; 197 + vpcie3v3-supply = <&vcc3v3_pcie30>; 198 + status = "okay"; 199 + }; 200 + 201 + &pinctrl { 202 + dp { 203 + dp1_hpd: dp1-hpd { 204 + rockchip,pins = <1 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>; 205 + }; 206 + }; 207 + 208 + pcie2 { 209 + pcie2_0_rst: pcie2-0-rst { 210 + rockchip,pins = <3 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>; 211 + }; 212 + }; 213 + 214 + pcie3 { 215 + pcie3_reset: pcie3-reset { 216 + rockchip,pins = <1 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>; 217 + }; 218 + }; 219 + 220 + eth_phy { 221 + eth_phy_reset: eth-phy-reset { 222 + rockchip,pins = <3 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>; 223 + }; 224 + }; 225 + }; 226 + 227 + &pwm8 { 228 + pinctrl-0 = <&pwm8m2_pins>; 229 + status = "okay"; 230 + }; 231 + 232 + &saradc { 233 + vref-supply = <&avcc_1v8_s0>; 234 + status = "okay"; 235 + }; 236 + 237 + &sdmmc { 238 + bus-width = <4>; 239 + cap-sd-highspeed; 240 + cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>; 241 + disable-wp; 242 + max-frequency = <40000000>; 243 + no-1-8-v; 244 + no-mmc; 245 + no-sdio; 246 + vmmc-supply = <&vcc3v3_pcie30>; 247 + vqmmc-supply = <&vcc3v3_pcie30>; 248 + status = "okay"; 249 + }; 250 + 251 + &tsadc { 252 + status = "okay"; 253 + }; 254 + 255 + &u2phy0 { 256 + status = "okay"; 257 + }; 258 + 259 + &u2phy0_otg { 260 + status = "okay"; 261 + }; 262 + 263 + &u2phy1 { 264 + status = "okay"; 265 + }; 266 + 267 + &u2phy1_otg { 268 + status = "okay"; 269 + }; 270 + 271 + &u2phy2 { 272 + status = "okay"; 273 + }; 274 + 275 + &u2phy2_host { 276 + phy-supply = <&vcc5v0_host>; 277 + status = "okay"; 278 + }; 279 + 280 + &u2phy3 { 281 + status = "okay"; 282 + }; 283 + 284 + &u2phy3_host { 285 + phy-supply = <&vcc5v0_host>; 286 + status = "okay"; 287 + }; 288 + 289 + &usbdp_phy0 { 290 + status = "okay"; 291 + }; 292 + 293 + &usbdp_phy1 { 294 + status = "okay"; 295 + }; 296 + 297 + &usb_host0_ehci { 298 + status = "okay"; 299 + }; 300 + 301 + &usb_host0_ohci { 302 + status = "okay"; 303 + }; 304 + 305 + &usb_host0_xhci { 306 + dr_mode = "host"; 307 + status = "okay"; 308 + }; 309 + 310 + &usb_host1_ehci { 311 + status = "okay"; 312 + }; 313 + 314 + &usb_host1_ohci { 315 + status = "okay"; 316 + }; 317 + 318 + &usb_host1_xhci { 319 + dr_mode = "host"; 320 + status = "okay"; 321 + }; 322 + 323 + &vop { 324 + status = "okay"; 325 + }; 326 + 327 + &vop_mmu { 328 + status = "okay"; 329 + }; 330 + 331 + &vp2 { 332 + vp2_out_hdmi0: endpoint@ROCKCHIP_VOP2_EP_HDMI0 { 333 + reg = <ROCKCHIP_VOP2_EP_HDMI0>; 334 + remote-endpoint = <&hdmi0_in_vp2>; 335 + }; 336 + };
+5 -1
arch/arm64/boot/dts/rockchip/rk3588-nanopc-t6.dtsi
··· 360 360 }; 361 361 }; 362 362 363 - &hdptxphy_hdmi0 { 363 + &hdptxphy0 { 364 364 status = "okay"; 365 365 }; 366 366 ··· 563 563 reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>; 564 564 vpcie3v3-supply = <&vcc3v3_pcie30>; 565 565 status = "okay"; 566 + }; 567 + 568 + &pd_gpu { 569 + domain-supply = <&vdd_gpu_s0>; 566 570 }; 567 571 568 572 &pinctrl {
+4
arch/arm64/boot/dts/rockchip/rk3588-ok3588-c.dts
··· 312 312 status = "okay"; 313 313 }; 314 314 315 + &pd_gpu { 316 + domain-supply = <&vdd_gpu_s0>; 317 + }; 318 + 315 319 &pinctrl { 316 320 pcie2 { 317 321 pcie2_0_rst: pcie2-0-rst {
-9
arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-compact.dtsi
··· 7 7 #include "rk3588-orangepi-5.dtsi" 8 8 9 9 / { 10 - model = "Xunlong Orange Pi 5 Max"; 11 - compatible = "xunlong,orangepi-5-max", "rockchip,rk3588"; 12 - 13 10 vcc5v0_usb30_otg: vcc5v0-usb30-otg-regulator { 14 11 compatible = "regulator-fixed"; 15 12 enable-active-high; ··· 59 62 60 63 &led_blue_pwm { 61 64 /* PWM_LED1 */ 62 - pwms = <&pwm4 0 25000 0>; 63 65 status = "okay"; 64 - }; 65 - 66 - &led_green_pwm { 67 - /* PWM_LED2 */ 68 - pwms = <&pwm5 0 25000 0>; 69 66 }; 70 67 71 68 /* phy2 */
+50 -1
arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-max.dts
··· 21 21 }; 22 22 }; 23 23 }; 24 + 25 + hdmi1-con { 26 + compatible = "hdmi-connector"; 27 + type = "a"; 28 + 29 + port { 30 + hdmi1_con_in: endpoint { 31 + remote-endpoint = <&hdmi1_out_con>; 32 + }; 33 + }; 34 + }; 24 35 }; 25 36 26 37 &hdmi0 { ··· 50 39 }; 51 40 }; 52 41 53 - &hdptxphy_hdmi0 { 42 + &hdmi1 { 43 + pinctrl-names = "default"; 44 + pinctrl-0 = <&hdmim0_tx1_cec &hdmim0_tx1_hpd 45 + &hdmim1_tx1_scl &hdmim1_tx1_sda>; 54 46 status = "okay"; 47 + }; 48 + 49 + &hdmi1_in { 50 + hdmi1_in_vp1: endpoint { 51 + remote-endpoint = <&vp1_out_hdmi1>; 52 + }; 53 + }; 54 + 55 + &hdmi1_out { 56 + hdmi1_out_con: endpoint { 57 + remote-endpoint = <&hdmi1_con_in>; 58 + }; 59 + }; 60 + 61 + &hdptxphy0 { 62 + status = "okay"; 63 + }; 64 + 65 + &hdptxphy1 { 66 + status = "okay"; 67 + }; 68 + 69 + &led_blue_pwm { 70 + pwms = <&pwm4 0 25000 0>; 71 + }; 72 + 73 + &led_green_pwm { 74 + pwms = <&pwm5 0 25000 0>; 55 75 }; 56 76 57 77 &pinctrl { ··· 98 56 vp0_out_hdmi0: endpoint@ROCKCHIP_VOP2_EP_HDMI0 { 99 57 reg = <ROCKCHIP_VOP2_EP_HDMI0>; 100 58 remote-endpoint = <&hdmi0_in_vp0>; 59 + }; 60 + }; 61 + 62 + &vp1 { 63 + vp1_out_hdmi1: endpoint@ROCKCHIP_VOP2_EP_HDMI1 { 64 + reg = <ROCKCHIP_VOP2_EP_HDMI1>; 65 + remote-endpoint = <&hdmi1_in_vp1>; 101 66 }; 102 67 };
+1 -1
arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-plus.dts
··· 125 125 }; 126 126 }; 127 127 128 - &hdptxphy_hdmi0 { 128 + &hdptxphy0 { 129 129 status = "okay"; 130 130 }; 131 131
+83
arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-ultra.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 <dt-bindings/pwm/pwm.h> 8 + #include <dt-bindings/soc/rockchip,vop2.h> 9 + #include "rk3588-orangepi-5-compact.dtsi" 10 + 11 + / { 12 + model = "Xunlong Orange Pi 5 Ultra"; 13 + compatible = "xunlong,orangepi-5-ultra", "rockchip,rk3588"; 14 + 15 + hdmi1-con { 16 + compatible = "hdmi-connector"; 17 + type = "a"; 18 + 19 + port { 20 + hdmi1_con_in: endpoint { 21 + remote-endpoint = <&hdmi1_out_con>; 22 + }; 23 + }; 24 + }; 25 + }; 26 + 27 + &hdmi1 { 28 + pinctrl-names = "default"; 29 + pinctrl-0 = <&hdmim0_tx1_cec &hdmim0_tx1_hpd 30 + &hdmim1_tx1_scl &hdmim1_tx1_sda>; 31 + status = "okay"; 32 + }; 33 + 34 + &hdmi1_in { 35 + hdmi1_in_vp0: endpoint { 36 + remote-endpoint = <&vp0_out_hdmi1>; 37 + }; 38 + }; 39 + 40 + &hdmi1_out { 41 + hdmi1_out_con: endpoint { 42 + remote-endpoint = <&hdmi1_con_in>; 43 + }; 44 + }; 45 + 46 + &hdmi1_sound { 47 + status = "okay"; 48 + }; 49 + 50 + &hdptxphy1 { 51 + status = "okay"; 52 + }; 53 + 54 + &i2s6_8ch { 55 + status = "okay"; 56 + }; 57 + 58 + &led_blue_pwm { 59 + pwms = <&pwm4 0 25000 PWM_POLARITY_INVERTED>; 60 + }; 61 + 62 + &led_green_pwm { 63 + pwms = <&pwm5 0 25000 PWM_POLARITY_INVERTED>; 64 + }; 65 + 66 + &pinctrl { 67 + usb { 68 + usb_otg_pwren: usb-otg-pwren { 69 + rockchip,pins = <4 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; 70 + }; 71 + }; 72 + }; 73 + 74 + &vcc5v0_usb30_otg { 75 + gpios = <&gpio4 RK_PB1 GPIO_ACTIVE_HIGH>; 76 + }; 77 + 78 + &vp0 { 79 + vp0_out_hdmi1: endpoint@ROCKCHIP_VOP2_EP_HDMI1 { 80 + reg = <ROCKCHIP_VOP2_EP_HDMI1>; 81 + remote-endpoint = <&hdmi1_in_vp0>; 82 + }; 83 + };
+5 -1
arch/arm64/boot/dts/rockchip/rk3588-orangepi-5.dtsi
··· 276 276 277 277 /* PLDO2 vcca 1.8V, BUCK8 gated by PLDO2 being enabled */ 278 278 es8388: audio-codec@11 { 279 - compatible = "everest,es8388"; 279 + compatible = "everest,es8388", "everest,es8328"; 280 280 reg = <0x11>; 281 281 clocks = <&cru I2S0_8CH_MCLKOUT>; 282 282 AVDD-supply = <&vcc_3v3_s0>; ··· 346 346 reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>; 347 347 vpcie3v3-supply = <&vcc3v3_pcie30>; 348 348 status = "okay"; 349 + }; 350 + 351 + &pd_gpu { 352 + domain-supply = <&vdd_gpu_s0>; 349 353 }; 350 354 351 355 &saradc {
+5 -1
arch/arm64/boot/dts/rockchip/rk3588-quartzpro64.dts
··· 311 311 status = "okay"; 312 312 313 313 es8388: audio-codec@11 { 314 - compatible = "everest,es8388"; 314 + compatible = "everest,es8388", "everest,es8328"; 315 315 reg = <0x11>; 316 316 assigned-clocks = <&cru I2S0_8CH_MCLKOUT>; 317 317 assigned-clock-rates = <12288000>; ··· 345 345 reset-deassert-us = <100000>; 346 346 reset-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_LOW>; 347 347 }; 348 + }; 349 + 350 + &pd_gpu { 351 + domain-supply = <&vdd_gpu_s0>; 348 352 }; 349 353 350 354 &pinctrl {
+53
arch/arm64/boot/dts/rockchip/rk3588-rock-5-itx.dts
··· 11 11 #include <dt-bindings/leds/common.h> 12 12 #include <dt-bindings/pinctrl/rockchip.h> 13 13 #include <dt-bindings/pwm/pwm.h> 14 + #include <dt-bindings/soc/rockchip,vop2.h> 14 15 #include "dt-bindings/usb/pd.h" 15 16 #include "rk3588.dtsi" 16 17 ··· 70 69 hdd-led2 { 71 70 gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_HIGH>; 72 71 linux,default-trigger = "disk-activity"; 72 + }; 73 + }; 74 + 75 + hdmi1-con { 76 + compatible = "hdmi-connector"; 77 + type = "a"; 78 + 79 + port { 80 + hdmi1_con_in: endpoint { 81 + remote-endpoint = <&hdmi1_out_con>; 82 + }; 73 83 }; 74 84 }; 75 85 ··· 270 258 271 259 &gpu { 272 260 mali-supply = <&vdd_gpu_s0>; 261 + status = "okay"; 262 + }; 263 + 264 + &hdmi1 { 265 + pinctrl-0 = <&hdmim0_tx1_cec &hdmim0_tx1_hpd 266 + &hdmim1_tx1_scl &hdmim1_tx1_sda>; 267 + status = "okay"; 268 + }; 269 + 270 + &hdmi1_in { 271 + hdmi1_in_vp1: endpoint { 272 + remote-endpoint = <&vp1_out_hdmi1>; 273 + }; 274 + }; 275 + 276 + &hdmi1_out { 277 + hdmi1_out_con: endpoint { 278 + remote-endpoint = <&hdmi1_con_in>; 279 + }; 280 + }; 281 + 282 + &hdptxphy1 { 273 283 status = "okay"; 274 284 }; 275 285 ··· 596 562 reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>; 597 563 vpcie3v3-supply = <&vcc3v3_mkey>; 598 564 status = "okay"; 565 + }; 566 + 567 + &pd_gpu { 568 + domain-supply = <&vdd_gpu_s0>; 599 569 }; 600 570 601 571 &pinctrl { ··· 1246 1208 &usbdp_phy1 { 1247 1209 rockchip,dp-lane-mux = <2 3>; 1248 1210 status = "okay"; 1211 + }; 1212 + 1213 + &vop { 1214 + status = "okay"; 1215 + }; 1216 + 1217 + &vop_mmu { 1218 + status = "okay"; 1219 + }; 1220 + 1221 + &vp1 { 1222 + vp1_out_hdmi1: endpoint@ROCKCHIP_VOP2_EP_HDMI1 { 1223 + reg = <ROCKCHIP_VOP2_EP_HDMI1>; 1224 + remote-endpoint = <&hdmi1_in_vp1>; 1225 + }; 1249 1226 };
+80 -3
arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts
··· 49 49 }; 50 50 }; 51 51 52 + hdmi1-con { 53 + compatible = "hdmi-connector"; 54 + type = "a"; 55 + 56 + port { 57 + hdmi1_con_in: endpoint { 58 + remote-endpoint = <&hdmi1_out_con>; 59 + }; 60 + }; 61 + }; 62 + 52 63 leds { 53 64 compatible = "gpio-leds"; 54 65 pinctrl-names = "default"; ··· 231 220 }; 232 221 }; 233 222 234 - &hdptxphy_hdmi0 { 223 + &hdmi0_sound { 224 + status = "okay"; 225 + }; 226 + 227 + &hdmi1 { 228 + pinctrl-0 = <&hdmim0_tx1_cec &hdmim0_tx1_hpd 229 + &hdmim1_tx1_scl &hdmim1_tx1_sda>; 230 + status = "okay"; 231 + }; 232 + 233 + &hdmi1_in { 234 + hdmi1_in_vp1: endpoint { 235 + remote-endpoint = <&vp1_out_hdmi1>; 236 + }; 237 + }; 238 + 239 + &hdmi1_out { 240 + hdmi1_out_con: endpoint { 241 + remote-endpoint = <&hdmi1_con_in>; 242 + }; 243 + }; 244 + 245 + &hdmi1_sound { 246 + status = "okay"; 247 + }; 248 + 249 + &hdmi_receiver_cma { 250 + status = "okay"; 251 + }; 252 + 253 + &hdmi_receiver { 254 + hpd-gpios = <&gpio1 RK_PC6 GPIO_ACTIVE_LOW>; 255 + pinctrl-0 = <&hdmim1_rx_cec &hdmim1_rx_hpdin &hdmim1_rx_scl &hdmim1_rx_sda &hdmirx_hpd>; 256 + pinctrl-names = "default"; 257 + status = "okay"; 258 + }; 259 + 260 + &hdptxphy0 { 261 + status = "okay"; 262 + }; 263 + 264 + &hdptxphy1 { 235 265 status = "okay"; 236 266 }; 237 267 ··· 370 318 }; 371 319 }; 372 320 321 + &i2s5_8ch { 322 + status = "okay"; 323 + }; 324 + 325 + &i2s6_8ch { 326 + status = "okay"; 327 + }; 328 + 373 329 &package_thermal { 374 330 polling-delay = <1000>; 375 331 ··· 436 376 status = "okay"; 437 377 }; 438 378 379 + &pd_gpu { 380 + domain-supply = <&vdd_gpu_s0>; 381 + }; 382 + 439 383 &pinctrl { 384 + hdmirx { 385 + hdmirx_hpd: hdmirx-5v-detection { 386 + rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>; 387 + }; 388 + }; 389 + 440 390 hym8563 { 441 391 hym8563_int: hym8563-int { 442 392 rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; ··· 961 891 status = "okay"; 962 892 }; 963 893 964 - &vop_mmu { 894 + &vop { 965 895 status = "okay"; 966 896 }; 967 897 968 - &vop { 898 + &vop_mmu { 969 899 status = "okay"; 970 900 }; 971 901 ··· 973 903 vp0_out_hdmi0: endpoint@ROCKCHIP_VOP2_EP_HDMI0 { 974 904 reg = <ROCKCHIP_VOP2_EP_HDMI0>; 975 905 remote-endpoint = <&hdmi0_in_vp0>; 906 + }; 907 + }; 908 + 909 + &vp1 { 910 + vp1_out_hdmi1: endpoint@ROCKCHIP_VOP2_EP_HDMI1 { 911 + reg = <ROCKCHIP_VOP2_EP_HDMI1>; 912 + remote-endpoint = <&hdmi1_in_vp1>; 976 913 }; 977 914 };
+3 -1
arch/arm64/boot/dts/rockchip/rk3588-tiger-haikou.dts
··· 189 189 }; 190 190 }; 191 191 192 - &hdptxphy_hdmi0 { 192 + &hdptxphy0 { 193 193 status = "okay"; 194 194 }; 195 195 ··· 310 310 status = "okay"; 311 311 }; 312 312 313 + /* DB9 RS232/RS485 when SW2 in "UART1" mode */ 313 314 &uart5 { 314 315 rts-gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_HIGH>; 316 + status = "okay"; 315 317 }; 316 318 317 319 &usbdp_phy0 {
+4 -1
arch/arm64/boot/dts/rockchip/rk3588-tiger.dtsi
··· 173 173 174 174 &i2c2 { 175 175 pinctrl-0 = <&i2c2m3_xfer>; 176 - status = "okay"; 177 176 }; 178 177 179 178 &i2c2m3_xfer { ··· 333 334 "aux", "pipe", 334 335 "ref"; 335 336 reset-gpios = <&gpio3 RK_PB6 GPIO_ACTIVE_HIGH>; 337 + }; 338 + 339 + &pd_gpu { 340 + domain-supply = <&vdd_gpu_s0>; 336 341 }; 337 342 338 343 &pinctrl {
+4
arch/arm64/boot/dts/rockchip/rk3588-toybrick-x0.dts
··· 289 289 }; 290 290 }; 291 291 292 + &pd_gpu { 293 + domain-supply = <&vdd_gpu_s0>; 294 + }; 295 + 292 296 &pinctrl { 293 297 rtl8211f { 294 298 rtl8211f_rst: rtl8211f-rst {
+4
arch/arm64/boot/dts/rockchip/rk3588-turing-rk1.dtsi
··· 287 287 status = "okay"; 288 288 }; 289 289 290 + &pd_gpu { 291 + domain-supply = <&vdd_gpu_s0>; 292 + }; 293 + 290 294 &pinctrl { 291 295 fan { 292 296 fan_int: fan-int {
+28 -1
arch/arm64/boot/dts/rockchip/rk3588s-coolpi-4b.dts
··· 236 236 }; 237 237 }; 238 238 239 - &hdptxphy_hdmi0 { 239 + &hdptxphy0 { 240 240 status = "okay"; 241 241 }; 242 242 ··· 359 359 pinctrl-0 = <&rtl8111_isolate>; 360 360 reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>; 361 361 status = "okay"; 362 + }; 363 + 364 + &pd_gpu { 365 + domain-supply = <&vdd_gpu_s0>; 362 366 }; 363 367 364 368 &pinctrl { ··· 807 803 status = "okay"; 808 804 }; 809 805 806 + &u2phy0 { 807 + status = "okay"; 808 + }; 809 + 810 + &u2phy0_otg { 811 + status = "okay"; 812 + }; 813 + 810 814 &u2phy2 { 811 815 status = "okay"; 812 816 }; ··· 844 832 pinctrl-0 = <&uart9m2_xfer &uart9m2_ctsn>; 845 833 }; 846 834 835 + &usbdp_phy0 { 836 + /* 837 + * USBDP PHY0 is wired to a USB3 Type-A OTG connector. Additionally 838 + * the differential pairs 0+1 and the aux channel are wired to a 839 + * mini DP connector. 840 + */ 841 + rockchip,dp-lane-mux = <0 1>; 842 + status = "okay"; 843 + }; 844 + 847 845 &usb_host0_ehci { 848 846 status = "okay"; 849 847 }; 850 848 851 849 &usb_host0_ohci { 850 + status = "okay"; 851 + }; 852 + 853 + &usb_host0_xhci { 854 + extcon = <&u2phy0>; 852 855 status = "okay"; 853 856 }; 854 857
+5 -1
arch/arm64/boot/dts/rockchip/rk3588s-evb1-v10.dts
··· 242 242 status = "okay"; 243 243 244 244 es8388: audio-codec@11 { 245 - compatible = "everest,es8388"; 245 + compatible = "everest,es8388", "everest,es8328"; 246 246 reg = <0x11>; 247 247 clocks = <&cru I2S0_8CH_MCLKOUT>; 248 248 assigned-clocks = <&cru I2S0_8CH_MCLKOUT>; ··· 338 338 pinctrl-0 = <&pcie2_2_rst>; 339 339 reset-gpios = <&gpio4 RK_PC1 GPIO_ACTIVE_HIGH>; 340 340 status = "okay"; 341 + }; 342 + 343 + &pd_gpu { 344 + domain-supply = <&vdd_gpu_s0>; 341 345 }; 342 346 343 347 &pinctrl {
+5 -1
arch/arm64/boot/dts/rockchip/rk3588s-gameforce-ace.dts
··· 611 611 status = "okay"; 612 612 613 613 es8388: audio-codec@11 { 614 - compatible = "everest,es8388"; 614 + compatible = "everest,es8388", "everest,es8328"; 615 615 reg = <0x11>; 616 616 assigned-clock-rates = <12288000>; 617 617 assigned-clocks = <&cru I2S0_8CH_MCLKOUT>; ··· 673 673 pinctrl-names = "default"; 674 674 reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>; 675 675 status = "okay"; 676 + }; 677 + 678 + &pd_gpu { 679 + domain-supply = <&vdd_gpu_s0>; 676 680 }; 677 681 678 682 &pinctrl {
+6 -2
arch/arm64/boot/dts/rockchip/rk3588s-indiedroid-nova.dts
··· 278 278 }; 279 279 }; 280 280 281 - &hdptxphy_hdmi0 { 281 + &hdptxphy0 { 282 282 status = "okay"; 283 283 }; 284 284 ··· 412 412 status = "okay"; 413 413 414 414 es8388: audio-codec@11 { 415 - compatible = "everest,es8388"; 415 + compatible = "everest,es8388", "everest,es8328"; 416 416 reg = <0x11>; 417 417 assigned-clock-rates = <12288000>; 418 418 assigned-clocks = <&cru I2S0_8CH_MCLKOUT>; ··· 453 453 pinctrl-0 = <&rtl8111_perstb>; 454 454 pinctrl-names = "default"; 455 455 status = "okay"; 456 + }; 457 + 458 + &pd_gpu { 459 + domain-supply = <&vdd_gpu_s0>; 456 460 }; 457 461 458 462 &pinctrl {
+4
arch/arm64/boot/dts/rockchip/rk3588s-khadas-edge2.dts
··· 233 233 }; 234 234 }; 235 235 236 + &pd_gpu { 237 + domain-supply = <&vdd_gpu_s0>; 238 + }; 239 + 236 240 &pinctrl { 237 241 vdd_sd { 238 242 vdd_sd_en: vdd-sd-en {
+5 -1
arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6.dtsi
··· 251 251 }; 252 252 }; 253 253 254 - &hdptxphy_hdmi0 { 254 + &hdptxphy0 { 255 255 status = "okay"; 256 256 }; 257 257 ··· 357 357 reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>; 358 358 vpcie3v3-supply = <&vcc_3v3_pcie20>; 359 359 status = "okay"; 360 + }; 361 + 362 + &pd_gpu { 363 + domain-supply = <&vdd_gpu_s0>; 360 364 }; 361 365 362 366 &pinctrl {
+5 -1
arch/arm64/boot/dts/rockchip/rk3588s-odroid-m2.dts
··· 264 264 }; 265 265 }; 266 266 267 - &hdptxphy_hdmi0 { 267 + &hdptxphy0 { 268 268 status = "okay"; 269 269 }; 270 270 ··· 431 431 reset-gpios = <&gpio1 RK_PA7 GPIO_ACTIVE_HIGH>; 432 432 vpcie3v3-supply = <&vcc3v3_pcie>; 433 433 status = "okay"; 434 + }; 435 + 436 + &pd_gpu { 437 + domain-supply = <&vdd_gpu_s0>; 434 438 }; 435 439 436 440 &pinctrl {
+6 -2
arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5.dtsi
··· 197 197 }; 198 198 }; 199 199 200 - &hdptxphy_hdmi0 { 200 + &hdptxphy0 { 201 201 status = "okay"; 202 202 }; 203 203 ··· 268 268 status = "okay"; 269 269 270 270 es8388: audio-codec@10 { 271 - compatible = "everest,es8388"; 271 + compatible = "everest,es8388", "everest,es8328"; 272 272 reg = <0x10>; 273 273 clocks = <&cru I2S1_8CH_MCLKOUT>; 274 274 AVDD-supply = <&vcc_3v3_s0>; ··· 363 363 reset-deassert-us = <100000>; 364 364 reset-gpios = <&gpio3 RK_PB2 GPIO_ACTIVE_LOW>; 365 365 }; 366 + }; 367 + 368 + &pd_gpu { 369 + domain-supply = <&vdd_gpu_s0>; 366 370 }; 367 371 368 372 &pinctrl {
+5 -1
arch/arm64/boot/dts/rockchip/rk3588s-rock-5a.dts
··· 334 334 }; 335 335 }; 336 336 337 - &hdptxphy_hdmi0 { 337 + &hdptxphy0 { 338 338 status = "okay"; 339 339 }; 340 340 ··· 357 357 reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>; 358 358 vpcie3v3-supply = <&vcc3v3_wf>; 359 359 status = "okay"; 360 + }; 361 + 362 + &pd_gpu { 363 + domain-supply = <&vdd_gpu_s0>; 360 364 }; 361 365 362 366 &pinctrl {
+39 -3
arch/arm64/boot/dts/rockchip/rk3588s-rock-5c.dts
··· 68 68 }; 69 69 }; 70 70 71 - fan { 71 + fan: fan { 72 72 compatible = "pwm-fan"; 73 73 #cooling-cells = <2>; 74 - cooling-levels = <0 64 128 192 255>; 74 + cooling-levels = <0 24 44 64 128 192 255>; 75 75 fan-supply = <&vcc_5v0>; 76 76 pwms = <&pwm3 0 10000 0>; 77 77 }; ··· 278 278 }; 279 279 }; 280 280 281 - &hdptxphy_hdmi0 { 281 + &hdptxphy0 { 282 282 status = "okay"; 283 283 }; 284 284 ··· 417 417 }; 418 418 }; 419 419 420 + &package_thermal { 421 + polling-delay = <1000>; 422 + 423 + trips { 424 + package_fan0: package-fan0 { 425 + temperature = <55000>; 426 + hysteresis = <2000>; 427 + type = "active"; 428 + }; 429 + 430 + package_fan1: package-fan1 { 431 + temperature = <65000>; 432 + hysteresis = <2000>; 433 + type = "active"; 434 + }; 435 + }; 436 + 437 + cooling-maps { 438 + map0 { 439 + trip = <&package_fan0>; 440 + cooling-device = <&fan THERMAL_NO_LIMIT 1>; 441 + }; 442 + 443 + map1 { 444 + trip = <&package_fan1>; 445 + cooling-device = <&fan 2 THERMAL_NO_LIMIT>; 446 + }; 447 + }; 448 + }; 449 + 420 450 &pcie2x1l2 { 421 451 pinctrl-names = "default"; 422 452 pinctrl-0 = <&pcie20x1_2_perstn_m0>; 423 453 reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>; 424 454 vpcie3v3-supply = <&pcie2x1l2_3v3>; 425 455 status = "okay"; 456 + }; 457 + 458 + &pd_gpu { 459 + domain-supply = <&vdd_gpu_s0>; 426 460 }; 427 461 428 462 &pinctrl { ··· 877 843 }; 878 844 879 845 &tsadc { 846 + rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */ 847 + rockchip,hw-tshut-polarity = <0>; /* tshut polarity 0:LOW 1:HIGH */ 880 848 status = "okay"; 881 849 }; 882 850
+453
include/dt-bindings/clock/rockchip,rk3528-cru.h
··· 1 + /* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */ 2 + /* 3 + * Copyright (c) 2022 Rockchip Electronics Co. Ltd. 4 + * Copyright (c) 2024 Yao Zi <ziyao@disroot.org> 5 + * Author: Joseph Chen <chenjh@rock-chips.com> 6 + */ 7 + 8 + #ifndef _DT_BINDINGS_CLK_ROCKCHIP_RK3528_H 9 + #define _DT_BINDINGS_CLK_ROCKCHIP_RK3528_H 10 + 11 + /* cru-clocks indices */ 12 + #define PLL_APLL 0 13 + #define PLL_CPLL 1 14 + #define PLL_GPLL 2 15 + #define PLL_PPLL 3 16 + #define PLL_DPLL 4 17 + #define ARMCLK 5 18 + #define XIN_OSC0_HALF 6 19 + #define CLK_MATRIX_50M_SRC 7 20 + #define CLK_MATRIX_100M_SRC 8 21 + #define CLK_MATRIX_150M_SRC 9 22 + #define CLK_MATRIX_200M_SRC 10 23 + #define CLK_MATRIX_250M_SRC 11 24 + #define CLK_MATRIX_300M_SRC 12 25 + #define CLK_MATRIX_339M_SRC 13 26 + #define CLK_MATRIX_400M_SRC 14 27 + #define CLK_MATRIX_500M_SRC 15 28 + #define CLK_MATRIX_600M_SRC 16 29 + #define CLK_UART0_SRC 17 30 + #define CLK_UART0_FRAC 18 31 + #define SCLK_UART0 19 32 + #define CLK_UART1_SRC 20 33 + #define CLK_UART1_FRAC 21 34 + #define SCLK_UART1 22 35 + #define CLK_UART2_SRC 23 36 + #define CLK_UART2_FRAC 24 37 + #define SCLK_UART2 25 38 + #define CLK_UART3_SRC 26 39 + #define CLK_UART3_FRAC 27 40 + #define SCLK_UART3 28 41 + #define CLK_UART4_SRC 29 42 + #define CLK_UART4_FRAC 30 43 + #define SCLK_UART4 31 44 + #define CLK_UART5_SRC 32 45 + #define CLK_UART5_FRAC 33 46 + #define SCLK_UART5 34 47 + #define CLK_UART6_SRC 35 48 + #define CLK_UART6_FRAC 36 49 + #define SCLK_UART6 37 50 + #define CLK_UART7_SRC 38 51 + #define CLK_UART7_FRAC 39 52 + #define SCLK_UART7 40 53 + #define CLK_I2S0_2CH_SRC 41 54 + #define CLK_I2S0_2CH_FRAC 42 55 + #define MCLK_I2S0_2CH_SAI_SRC 43 56 + #define CLK_I2S3_8CH_SRC 44 57 + #define CLK_I2S3_8CH_FRAC 45 58 + #define MCLK_I2S3_8CH_SAI_SRC 46 59 + #define CLK_I2S1_8CH_SRC 47 60 + #define CLK_I2S1_8CH_FRAC 48 61 + #define MCLK_I2S1_8CH_SAI_SRC 49 62 + #define CLK_I2S2_2CH_SRC 50 63 + #define CLK_I2S2_2CH_FRAC 51 64 + #define MCLK_I2S2_2CH_SAI_SRC 52 65 + #define CLK_SPDIF_SRC 53 66 + #define CLK_SPDIF_FRAC 54 67 + #define MCLK_SPDIF_SRC 55 68 + #define DCLK_VOP_SRC0 56 69 + #define DCLK_VOP_SRC1 57 70 + #define CLK_HSM 58 71 + #define CLK_CORE_SRC_ACS 59 72 + #define CLK_CORE_SRC_PVTMUX 60 73 + #define CLK_CORE_SRC 61 74 + #define CLK_CORE 62 75 + #define ACLK_M_CORE_BIU 63 76 + #define CLK_CORE_PVTPLL_SRC 64 77 + #define PCLK_DBG 65 78 + #define SWCLKTCK 66 79 + #define CLK_SCANHS_CORE 67 80 + #define CLK_SCANHS_ACLKM_CORE 68 81 + #define CLK_SCANHS_PCLK_DBG 69 82 + #define CLK_SCANHS_PCLK_CPU_BIU 70 83 + #define PCLK_CPU_ROOT 71 84 + #define PCLK_CORE_GRF 72 85 + #define PCLK_DAPLITE_BIU 73 86 + #define PCLK_CPU_BIU 74 87 + #define CLK_REF_PVTPLL_CORE 75 88 + #define ACLK_BUS_VOPGL_ROOT 76 89 + #define ACLK_BUS_VOPGL_BIU 77 90 + #define ACLK_BUS_H_ROOT 78 91 + #define ACLK_BUS_H_BIU 79 92 + #define ACLK_BUS_ROOT 80 93 + #define HCLK_BUS_ROOT 81 94 + #define PCLK_BUS_ROOT 82 95 + #define ACLK_BUS_M_ROOT 83 96 + #define ACLK_SYSMEM_BIU 84 97 + #define CLK_TIMER_ROOT 85 98 + #define ACLK_BUS_BIU 86 99 + #define HCLK_BUS_BIU 87 100 + #define PCLK_BUS_BIU 88 101 + #define PCLK_DFT2APB 89 102 + #define PCLK_BUS_GRF 90 103 + #define ACLK_BUS_M_BIU 91 104 + #define ACLK_GIC 92 105 + #define ACLK_SPINLOCK 93 106 + #define ACLK_DMAC 94 107 + #define PCLK_TIMER 95 108 + #define CLK_TIMER0 96 109 + #define CLK_TIMER1 97 110 + #define CLK_TIMER2 98 111 + #define CLK_TIMER3 99 112 + #define CLK_TIMER4 100 113 + #define CLK_TIMER5 101 114 + #define PCLK_JDBCK_DAP 102 115 + #define CLK_JDBCK_DAP 103 116 + #define PCLK_WDT_NS 104 117 + #define TCLK_WDT_NS 105 118 + #define HCLK_TRNG_NS 106 119 + #define PCLK_UART0 107 120 + #define PCLK_DMA2DDR 108 121 + #define ACLK_DMA2DDR 109 122 + #define PCLK_PWM0 110 123 + #define CLK_PWM0 111 124 + #define CLK_CAPTURE_PWM0 112 125 + #define PCLK_PWM1 113 126 + #define CLK_PWM1 114 127 + #define CLK_CAPTURE_PWM1 115 128 + #define PCLK_SCR 116 129 + #define ACLK_DCF 117 130 + #define PCLK_INTMUX 118 131 + #define CLK_PPLL_I 119 132 + #define CLK_PPLL_MUX 120 133 + #define CLK_PPLL_100M_MATRIX 121 134 + #define CLK_PPLL_50M_MATRIX 122 135 + #define CLK_REF_PCIE_INNER_PHY 123 136 + #define CLK_REF_PCIE_100M_PHY 124 137 + #define ACLK_VPU_L_ROOT 125 138 + #define CLK_GMAC1_VPU_25M 126 139 + #define CLK_PPLL_125M_MATRIX 127 140 + #define ACLK_VPU_ROOT 128 141 + #define HCLK_VPU_ROOT 129 142 + #define PCLK_VPU_ROOT 130 143 + #define ACLK_VPU_BIU 131 144 + #define HCLK_VPU_BIU 132 145 + #define PCLK_VPU_BIU 133 146 + #define ACLK_VPU 134 147 + #define HCLK_VPU 135 148 + #define PCLK_CRU_PCIE 136 149 + #define PCLK_VPU_GRF 137 150 + #define HCLK_SFC 138 151 + #define SCLK_SFC 139 152 + #define CCLK_SRC_EMMC 140 153 + #define HCLK_EMMC 141 154 + #define ACLK_EMMC 142 155 + #define BCLK_EMMC 143 156 + #define TCLK_EMMC 144 157 + #define PCLK_GPIO1 145 158 + #define DBCLK_GPIO1 146 159 + #define ACLK_VPU_L_BIU 147 160 + #define PCLK_VPU_IOC 148 161 + #define HCLK_SAI_I2S0 149 162 + #define MCLK_SAI_I2S0 150 163 + #define HCLK_SAI_I2S2 151 164 + #define MCLK_SAI_I2S2 152 165 + #define PCLK_ACODEC 153 166 + #define MCLK_ACODEC_TX 154 167 + #define PCLK_GPIO3 155 168 + #define DBCLK_GPIO3 156 169 + #define PCLK_SPI1 157 170 + #define CLK_SPI1 158 171 + #define SCLK_IN_SPI1 159 172 + #define PCLK_UART2 160 173 + #define PCLK_UART5 161 174 + #define PCLK_UART6 162 175 + #define PCLK_UART7 163 176 + #define PCLK_I2C3 164 177 + #define CLK_I2C3 165 178 + #define PCLK_I2C5 166 179 + #define CLK_I2C5 167 180 + #define PCLK_I2C6 168 181 + #define CLK_I2C6 169 182 + #define ACLK_MAC_VPU 170 183 + #define PCLK_MAC_VPU 171 184 + #define CLK_GMAC1_RMII_VPU 172 185 + #define CLK_GMAC1_SRC_VPU 173 186 + #define PCLK_PCIE 174 187 + #define CLK_PCIE_AUX 175 188 + #define ACLK_PCIE 176 189 + #define HCLK_PCIE_SLV 177 190 + #define HCLK_PCIE_DBI 178 191 + #define PCLK_PCIE_PHY 179 192 + #define PCLK_PIPE_GRF 180 193 + #define CLK_PIPE_USB3OTG_COMBO 181 194 + #define CLK_UTMI_USB3OTG 182 195 + #define CLK_PCIE_PIPE_PHY 183 196 + #define CCLK_SRC_SDIO0 184 197 + #define HCLK_SDIO0 185 198 + #define CCLK_SRC_SDIO1 186 199 + #define HCLK_SDIO1 187 200 + #define CLK_TS_0 188 201 + #define CLK_TS_1 189 202 + #define PCLK_CAN2 190 203 + #define CLK_CAN2 191 204 + #define PCLK_CAN3 192 205 + #define CLK_CAN3 193 206 + #define PCLK_SARADC 194 207 + #define CLK_SARADC 195 208 + #define PCLK_TSADC 196 209 + #define CLK_TSADC 197 210 + #define CLK_TSADC_TSEN 198 211 + #define ACLK_USB3OTG 199 212 + #define CLK_REF_USB3OTG 200 213 + #define CLK_SUSPEND_USB3OTG 201 214 + #define ACLK_GPU_ROOT 202 215 + #define PCLK_GPU_ROOT 203 216 + #define ACLK_GPU_BIU 204 217 + #define PCLK_GPU_BIU 205 218 + #define ACLK_GPU 206 219 + #define CLK_GPU_PVTPLL_SRC 207 220 + #define ACLK_GPU_MALI 208 221 + #define HCLK_RKVENC_ROOT 209 222 + #define ACLK_RKVENC_ROOT 210 223 + #define PCLK_RKVENC_ROOT 211 224 + #define HCLK_RKVENC_BIU 212 225 + #define ACLK_RKVENC_BIU 213 226 + #define PCLK_RKVENC_BIU 214 227 + #define HCLK_RKVENC 215 228 + #define ACLK_RKVENC 216 229 + #define CLK_CORE_RKVENC 217 230 + #define HCLK_SAI_I2S1 218 231 + #define MCLK_SAI_I2S1 219 232 + #define PCLK_I2C1 220 233 + #define CLK_I2C1 221 234 + #define PCLK_I2C0 222 235 + #define CLK_I2C0 223 236 + #define CLK_UART_JTAG 224 237 + #define PCLK_SPI0 225 238 + #define CLK_SPI0 226 239 + #define SCLK_IN_SPI0 227 240 + #define PCLK_GPIO4 228 241 + #define DBCLK_GPIO4 229 242 + #define PCLK_RKVENC_IOC 230 243 + #define HCLK_SPDIF 231 244 + #define MCLK_SPDIF 232 245 + #define HCLK_PDM 233 246 + #define MCLK_PDM 234 247 + #define PCLK_UART1 235 248 + #define PCLK_UART3 236 249 + #define PCLK_RKVENC_GRF 237 250 + #define PCLK_CAN0 238 251 + #define CLK_CAN0 239 252 + #define PCLK_CAN1 240 253 + #define CLK_CAN1 241 254 + #define ACLK_VO_ROOT 242 255 + #define HCLK_VO_ROOT 243 256 + #define PCLK_VO_ROOT 244 257 + #define ACLK_VO_BIU 245 258 + #define HCLK_VO_BIU 246 259 + #define PCLK_VO_BIU 247 260 + #define HCLK_RGA2E 248 261 + #define ACLK_RGA2E 249 262 + #define CLK_CORE_RGA2E 250 263 + #define HCLK_VDPP 251 264 + #define ACLK_VDPP 252 265 + #define CLK_CORE_VDPP 253 266 + #define PCLK_VO_GRF 254 267 + #define PCLK_CRU 255 268 + #define ACLK_VOP_ROOT 256 269 + #define ACLK_VOP_BIU 257 270 + #define HCLK_VOP 258 271 + #define DCLK_VOP0 259 272 + #define DCLK_VOP1 260 273 + #define ACLK_VOP 261 274 + #define PCLK_HDMI 262 275 + #define CLK_SFR_HDMI 263 276 + #define CLK_CEC_HDMI 264 277 + #define CLK_SPDIF_HDMI 265 278 + #define CLK_HDMIPHY_TMDSSRC 266 279 + #define CLK_HDMIPHY_PREP 267 280 + #define PCLK_HDMIPHY 268 281 + #define HCLK_HDCP_KEY 269 282 + #define ACLK_HDCP 270 283 + #define HCLK_HDCP 271 284 + #define PCLK_HDCP 272 285 + #define HCLK_CVBS 273 286 + #define DCLK_CVBS 274 287 + #define DCLK_4X_CVBS 275 288 + #define ACLK_JPEG_DECODER 276 289 + #define HCLK_JPEG_DECODER 277 290 + #define ACLK_VO_L_ROOT 278 291 + #define ACLK_VO_L_BIU 279 292 + #define ACLK_MAC_VO 280 293 + #define PCLK_MAC_VO 281 294 + #define CLK_GMAC0_SRC 282 295 + #define CLK_GMAC0_RMII_50M 283 296 + #define CLK_GMAC0_TX 284 297 + #define CLK_GMAC0_RX 285 298 + #define ACLK_JPEG_ROOT 286 299 + #define ACLK_JPEG_BIU 287 300 + #define HCLK_SAI_I2S3 288 301 + #define MCLK_SAI_I2S3 289 302 + #define CLK_MACPHY 290 303 + #define PCLK_VCDCPHY 291 304 + #define PCLK_GPIO2 292 305 + #define DBCLK_GPIO2 293 306 + #define PCLK_VO_IOC 294 307 + #define CCLK_SRC_SDMMC0 295 308 + #define HCLK_SDMMC0 296 309 + #define PCLK_OTPC_NS 297 310 + #define CLK_SBPI_OTPC_NS 298 311 + #define CLK_USER_OTPC_NS 299 312 + #define CLK_HDMIHDP0 300 313 + #define HCLK_USBHOST 301 314 + #define HCLK_USBHOST_ARB 302 315 + #define CLK_USBHOST_OHCI 303 316 + #define CLK_USBHOST_UTMI 304 317 + #define PCLK_UART4 305 318 + #define PCLK_I2C4 306 319 + #define CLK_I2C4 307 320 + #define PCLK_I2C7 308 321 + #define CLK_I2C7 309 322 + #define PCLK_USBPHY 310 323 + #define CLK_REF_USBPHY 311 324 + #define HCLK_RKVDEC_ROOT 312 325 + #define ACLK_RKVDEC_ROOT_NDFT 313 326 + #define PCLK_DDRPHY_CRU 314 327 + #define HCLK_RKVDEC_BIU 315 328 + #define ACLK_RKVDEC_BIU 316 329 + #define ACLK_RKVDEC 317 330 + #define HCLK_RKVDEC 318 331 + #define CLK_HEVC_CA_RKVDEC 319 332 + #define ACLK_RKVDEC_PVTMUX_ROOT 320 333 + #define CLK_RKVDEC_PVTPLL_SRC 321 334 + #define PCLK_DDR_ROOT 322 335 + #define PCLK_DDR_BIU 323 336 + #define PCLK_DDRC 324 337 + #define PCLK_DDRMON 325 338 + #define CLK_TIMER_DDRMON 326 339 + #define PCLK_MSCH_BIU 327 340 + #define PCLK_DDR_GRF 328 341 + #define PCLK_DDR_HWLP 329 342 + #define PCLK_DDRPHY 330 343 + #define CLK_MSCH_BIU 331 344 + #define ACLK_DDR_UPCTL 332 345 + #define CLK_DDR_UPCTL 333 346 + #define CLK_DDRMON 334 347 + #define ACLK_DDR_SCRAMBLE 335 348 + #define ACLK_SPLIT 336 349 + #define CLK_DDRC_SRC 337 350 + #define CLK_DDR_PHY 338 351 + #define PCLK_OTPC_S 339 352 + #define CLK_SBPI_OTPC_S 340 353 + #define CLK_USER_OTPC_S 341 354 + #define PCLK_KEYREADER 342 355 + #define PCLK_BUS_SGRF 343 356 + #define PCLK_STIMER 344 357 + #define CLK_STIMER0 345 358 + #define CLK_STIMER1 346 359 + #define PCLK_WDT_S 347 360 + #define TCLK_WDT_S 348 361 + #define HCLK_TRNG_S 349 362 + #define HCLK_BOOTROM 350 363 + #define PCLK_DCF 351 364 + #define ACLK_SYSMEM 352 365 + #define HCLK_TSP 353 366 + #define ACLK_TSP 354 367 + #define CLK_CORE_TSP 355 368 + #define CLK_OTPC_ARB 356 369 + #define PCLK_OTP_MASK 357 370 + #define CLK_PMC_OTP 358 371 + #define PCLK_PMU_ROOT 359 372 + #define HCLK_PMU_ROOT 360 373 + #define PCLK_I2C2 361 374 + #define CLK_I2C2 362 375 + #define HCLK_PMU_BIU 363 376 + #define PCLK_PMU_BIU 364 377 + #define FCLK_MCU 365 378 + #define RTC_CLK_MCU 366 379 + #define PCLK_OSCCHK 367 380 + #define CLK_PMU_MCU_JTAG 368 381 + #define PCLK_PMU 369 382 + #define PCLK_GPIO0 370 383 + #define DBCLK_GPIO0 371 384 + #define XIN_OSC0_DIV 372 385 + #define CLK_DEEPSLOW 373 386 + #define CLK_DDR_FAIL_SAFE 374 387 + #define PCLK_PMU_HP_TIMER 375 388 + #define CLK_PMU_HP_TIMER 376 389 + #define CLK_PMU_32K_HP_TIMER 377 390 + #define PCLK_PMU_IOC 378 391 + #define PCLK_PMU_CRU 379 392 + #define PCLK_PMU_GRF 380 393 + #define PCLK_PMU_WDT 381 394 + #define TCLK_PMU_WDT 382 395 + #define PCLK_PMU_MAILBOX 383 396 + #define PCLK_SCRKEYGEN 384 397 + #define CLK_SCRKEYGEN 385 398 + #define CLK_PVTM_OSCCHK 386 399 + #define CLK_REFOUT 387 400 + #define CLK_PVTM_PMU 388 401 + #define PCLK_PVTM_PMU 389 402 + #define PCLK_PMU_SGRF 390 403 + #define HCLK_PMU_SRAM 391 404 + #define CLK_UART0 392 405 + #define CLK_UART1 393 406 + #define CLK_UART2 394 407 + #define CLK_UART3 395 408 + #define CLK_UART4 396 409 + #define CLK_UART5 397 410 + #define CLK_UART6 398 411 + #define CLK_UART7 399 412 + #define MCLK_I2S0_2CH_SAI_SRC_PRE 400 413 + #define MCLK_I2S1_8CH_SAI_SRC_PRE 401 414 + #define MCLK_I2S2_2CH_SAI_SRC_PRE 402 415 + #define MCLK_I2S3_8CH_SAI_SRC_PRE 403 416 + #define MCLK_SDPDIF_SRC_PRE 404 417 + 418 + /* scmi-clocks indices */ 419 + #define SCMI_PCLK_KEYREADER 0 420 + #define SCMI_HCLK_KLAD 1 421 + #define SCMI_PCLK_KLAD 2 422 + #define SCMI_HCLK_TRNG_S 3 423 + #define SCMI_HCLK_CRYPTO_S 4 424 + #define SCMI_PCLK_WDT_S 5 425 + #define SCMI_TCLK_WDT_S 6 426 + #define SCMI_PCLK_STIMER 7 427 + #define SCMI_CLK_STIMER0 8 428 + #define SCMI_CLK_STIMER1 9 429 + #define SCMI_PCLK_OTP_MASK 10 430 + #define SCMI_PCLK_OTPC_S 11 431 + #define SCMI_CLK_SBPI_OTPC_S 12 432 + #define SCMI_CLK_USER_OTPC_S 13 433 + #define SCMI_CLK_PMC_OTP 14 434 + #define SCMI_CLK_OTPC_ARB 15 435 + #define SCMI_CLK_CORE_TSP 16 436 + #define SCMI_ACLK_TSP 17 437 + #define SCMI_HCLK_TSP 18 438 + #define SCMI_PCLK_DCF 19 439 + #define SCMI_CLK_DDR 20 440 + #define SCMI_CLK_CPU 21 441 + #define SCMI_CLK_GPU 22 442 + #define SCMI_CORE_CRYPTO 23 443 + #define SCMI_ACLK_CRYPTO 24 444 + #define SCMI_PKA_CRYPTO 25 445 + #define SCMI_HCLK_CRYPTO 26 446 + #define SCMI_CORE_CRYPTO_S 27 447 + #define SCMI_ACLK_CRYPTO_S 28 448 + #define SCMI_PKA_CRYPTO_S 29 449 + #define SCMI_CORE_KLAD 30 450 + #define SCMI_ACLK_KLAD 31 451 + #define SCMI_HCLK_TRNG 32 452 + 453 + #endif // _DT_BINDINGS_CLK_ROCKCHIP_RK3528_H
+241
include/dt-bindings/reset/rockchip,rk3528-cru.h
··· 1 + /* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */ 2 + /* 3 + * Copyright (c) 2022 Rockchip Electronics Co. Ltd. 4 + * Copyright (c) 2024 Yao Zi <ziyao@disroot.org> 5 + * Author: Joseph Chen <chenjh@rock-chips.com> 6 + */ 7 + 8 + #ifndef _DT_BINDINGS_RESET_ROCKCHIP_RK3528_H 9 + #define _DT_BINDINGS_RESET_ROCKCHIP_RK3528_H 10 + 11 + #define SRST_CORE0_PO 0 12 + #define SRST_CORE1_PO 1 13 + #define SRST_CORE2_PO 2 14 + #define SRST_CORE3_PO 3 15 + #define SRST_CORE0 4 16 + #define SRST_CORE1 5 17 + #define SRST_CORE2 6 18 + #define SRST_CORE3 7 19 + #define SRST_NL2 8 20 + #define SRST_CORE_BIU 9 21 + #define SRST_CORE_CRYPTO 10 22 + #define SRST_P_DBG 11 23 + #define SRST_POT_DBG 12 24 + #define SRST_NT_DBG 13 25 + #define SRST_P_CORE_GRF 14 26 + #define SRST_P_DAPLITE_BIU 15 27 + #define SRST_P_CPU_BIU 16 28 + #define SRST_REF_PVTPLL_CORE 17 29 + #define SRST_A_BUS_VOPGL_BIU 18 30 + #define SRST_A_BUS_H_BIU 19 31 + #define SRST_A_SYSMEM_BIU 20 32 + #define SRST_A_BUS_BIU 21 33 + #define SRST_H_BUS_BIU 22 34 + #define SRST_P_BUS_BIU 23 35 + #define SRST_P_DFT2APB 24 36 + #define SRST_P_BUS_GRF 25 37 + #define SRST_A_BUS_M_BIU 26 38 + #define SRST_A_GIC 27 39 + #define SRST_A_SPINLOCK 28 40 + #define SRST_A_DMAC 29 41 + #define SRST_P_TIMER 30 42 + #define SRST_TIMER0 31 43 + #define SRST_TIMER1 32 44 + #define SRST_TIMER2 33 45 + #define SRST_TIMER3 34 46 + #define SRST_TIMER4 35 47 + #define SRST_TIMER5 36 48 + #define SRST_P_JDBCK_DAP 37 49 + #define SRST_JDBCK_DAP 38 50 + #define SRST_P_WDT_NS 39 51 + #define SRST_T_WDT_NS 40 52 + #define SRST_H_TRNG_NS 41 53 + #define SRST_P_UART0 42 54 + #define SRST_S_UART0 43 55 + #define SRST_PKA_CRYPTO 44 56 + #define SRST_A_CRYPTO 45 57 + #define SRST_H_CRYPTO 46 58 + #define SRST_P_DMA2DDR 47 59 + #define SRST_A_DMA2DDR 48 60 + #define SRST_P_PWM0 49 61 + #define SRST_PWM0 50 62 + #define SRST_P_PWM1 51 63 + #define SRST_PWM1 52 64 + #define SRST_P_SCR 53 65 + #define SRST_A_DCF 54 66 + #define SRST_P_INTMUX 55 67 + #define SRST_A_VPU_BIU 56 68 + #define SRST_H_VPU_BIU 57 69 + #define SRST_P_VPU_BIU 58 70 + #define SRST_A_VPU 59 71 + #define SRST_H_VPU 60 72 + #define SRST_P_CRU_PCIE 61 73 + #define SRST_P_VPU_GRF 62 74 + #define SRST_H_SFC 63 75 + #define SRST_S_SFC 64 76 + #define SRST_C_EMMC 65 77 + #define SRST_H_EMMC 66 78 + #define SRST_A_EMMC 67 79 + #define SRST_B_EMMC 68 80 + #define SRST_T_EMMC 69 81 + #define SRST_P_GPIO1 70 82 + #define SRST_DB_GPIO1 71 83 + #define SRST_A_VPU_L_BIU 72 84 + #define SRST_P_VPU_IOC 73 85 + #define SRST_H_SAI_I2S0 74 86 + #define SRST_M_SAI_I2S0 75 87 + #define SRST_H_SAI_I2S2 76 88 + #define SRST_M_SAI_I2S2 77 89 + #define SRST_P_ACODEC 78 90 + #define SRST_P_GPIO3 79 91 + #define SRST_DB_GPIO3 80 92 + #define SRST_P_SPI1 81 93 + #define SRST_SPI1 82 94 + #define SRST_P_UART2 83 95 + #define SRST_S_UART2 84 96 + #define SRST_P_UART5 85 97 + #define SRST_S_UART5 86 98 + #define SRST_P_UART6 87 99 + #define SRST_S_UART6 88 100 + #define SRST_P_UART7 89 101 + #define SRST_S_UART7 90 102 + #define SRST_P_I2C3 91 103 + #define SRST_I2C3 92 104 + #define SRST_P_I2C5 93 105 + #define SRST_I2C5 94 106 + #define SRST_P_I2C6 95 107 + #define SRST_I2C6 96 108 + #define SRST_A_MAC 97 109 + #define SRST_P_PCIE 98 110 + #define SRST_PCIE_PIPE_PHY 99 111 + #define SRST_PCIE_POWER_UP 100 112 + #define SRST_P_PCIE_PHY 101 113 + #define SRST_P_PIPE_GRF 102 114 + #define SRST_H_SDIO0 103 115 + #define SRST_H_SDIO1 104 116 + #define SRST_TS_0 105 117 + #define SRST_TS_1 106 118 + #define SRST_P_CAN2 107 119 + #define SRST_CAN2 108 120 + #define SRST_P_CAN3 109 121 + #define SRST_CAN3 110 122 + #define SRST_P_SARADC 111 123 + #define SRST_SARADC 112 124 + #define SRST_SARADC_PHY 113 125 + #define SRST_P_TSADC 114 126 + #define SRST_TSADC 115 127 + #define SRST_A_USB3OTG 116 128 + #define SRST_A_GPU_BIU 117 129 + #define SRST_P_GPU_BIU 118 130 + #define SRST_A_GPU 119 131 + #define SRST_REF_PVTPLL_GPU 120 132 + #define SRST_H_RKVENC_BIU 121 133 + #define SRST_A_RKVENC_BIU 122 134 + #define SRST_P_RKVENC_BIU 123 135 + #define SRST_H_RKVENC 124 136 + #define SRST_A_RKVENC 125 137 + #define SRST_CORE_RKVENC 126 138 + #define SRST_H_SAI_I2S1 127 139 + #define SRST_M_SAI_I2S1 128 140 + #define SRST_P_I2C1 129 141 + #define SRST_I2C1 130 142 + #define SRST_P_I2C0 131 143 + #define SRST_I2C0 132 144 + #define SRST_P_SPI0 133 145 + #define SRST_SPI0 134 146 + #define SRST_P_GPIO4 135 147 + #define SRST_DB_GPIO4 136 148 + #define SRST_P_RKVENC_IOC 137 149 + #define SRST_H_SPDIF 138 150 + #define SRST_M_SPDIF 139 151 + #define SRST_H_PDM 140 152 + #define SRST_M_PDM 141 153 + #define SRST_P_UART1 142 154 + #define SRST_S_UART1 143 155 + #define SRST_P_UART3 144 156 + #define SRST_S_UART3 145 157 + #define SRST_P_RKVENC_GRF 146 158 + #define SRST_P_CAN0 147 159 + #define SRST_CAN0 148 160 + #define SRST_P_CAN1 149 161 + #define SRST_CAN1 150 162 + #define SRST_A_VO_BIU 151 163 + #define SRST_H_VO_BIU 152 164 + #define SRST_P_VO_BIU 153 165 + #define SRST_H_RGA2E 154 166 + #define SRST_A_RGA2E 155 167 + #define SRST_CORE_RGA2E 156 168 + #define SRST_H_VDPP 157 169 + #define SRST_A_VDPP 158 170 + #define SRST_CORE_VDPP 159 171 + #define SRST_P_VO_GRF 160 172 + #define SRST_P_CRU 161 173 + #define SRST_A_VOP_BIU 162 174 + #define SRST_H_VOP 163 175 + #define SRST_D_VOP0 164 176 + #define SRST_D_VOP1 165 177 + #define SRST_A_VOP 166 178 + #define SRST_P_HDMI 167 179 + #define SRST_HDMI 168 180 + #define SRST_P_HDMIPHY 169 181 + #define SRST_H_HDCP_KEY 170 182 + #define SRST_A_HDCP 171 183 + #define SRST_H_HDCP 172 184 + #define SRST_P_HDCP 173 185 + #define SRST_H_CVBS 174 186 + #define SRST_D_CVBS_VOP 175 187 + #define SRST_D_4X_CVBS_VOP 176 188 + #define SRST_A_JPEG_DECODER 177 189 + #define SRST_H_JPEG_DECODER 178 190 + #define SRST_A_VO_L_BIU 179 191 + #define SRST_A_MAC_VO 180 192 + #define SRST_A_JPEG_BIU 181 193 + #define SRST_H_SAI_I2S3 182 194 + #define SRST_M_SAI_I2S3 183 195 + #define SRST_MACPHY 184 196 + #define SRST_P_VCDCPHY 185 197 + #define SRST_P_GPIO2 186 198 + #define SRST_DB_GPIO2 187 199 + #define SRST_P_VO_IOC 188 200 + #define SRST_H_SDMMC0 189 201 + #define SRST_P_OTPC_NS 190 202 + #define SRST_SBPI_OTPC_NS 191 203 + #define SRST_USER_OTPC_NS 192 204 + #define SRST_HDMIHDP0 193 205 + #define SRST_H_USBHOST 194 206 + #define SRST_H_USBHOST_ARB 195 207 + #define SRST_HOST_UTMI 196 208 + #define SRST_P_UART4 197 209 + #define SRST_S_UART4 198 210 + #define SRST_P_I2C4 199 211 + #define SRST_I2C4 200 212 + #define SRST_P_I2C7 201 213 + #define SRST_I2C7 202 214 + #define SRST_P_USBPHY 203 215 + #define SRST_USBPHY_POR 204 216 + #define SRST_USBPHY_OTG 205 217 + #define SRST_USBPHY_HOST 206 218 + #define SRST_P_DDRPHY_CRU 207 219 + #define SRST_H_RKVDEC_BIU 208 220 + #define SRST_A_RKVDEC_BIU 209 221 + #define SRST_A_RKVDEC 210 222 + #define SRST_H_RKVDEC 211 223 + #define SRST_HEVC_CA_RKVDEC 212 224 + #define SRST_REF_PVTPLL_RKVDEC 213 225 + #define SRST_P_DDR_BIU 214 226 + #define SRST_P_DDRC 215 227 + #define SRST_P_DDRMON 216 228 + #define SRST_TIMER_DDRMON 217 229 + #define SRST_P_MSCH_BIU 218 230 + #define SRST_P_DDR_GRF 219 231 + #define SRST_P_DDR_HWLP 220 232 + #define SRST_P_DDRPHY 221 233 + #define SRST_MSCH_BIU 222 234 + #define SRST_A_DDR_UPCTL 223 235 + #define SRST_DDR_UPCTL 224 236 + #define SRST_DDRMON 225 237 + #define SRST_A_DDR_SCRAMBLE 226 238 + #define SRST_A_SPLIT 227 239 + #define SRST_DDR_PHY 228 240 + 241 + #endif // _DT_BINDINGS_RESET_ROCKCHIP_RK3528_H