kernel: bump 5.4 to 5.4.140
[openwrt/openwrt.git] / package / boot / uboot-rockchip / patches / 102-arm64-rk3399-Add-support-NanoPi-R4s.patch
1 From b69b9f3f54732c303939eb748aad97cd4cf60168 Mon Sep 17 00:00:00 2001
2 From: Xiaobo Tian <peterwillcn@gmail.com>
3 Date: Sat, 27 Feb 2021 22:39:11 +0800
4 Subject: [PATCH] arm64: rk3399: Add support NanoPi R4s
5
6 NanoPi R4s is SBC base on Rockchip RK3399 hexa-core processor with
7 dual-Core Cortex-A72 and Mali-T864 GPU with 4GiB(LPDDR4) of RAM, SD card support,
8 including 2 gigabit ethernet(RTL8211E 1Gbps - RTL8111H 1Gbps) and 2 USB 3.0 port.
9 port.It also has two GPIO headers which allows further peripherals to be used.
10
11 The devicetree file is taken of the rk3399 nanopi4 Linux kernel [1].
12
13 [1] https://github.com/torvalds/linux/commit/e7a095908227fb3ccc86d001d9e13c9ae2bef8e6
14
15 Signed-off-by: xiaobo <peterwillcn@gmail.com>
16 Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
17 ---
18 arch/arm/dts/Makefile | 1 +
19 arch/arm/dts/rk3399-nanopi-r4s-u-boot.dtsi | 16 +++
20 arch/arm/dts/rk3399-nanopi-r4s.dts | 138 +++++++++++++++++++++
21 board/rockchip/evb_rk3399/MAINTAINERS | 6 +
22 configs/nanopi-r4s-rk3399_defconfig | 62 +++++++++
23 5 files changed, 223 insertions(+)
24 create mode 100644 arch/arm/dts/rk3399-nanopi-r4s-u-boot.dtsi
25 create mode 100644 arch/arm/dts/rk3399-nanopi-r4s.dts
26 create mode 100644 configs/nanopi-r4s-rk3399_defconfig
27
28 diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
29 index dd4d4efed31..0a139473811 100644
30 --- a/arch/arm/dts/Makefile
31 +++ b/arch/arm/dts/Makefile
32 @@ -132,6 +132,7 @@ dtb-$(CONFIG_ROCKCHIP_RK3399) += \
33 rk3399-nanopi-m4.dtb \
34 rk3399-nanopi-m4-2gb.dtb \
35 rk3399-nanopi-neo4.dtb \
36 + rk3399-nanopi-r4s.dtb \
37 rk3399-orangepi.dtb \
38 rk3399-pinebook-pro.dtb \
39 rk3399-puma-haikou.dtb \
40 diff --git a/arch/arm/dts/rk3399-nanopi-r4s-u-boot.dtsi b/arch/arm/dts/rk3399-nanopi-r4s-u-boot.dtsi
41 new file mode 100644
42 index 00000000000..cd1642527ba
43 --- /dev/null
44 +++ b/arch/arm/dts/rk3399-nanopi-r4s-u-boot.dtsi
45 @@ -0,0 +1,16 @@
46 +// SPDX-License-Identifier: GPL-2.0+
47 +/*
48 + * RK3399-based FriendlyElec boards device tree source
49 + *
50 + * Copyright (c) 2016 Fuzhou Rockchip Electronics Co., Ltd
51 + *
52 + * Copyright (c) 2018 FriendlyElec Computer Tech. Co., Ltd.
53 + * (http://www.friendlyarm.com)
54 + *
55 + * Copyright (c) 2018 Collabora Ltd.
56 + * Copyright (c) 2019 Arm Ltd.
57 + * Copyright (C) 2020 Xiaobo <peterwillcn@gmail.com>
58 + */
59 +
60 +#include "rk3399-nanopi4-u-boot.dtsi"
61 +#include "rk3399-sdram-lpddr4-100.dtsi"
62 diff --git a/arch/arm/dts/rk3399-nanopi-r4s.dts b/arch/arm/dts/rk3399-nanopi-r4s.dts
63 new file mode 100644
64 index 00000000000..6f2cf17bf1b
65 --- /dev/null
66 +++ b/arch/arm/dts/rk3399-nanopi-r4s.dts
67 @@ -0,0 +1,138 @@
68 +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
69 +/*
70 + * Copyright (c) 2016 Fuzhou Rockchip Electronics Co., Ltd
71 + *
72 + * Copyright (c) 2018 FriendlyElec Computer Tech. Co., Ltd.
73 + * (http://www.friendlyarm.com)
74 + *
75 + * Copyright (c) 2018 Collabora Ltd.
76 + * Copyright (c) 2019 Arm Ltd.
77 + * Copyright (C) 2020 Xiaobo <peterwillcn@gmail.com>
78 + */
79 +
80 +/dts-v1/;
81 +#include "rk3399-nanopi4.dtsi"
82 +
83 +/ {
84 + model = "FriendlyElec NanoPi R4S";
85 + compatible = "friendlyarm,nanopi-r4s", "rockchip,rk3399";
86 +
87 + aliases {
88 + ethernet1 = &r8169;
89 + };
90 +
91 + vdd_5v: vdd-5v {
92 + compatible = "regulator-fixed";
93 + regulator-name = "vdd_5v";
94 + regulator-always-on;
95 + regulator-boot-on;
96 + };
97 +
98 + fan: pwm-fan {
99 + compatible = "pwm-fan";
100 + cooling-levels = <0 12 18 255>;
101 + #cooling-cells = <2>;
102 + fan-supply = <&vdd_5v>;
103 + pwms = <&pwm1 0 50000 0>;
104 + };
105 +};
106 +
107 +&cpu_thermal {
108 + trips {
109 + cpu_warm: cpu_warm {
110 + temperature = <55000>;
111 + hysteresis = <2000>;
112 + type = "active";
113 + };
114 +
115 + cpu_hot: cpu_hot {
116 + temperature = <65000>;
117 + hysteresis = <2000>;
118 + type = "active";
119 + };
120 + };
121 +
122 + cooling-maps {
123 + map2 {
124 + trip = <&cpu_warm>;
125 + cooling-device = <&fan THERMAL_NO_LIMIT 1>;
126 + };
127 +
128 + map3 {
129 + trip = <&cpu_hot>;
130 + cooling-device = <&fan 2 THERMAL_NO_LIMIT>;
131 + };
132 + };
133 +};
134 +
135 +&emmc_phy {
136 + status = "disabled";
137 +};
138 +
139 +&fusb0 {
140 + status = "disabled";
141 +};
142 +
143 +&leds {
144 + lan_led: led-1 {
145 + gpios = <&gpio1 RK_PA1 GPIO_ACTIVE_HIGH>;
146 + label = "nanopi-r4s:green:lan";
147 + };
148 +
149 + wan_led: led-2 {
150 + gpios = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;
151 + label = "nanopi-r4s:green:wan";
152 + };
153 +};
154 +
155 +&leds_gpio {
156 + rockchip,pins =
157 + <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>,
158 + <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>,
159 + <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
160 +};
161 +
162 +&pcie0 {
163 + max-link-speed = <1>;
164 + num-lanes = <1>;
165 + vpcie3v3-supply = <&vcc3v3_sys>;
166 +
167 + pcie@0 {
168 + reg = <0x00000000 0 0 0 0>;
169 + #address-cells = <3>;
170 + #size-cells = <2>;
171 +
172 + r8169: pcie@0,0 {
173 + reg = <0x000000 0 0 0 0>;
174 + local-mac-address = [ 00 00 00 00 00 00 ];
175 + };
176 + };
177 +};
178 +
179 +&sdhci {
180 + status = "disabled";
181 +};
182 +
183 +&sdio0 {
184 + status = "disabled";
185 +};
186 +
187 +&sdmmc {
188 + host-index-min = <1>;
189 +};
190 +
191 +&u2phy0_host {
192 + phy-supply = <&vdd_5v>;
193 +};
194 +
195 +&u2phy1_host {
196 + status = "disabled";
197 +};
198 +
199 +&usbdrd_dwc3_0 {
200 + dr_mode = "host";
201 +};
202 +
203 +&vcc3v3_sys {
204 + vin-supply = <&vcc5v0_sys>;
205 +};
206 diff --git a/board/rockchip/evb_rk3399/MAINTAINERS b/board/rockchip/evb_rk3399/MAINTAINERS
207 index 4c889e06a63..3b9d60eccd4 100644
208 --- a/board/rockchip/evb_rk3399/MAINTAINERS
209 +++ b/board/rockchip/evb_rk3399/MAINTAINERS
210 @@ -55,6 +55,12 @@ S: Maintained
211 F: configs/nanopi-neo4-rk3399_defconfig
212 F: arch/arm/dts/rk3399-nanopi-neo4-u-boot.dtsi
213
214 +NANOPI-R4S
215 +M: Xiaobo Tian <peterwillcn@gmail.com>
216 +S: Maintained
217 +F: configs/nanopi-r4s-rk3399_defconfig
218 +F: arch/arm/dts/rk3399-nanopi-r4s-u-boot.dtsi
219 +
220 ORANGEPI-RK3399
221 M: Jagan Teki <jagan@amarulasolutions.com>
222 S: Maintained
223 diff --git a/configs/nanopi-r4s-rk3399_defconfig b/configs/nanopi-r4s-rk3399_defconfig
224 new file mode 100644
225 index 00000000000..0a3c28b0126
226 --- /dev/null
227 +++ b/configs/nanopi-r4s-rk3399_defconfig
228 @@ -0,0 +1,62 @@
229 +CONFIG_ARM=y
230 +CONFIG_ARCH_ROCKCHIP=y
231 +CONFIG_SYS_TEXT_BASE=0x00200000
232 +CONFIG_ENV_OFFSET=0x3F8000
233 +CONFIG_ROCKCHIP_RK3399=y
234 +CONFIG_TARGET_EVB_RK3399=y
235 +CONFIG_NR_DRAM_BANKS=1
236 +CONFIG_DEBUG_UART_BASE=0xFF1A0000
237 +CONFIG_DEBUG_UART_CLOCK=24000000
238 +CONFIG_DEBUG_UART=y
239 +CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-nanopi-r4s.dtb"
240 +CONFIG_DISPLAY_BOARDINFO_LATE=y
241 +# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
242 +CONFIG_SPL_STACK_R=y
243 +CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x10000
244 +CONFIG_TPL=y
245 +CONFIG_CMD_BOOTZ=y
246 +CONFIG_CMD_GPT=y
247 +CONFIG_CMD_MMC=y
248 +CONFIG_CMD_USB=y
249 +# CONFIG_CMD_SETEXPR is not set
250 +CONFIG_CMD_TIME=y
251 +CONFIG_SPL_OF_CONTROL=y
252 +CONFIG_DEFAULT_DEVICE_TREE="rk3399-nanopi-r4s"
253 +CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
254 +CONFIG_ENV_IS_IN_MMC=y
255 +CONFIG_SYS_RELOC_GD_ENV_ADDR=y
256 +CONFIG_ROCKCHIP_GPIO=y
257 +CONFIG_SYS_I2C_ROCKCHIP=y
258 +CONFIG_MMC_DW=y
259 +CONFIG_MMC_DW_ROCKCHIP=y
260 +CONFIG_MMC_SDHCI=y
261 +CONFIG_MMC_SDHCI_ROCKCHIP=y
262 +CONFIG_DM_ETH=y
263 +CONFIG_ETH_DESIGNWARE=y
264 +CONFIG_GMAC_ROCKCHIP=y
265 +CONFIG_PMIC_RK8XX=y
266 +CONFIG_REGULATOR_PWM=y
267 +CONFIG_REGULATOR_RK8XX=y
268 +CONFIG_PWM_ROCKCHIP=y
269 +CONFIG_RAM_RK3399_LPDDR4=y
270 +CONFIG_BAUDRATE=1500000
271 +CONFIG_DEBUG_UART_SHIFT=2
272 +CONFIG_SYSRESET=y
273 +CONFIG_USB=y
274 +CONFIG_USB_XHCI_HCD=y
275 +CONFIG_USB_XHCI_DWC3=y
276 +CONFIG_USB_EHCI_HCD=y
277 +CONFIG_USB_EHCI_GENERIC=y
278 +CONFIG_USB_KEYBOARD=y
279 +CONFIG_USB_HOST_ETHER=y
280 +CONFIG_USB_ETHER_ASIX=y
281 +CONFIG_USB_ETHER_ASIX88179=y
282 +CONFIG_USB_ETHER_MCS7830=y
283 +CONFIG_USB_ETHER_RTL8152=y
284 +CONFIG_USB_ETHER_SMSC95XX=y
285 +CONFIG_DM_VIDEO=y
286 +CONFIG_DISPLAY=y
287 +CONFIG_VIDEO_ROCKCHIP=y
288 +CONFIG_DISPLAY_ROCKCHIP_HDMI=y
289 +CONFIG_SPL_TINY_MEMSET=y
290 +CONFIG_ERRNO_STR=y