diff --git a/config/boards/nanopim4v2.wip b/config/boards/nanopim4v2.wip new file mode 100644 index 000000000..9c4a8ebf0 --- /dev/null +++ b/config/boards/nanopim4v2.wip @@ -0,0 +1,8 @@ +# RK3399 hexa core 4GB RAM SoC GBE eMMC USB3 USB-C WiFi/BT +BOARD_NAME="NanoPi M4V2" +BOARDFAMILY="rk3399" +BOOTCONFIG="nanopi-m4v2-rk3399_defconfig" +MODULES="" +MODULES_NEXT="" +KERNEL_TARGET="default,current,dev" +FULL_DESKTOP="yes" diff --git a/config/kernel/linux-rockchip64-current.config b/config/kernel/linux-rockchip64-current.config index 65dff9610..e66dbbf38 100644 --- a/config/kernel/linux-rockchip64-current.config +++ b/config/kernel/linux-rockchip64-current.config @@ -4801,6 +4801,7 @@ CONFIG_SND_SOC_ROCKCHIP_PDM=y CONFIG_SND_SOC_ROCKCHIP_SPDIF=y CONFIG_SND_SOC_ROCKCHIP_MAX98090=y CONFIG_SND_SOC_ROCKCHIP_RT5645=y +CONFIG_SND_SOC_ROCKCHIP_RT5651=y CONFIG_SND_SOC_RK3288_HDMI_ANALOG=y CONFIG_SND_SOC_RK3399_GRU_SOUND=y # CONFIG_SND_SOC_SOF_TOPLEVEL is not set @@ -4898,6 +4899,7 @@ CONFIG_SND_SOC_RT5514_SPI=y # CONFIG_SND_SOC_RT5616 is not set # CONFIG_SND_SOC_RT5631 is not set CONFIG_SND_SOC_RT5645=y +CONFIG_SND_SOC_RT5651=y # CONFIG_SND_SOC_SGTL5000 is not set CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m # CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set diff --git a/config/kernel/linux-rockchip64-dev.config b/config/kernel/linux-rockchip64-dev.config index 7eeebbf85..61c3ffaad 100644 --- a/config/kernel/linux-rockchip64-dev.config +++ b/config/kernel/linux-rockchip64-dev.config @@ -4764,6 +4764,7 @@ CONFIG_SND_SOC_ROCKCHIP_PDM=y CONFIG_SND_SOC_ROCKCHIP_SPDIF=y CONFIG_SND_SOC_ROCKCHIP_MAX98090=y CONFIG_SND_SOC_ROCKCHIP_RT5645=y +CONFIG_SND_SOC_ROCKCHIP_RT5651=y CONFIG_SND_SOC_RK3288_HDMI_ANALOG=y CONFIG_SND_SOC_RK3399_GRU_SOUND=y # CONFIG_SND_SOC_SOF_TOPLEVEL is not set @@ -4861,6 +4862,7 @@ CONFIG_SND_SOC_RT5514_SPI=y # CONFIG_SND_SOC_RT5616 is not set # CONFIG_SND_SOC_RT5631 is not set CONFIG_SND_SOC_RT5645=y +CONFIG_SND_SOC_RT5651=y # CONFIG_SND_SOC_SGTL5000 is not set CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m # CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set diff --git a/config/sources/families/include/rockchip64_common.inc b/config/sources/families/include/rockchip64_common.inc index 2bc287d48..7a3539255 100644 --- a/config/sources/families/include/rockchip64_common.inc +++ b/config/sources/families/include/rockchip64_common.inc @@ -110,7 +110,7 @@ family_tweaks() [[ $BOARD == firefly-rk3399 ]] && echo "fdtfile=rockchip/rk3399-firefly.dtb" >> $SDCARD/boot/armbianEnv.txt [[ $BOARD == nanopct4 ]] && echo "fdtfile=rockchip/rk3399-nanopc-t4.dtb" >> $SDCARD/boot/armbianEnv.txt [[ $BOARD == nanopim4 ]] && echo "fdtfile=rockchip/rk3399-nanopi-m4.dtb" >> $SDCARD/boot/armbianEnv.txt - [[ $BOARD == nanopim4v2 ]] && echo "fdtfile=rockchip/rk3399-nanopi-m4.dtb" >> $SDCARD/boot/armbianEnv.txt + [[ $BOARD == nanopim4v2 ]] && echo "fdtfile=rockchip/rk3399-nanopi-m4v2.dtb" >> $SDCARD/boot/armbianEnv.txt [[ $BOARD == nanopineo4 ]] && echo "fdtfile=rockchip/rk3399-nanopi-neo4.dtb" >> $SDCARD/boot/armbianEnv.txt [[ $BOARD == orangepi-rk3399 ]] && echo "fdtfile=rockchip/rk3399-orangepi.dtb" >> $SDCARD/boot/armbianEnv.txt [[ $BOARD == roc-rk3399-pc ]] && echo "fdtfile=rockchip/rk3399-roc-pc.dtb" >> $SDCARD/boot/armbianEnv.txt @@ -129,6 +129,12 @@ family_tweaks() fi + if [[ $BOARD == nanopim4v2 ]]; then + mv $SDCARD/lib/firmware/brcm/brcmfmac4356-sdio.bin{,.bak} + ln -s brcmfmac4356-sdio-nanopi-m4v2.bin $SDCARD/lib/firmware/brcm/brcmfmac4356-sdio.bin + ln -s brcmfmac4356-sdio-nanopi-m4v2.txt $SDCARD/lib/firmware/brcm/brcmfmac4356-sdio.friendlyarm,nanopi-m4.txt + fi + } diff --git a/config/targets.conf b/config/targets.conf index d037bea6e..5ed1f1007 100644 --- a/config/targets.conf +++ b/config/targets.conf @@ -261,6 +261,15 @@ nanopim4 legacy bionic desktop stable yes nanopim4 current buster desktop stable yes nanopim4 dev buster minimal beta yes +# nanopim4v2 + +nanopim4v2 legacy buster cli stable yes +nanopim4v2 legacy buster desktop stable yes +nanopim4v2 legacy bionic desktop stable yes +nanopim4v2 current buster cli stable yes +nanopim4v2 current buster desktop stable yes +nanopim4v2 dev buster minimal beta yes + # nanopineo nanopineo current buster cli stable yes diff --git a/patch/kernel/rk3399-legacy/friendly-arm-modern-dts-links.patch b/patch/kernel/rk3399-legacy/friendly-arm-modern-dts-links.patch index b26365d73..dcc0be300 100644 --- a/patch/kernel/rk3399-legacy/friendly-arm-modern-dts-links.patch +++ b/patch/kernel/rk3399-legacy/friendly-arm-modern-dts-links.patch @@ -2,7 +2,7 @@ diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchi index ef29add7..135bd50c 100644 --- a/arch/arm64/boot/dts/rockchip/Makefile +++ b/arch/arm64/boot/dts/rockchip/Makefile -@@ -2,8 +2,11 @@ ifeq ($(CONFIG_MACH_NANOPI4),y) +@@ -2,11 +2,15 @@ ifeq ($(CONFIG_MACH_NANOPI4),y) dtb-$(CONFIG_ARCH_ROCKCHIP) += \ rk3399-nanopi4-rev00.dtb \ @@ -14,6 +14,10 @@ index ef29add7..135bd50c 100644 rk3399-nanopi4-rev06.dtb \ rk3399-nanopi4-rev07.dtb \ rk3399-nanopi4-rev21.dtb \ ++ rk3399-nanopi-m4v2.dtb \ + rk3399-nanopi4-rev22.dtb \ + rk3399-firefly.dtb + diff --git a/arch/arm64/boot/dts/rockchip/rk3399-nanopi-m4.dts b/arch/arm64/boot/dts/rockchip/rk3399-nanopi-m4.dts new file mode 120000 index 00000000..0136fb87 @@ -22,6 +26,14 @@ index 00000000..0136fb87 @@ -0,0 +1 @@ +rk3399-nanopi4-rev01.dts \ No newline at end of file +diff --git a/arch/arm64/boot/dts/rockchip/rk3399-nanopi-m4v2.dts b/arch/arm64/boot/dts/rockchip/rk3399-nanopi-m4v2.dts +new file mode 120000 +index 00000000..0136fb87 +--- /dev/null ++++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi-m4v2.dts +@@ -0,0 +1 @@ ++rk3399-nanopi4-rev21.dts +\ No newline at end of file diff --git a/arch/arm64/boot/dts/rockchip/rk3399-nanopi-neo4.dts b/arch/arm64/boot/dts/rockchip/rk3399-nanopi-neo4.dts new file mode 120000 index 00000000..6a321b23 diff --git a/patch/kernel/rockchip64-current/board-nanopi-m4v2-dts-add-sound-card.patch b/patch/kernel/rockchip64-current/board-nanopi-m4v2-dts-add-sound-card.patch new file mode 100644 index 000000000..066ee7f76 --- /dev/null +++ b/patch/kernel/rockchip64-current/board-nanopi-m4v2-dts-add-sound-card.patch @@ -0,0 +1,106 @@ +diff -u a/arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi +--- a/arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi 2019-10-17 23:47:33.000000000 +0300 ++++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi 2019-10-27 22:34:55.988303874 +0300 +@@ -105,6 +105,27 @@ + }; + }; + ++ rt5651-sound { ++ compatible = "simple-audio-card"; ++ simple-audio-card,name = "realtek,rt5651-codec"; ++ simple-audio-card,format = "i2s"; ++ simple-audio-card,mclk-fs = <256>; ++ simple-audio-card,widgets = ++ "Microphone", "Mic Jack", ++ "Headphone", "Headphone Jack"; ++ simple-audio-card,routing = ++ "Mic Jack", "micbias1", ++ "IN1P", "Mic Jack", ++ "Headphone Jack", "HPOL", ++ "Headphone Jack", "HPOR"; ++ simple-audio-card,cpu { ++ sound-dai = <&i2s1>; ++ }; ++ simple-audio-card,codec { ++ sound-dai = <&rt5651>; ++ }; ++ }; ++ + sdio_pwrseq: sdio-pwrseq { + compatible = "mmc-pwrseq-simple"; + clocks = <&rk808 1>; +@@ -184,6 +205,10 @@ + status = "okay"; + }; + ++&hdmi_sound { ++ status = "okay"; ++}; ++ + &i2c0 { + clock-frequency = <400000>; + i2c-scl-rising-time-ns = <160>; +@@ -432,6 +457,16 @@ + i2c-scl-rising-time-ns = <150>; + i2c-scl-falling-time-ns = <30>; + status = "okay"; ++ ++ rt5651: rt5651@1a { ++ compatible = "rockchip,rt5651"; ++ reg = <0x1a>; ++ clocks = <&cru SCLK_I2S_8CH_OUT>; ++ clock-names = "mclk"; ++ hp-det-gpio = <&gpio4 RK_PC4 GPIO_ACTIVE_LOW>; ++ // spk-con-gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>; ++ #sound-dai-cells = <0>; ++ }; + }; + + &i2c2 { +@@ -459,6 +494,16 @@ + status = "okay"; + }; + ++&i2s1 { ++ rockchip,playback-channels = <8>; ++ rockchip,capture-channels = <8>; ++ status = "okay"; ++}; ++ ++&i2s2 { ++ status = "okay"; ++}; ++ + &io_domains { + bt656-supply = <&vcc_1v8>; + audio-supply = <&vcca1v8_codec>; +@@ -724,3 +769,9 @@ + &vopl_mmu { + status = "okay"; + }; ++ ++&spdif { ++ i2c-scl-rising-time-ns = <450>; ++ i2c-scl-falling-time-ns = <15>; ++ status = "okay"; ++}; +diff --git a/sound/soc/rockchip/Kconfig b/sound/soc/rockchip/Kconfig +index b43657e6e..fb75c425e 100644 +--- a/sound/soc/rockchip/Kconfig ++++ b/sound/soc/rockchip/Kconfig +@@ -53,6 +53,15 @@ config SND_SOC_ROCKCHIP_RT5645 + Say Y or M here if you want to add support for SoC audio on Rockchip + boards using the RT5645/RT5650 codec, such as Veyron. + ++config SND_SOC_ROCKCHIP_RT5651 ++ tristate "ASoC support for Rockchip boards using a RT5651 codec" ++ depends on SND_SOC_ROCKCHIP && I2C && GPIOLIB && CLKDEV_LOOKUP ++ select SND_SOC_ROCKCHIP_I2S ++ select SND_SOC_RT5651 ++ help ++ Say Y or M here if you want to add support for SoC audio on Rockchip ++ boards using the RT5651 codec, such as FriendlyARM's Nano{Pi,PC} family. ++ + config SND_SOC_RK3288_HDMI_ANALOG + tristate "ASoC support multiple codecs for Rockchip RK3288 boards" + depends on SND_SOC_ROCKCHIP && I2C && GPIOLIB && CLKDEV_LOOKUP diff --git a/patch/kernel/rockchip64-current/board-nanopi-m4v2-dts.patch b/patch/kernel/rockchip64-current/board-nanopi-m4v2-dts.patch new file mode 100644 index 000000000..8339d3739 --- /dev/null +++ b/patch/kernel/rockchip64-current/board-nanopi-m4v2-dts.patch @@ -0,0 +1,20 @@ +diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile +index 948195b49..48dccb95e 100644 +--- a/arch/arm64/boot/dts/rockchip/Makefile ++++ b/arch/arm64/boot/dts/rockchip/Makefile +@@ -22,6 +22,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-khadas-edge-captain.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-khadas-edge-v.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopc-t4.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopi-m4.dtb ++dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopi-m4v2.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopi-neo4.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-orangepi.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-pinebook-pro.dtb +diff --git a/arch/arm64/boot/dts/rockchip/rk3399-nanopi-m4v2.dts b/arch/arm64/boot/dts/rockchip/rk3399-nanopi-m4v2.dts +new file mode 120000 +index 000000000..5c27e6fc3 +--- /dev/null ++++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi-m4v2.dts +@@ -0,0 +1 @@ ++rk3399-nanopi-m4.dts +\ No newline at end of file diff --git a/patch/kernel/rockchip64-current/xxx-add-symlink-to-old-dtb-names-for-nanopi-and-nanopc.patch b/patch/kernel/rockchip64-current/xxx-add-symlink-to-old-dtb-names-for-nanopi-and-nanopc.patch deleted file mode 100644 index 75538420a..000000000 --- a/patch/kernel/rockchip64-current/xxx-add-symlink-to-old-dtb-names-for-nanopi-and-nanopc.patch +++ /dev/null @@ -1,40 +0,0 @@ -diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile -index 83f38b8de5b5..3f2911dd853c 100644 ---- a/arch/arm64/boot/dts/rockchip/Makefile -+++ b/arch/arm64/boot/dts/rockchip/Makefile -@@ -21,8 +21,11 @@ - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-khadas-edge-captain.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-khadas-edge-v.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopc-t4.dtb -+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopi4-rev00.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopi-m4.dtb -+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopi4-rev01.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopi-neo4.dtb -+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopi4-rev04.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-orangepi.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-pinebook-pro.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-orangepi.dtb -diff --git a/arch/arm64/boot/dts/rockchip/rk3399-nanopi4-rev00.dts b/arch/arm64/boot/dts/rockchip/rk3399-nanopi4-rev00.dts -new file mode 120000 -index 000000000000..123de3c9ba4f ---- /dev/null -+++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi4-rev00.dts -@@ -0,0 +1 @@ -+rk3399-nanopc-t4.dts -\ No newline at end of file -diff --git a/arch/arm64/boot/dts/rockchip/rk3399-nanopi4-rev01.dts b/arch/arm64/boot/dts/rockchip/rk3399-nanopi4-rev01.dts -new file mode 120000 -index 000000000000..5c27e6fc3f38 ---- /dev/null -+++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi4-rev01.dts -@@ -0,0 +1 @@ -+rk3399-nanopi-m4.dts -\ No newline at end of file -diff --git a/arch/arm64/boot/dts/rockchip/rk3399-nanopi4-rev04.dts b/arch/arm64/boot/dts/rockchip/rk3399-nanopi4-rev04.dts -new file mode 120000 -index 000000000..7e68398b4 ---- /dev/null -+++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi4-rev04.dts -@@ -0,0 +1 @@ -+rk3399-nanopi-neo4.dts -\ No newline at end of file diff --git a/patch/kernel/rockchip64-dev/board-nanopi-m4v2-dts-add-sound-card.patch b/patch/kernel/rockchip64-dev/board-nanopi-m4v2-dts-add-sound-card.patch new file mode 100644 index 000000000..066ee7f76 --- /dev/null +++ b/patch/kernel/rockchip64-dev/board-nanopi-m4v2-dts-add-sound-card.patch @@ -0,0 +1,106 @@ +diff -u a/arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi +--- a/arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi 2019-10-17 23:47:33.000000000 +0300 ++++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi 2019-10-27 22:34:55.988303874 +0300 +@@ -105,6 +105,27 @@ + }; + }; + ++ rt5651-sound { ++ compatible = "simple-audio-card"; ++ simple-audio-card,name = "realtek,rt5651-codec"; ++ simple-audio-card,format = "i2s"; ++ simple-audio-card,mclk-fs = <256>; ++ simple-audio-card,widgets = ++ "Microphone", "Mic Jack", ++ "Headphone", "Headphone Jack"; ++ simple-audio-card,routing = ++ "Mic Jack", "micbias1", ++ "IN1P", "Mic Jack", ++ "Headphone Jack", "HPOL", ++ "Headphone Jack", "HPOR"; ++ simple-audio-card,cpu { ++ sound-dai = <&i2s1>; ++ }; ++ simple-audio-card,codec { ++ sound-dai = <&rt5651>; ++ }; ++ }; ++ + sdio_pwrseq: sdio-pwrseq { + compatible = "mmc-pwrseq-simple"; + clocks = <&rk808 1>; +@@ -184,6 +205,10 @@ + status = "okay"; + }; + ++&hdmi_sound { ++ status = "okay"; ++}; ++ + &i2c0 { + clock-frequency = <400000>; + i2c-scl-rising-time-ns = <160>; +@@ -432,6 +457,16 @@ + i2c-scl-rising-time-ns = <150>; + i2c-scl-falling-time-ns = <30>; + status = "okay"; ++ ++ rt5651: rt5651@1a { ++ compatible = "rockchip,rt5651"; ++ reg = <0x1a>; ++ clocks = <&cru SCLK_I2S_8CH_OUT>; ++ clock-names = "mclk"; ++ hp-det-gpio = <&gpio4 RK_PC4 GPIO_ACTIVE_LOW>; ++ // spk-con-gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>; ++ #sound-dai-cells = <0>; ++ }; + }; + + &i2c2 { +@@ -459,6 +494,16 @@ + status = "okay"; + }; + ++&i2s1 { ++ rockchip,playback-channels = <8>; ++ rockchip,capture-channels = <8>; ++ status = "okay"; ++}; ++ ++&i2s2 { ++ status = "okay"; ++}; ++ + &io_domains { + bt656-supply = <&vcc_1v8>; + audio-supply = <&vcca1v8_codec>; +@@ -724,3 +769,9 @@ + &vopl_mmu { + status = "okay"; + }; ++ ++&spdif { ++ i2c-scl-rising-time-ns = <450>; ++ i2c-scl-falling-time-ns = <15>; ++ status = "okay"; ++}; +diff --git a/sound/soc/rockchip/Kconfig b/sound/soc/rockchip/Kconfig +index b43657e6e..fb75c425e 100644 +--- a/sound/soc/rockchip/Kconfig ++++ b/sound/soc/rockchip/Kconfig +@@ -53,6 +53,15 @@ config SND_SOC_ROCKCHIP_RT5645 + Say Y or M here if you want to add support for SoC audio on Rockchip + boards using the RT5645/RT5650 codec, such as Veyron. + ++config SND_SOC_ROCKCHIP_RT5651 ++ tristate "ASoC support for Rockchip boards using a RT5651 codec" ++ depends on SND_SOC_ROCKCHIP && I2C && GPIOLIB && CLKDEV_LOOKUP ++ select SND_SOC_ROCKCHIP_I2S ++ select SND_SOC_RT5651 ++ help ++ Say Y or M here if you want to add support for SoC audio on Rockchip ++ boards using the RT5651 codec, such as FriendlyARM's Nano{Pi,PC} family. ++ + config SND_SOC_RK3288_HDMI_ANALOG + tristate "ASoC support multiple codecs for Rockchip RK3288 boards" + depends on SND_SOC_ROCKCHIP && I2C && GPIOLIB && CLKDEV_LOOKUP diff --git a/patch/kernel/rockchip64-dev/board-nanopi-m4v2-dts.patch b/patch/kernel/rockchip64-dev/board-nanopi-m4v2-dts.patch new file mode 100644 index 000000000..8339d3739 --- /dev/null +++ b/patch/kernel/rockchip64-dev/board-nanopi-m4v2-dts.patch @@ -0,0 +1,20 @@ +diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile +index 948195b49..48dccb95e 100644 +--- a/arch/arm64/boot/dts/rockchip/Makefile ++++ b/arch/arm64/boot/dts/rockchip/Makefile +@@ -22,6 +22,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-khadas-edge-captain.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-khadas-edge-v.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopc-t4.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopi-m4.dtb ++dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopi-m4v2.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopi-neo4.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-orangepi.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-pinebook-pro.dtb +diff --git a/arch/arm64/boot/dts/rockchip/rk3399-nanopi-m4v2.dts b/arch/arm64/boot/dts/rockchip/rk3399-nanopi-m4v2.dts +new file mode 120000 +index 000000000..5c27e6fc3 +--- /dev/null ++++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi-m4v2.dts +@@ -0,0 +1 @@ ++rk3399-nanopi-m4.dts +\ No newline at end of file diff --git a/patch/kernel/rockchip64-dev/xxx-add-symlink-to-old-dtb-names-for-nanopi-and-nanopc.patch b/patch/kernel/rockchip64-dev/xxx-add-symlink-to-old-dtb-names-for-nanopi-and-nanopc.patch deleted file mode 100644 index 75538420a..000000000 --- a/patch/kernel/rockchip64-dev/xxx-add-symlink-to-old-dtb-names-for-nanopi-and-nanopc.patch +++ /dev/null @@ -1,40 +0,0 @@ -diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile -index 83f38b8de5b5..3f2911dd853c 100644 ---- a/arch/arm64/boot/dts/rockchip/Makefile -+++ b/arch/arm64/boot/dts/rockchip/Makefile -@@ -21,8 +21,11 @@ - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-khadas-edge-captain.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-khadas-edge-v.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopc-t4.dtb -+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopi4-rev00.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopi-m4.dtb -+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopi4-rev01.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopi-neo4.dtb -+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopi4-rev04.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-orangepi.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-pinebook-pro.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-orangepi.dtb -diff --git a/arch/arm64/boot/dts/rockchip/rk3399-nanopi4-rev00.dts b/arch/arm64/boot/dts/rockchip/rk3399-nanopi4-rev00.dts -new file mode 120000 -index 000000000000..123de3c9ba4f ---- /dev/null -+++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi4-rev00.dts -@@ -0,0 +1 @@ -+rk3399-nanopc-t4.dts -\ No newline at end of file -diff --git a/arch/arm64/boot/dts/rockchip/rk3399-nanopi4-rev01.dts b/arch/arm64/boot/dts/rockchip/rk3399-nanopi4-rev01.dts -new file mode 120000 -index 000000000000..5c27e6fc3f38 ---- /dev/null -+++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi4-rev01.dts -@@ -0,0 +1 @@ -+rk3399-nanopi-m4.dts -\ No newline at end of file -diff --git a/arch/arm64/boot/dts/rockchip/rk3399-nanopi4-rev04.dts b/arch/arm64/boot/dts/rockchip/rk3399-nanopi4-rev04.dts -new file mode 120000 -index 000000000..7e68398b4 ---- /dev/null -+++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi4-rev04.dts -@@ -0,0 +1 @@ -+rk3399-nanopi-neo4.dts -\ No newline at end of file diff --git a/patch/u-boot/u-boot-rk3399/add-board-nanopi-m4v2.patch b/patch/u-boot/u-boot-rk3399/add-board-nanopi-m4v2.patch new file mode 100644 index 000000000..dbfb02ee8 --- /dev/null +++ b/patch/u-boot/u-boot-rk3399/add-board-nanopi-m4v2.patch @@ -0,0 +1,176 @@ +diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile +index 62da168e..efba2231 100644 +--- a/arch/arm/dts/Makefile ++++ b/arch/arm/dts/Makefile +@@ -113,6 +113,7 @@ dtb-$(CONFIG_ROCKCHIP_RK3399) += \ + rk3399-khadas-edge-v.dtb \ + rk3399-nanopc-t4.dtb \ + rk3399-nanopi-m4.dtb \ ++ rk3399-nanopi-m4v2.dtb \ + rk3399-nanopi-neo4.dtb \ + rk3399-orangepi.dtb \ + rk3399-puma-ddr1333.dtb \ +diff --git a/arch/arm/dts/rk3399-nanopi-m4v2-u-boot.dtsi b/arch/arm/dts/rk3399-nanopi-m4v2-u-boot.dtsi +new file mode 100644 +index 00000000..5bd86966 +--- /dev/null ++++ b/arch/arm/dts/rk3399-nanopi-m4v2-u-boot.dtsi +@@ -0,0 +1,17 @@ ++// SPDX-License-Identifier: GPL-2.0+ ++/* ++ * Copyright (C) 2019 Jagan Teki ++ */ ++ ++#include "rk3399-nanopi4-u-boot.dtsi" ++#include "rk3399-sdram-lpddr4-100.dtsi" ++ ++/ { ++ chosen { ++ u-boot,spl-boot-order = &sdmmc, &sdhci; ++ }; ++}; ++ ++&sdio0 { ++ status = "disabled"; ++}; +diff --git a/arch/arm/dts/rk3399-nanopi-m4v2.dts b/arch/arm/dts/rk3399-nanopi-m4v2.dts +new file mode 100644 +index 00000000..60358ab8 +--- /dev/null ++++ b/arch/arm/dts/rk3399-nanopi-m4v2.dts +@@ -0,0 +1,66 @@ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++/* ++ * FriendlyElec NanoPi M4 board device tree source ++ * ++ * Copyright (c) 2018 FriendlyElec Computer Tech. Co., Ltd. ++ * (http://www.friendlyarm.com) ++ * ++ * Copyright (c) 2018 Collabora Ltd. ++ * Copyright (c) 2019 Arm Ltd. ++ */ ++ ++/dts-v1/; ++#include "rk3399-nanopi4.dtsi" ++ ++/ { ++ model = "FriendlyElec NanoPi M4V2"; ++ compatible = "friendlyarm,nanopi-m4", "rockchip,rk3399"; ++ ++ vdd_5v: vdd-5v { ++ compatible = "regulator-fixed"; ++ regulator-name = "vdd_5v"; ++ regulator-always-on; ++ regulator-boot-on; ++ }; ++ ++ vcc5v0_core: vcc5v0-core { ++ compatible = "regulator-fixed"; ++ regulator-name = "vcc5v0_core"; ++ regulator-always-on; ++ regulator-boot-on; ++ vin-supply = <&vdd_5v>; ++ }; ++ ++ vcc5v0_usb1: vcc5v0-usb1 { ++ compatible = "regulator-fixed"; ++ regulator-name = "vcc5v0_usb1"; ++ regulator-always-on; ++ regulator-boot-on; ++ vin-supply = <&vcc5v0_sys>; ++ }; ++ ++ vcc5v0_usb2: vcc5v0-usb2 { ++ compatible = "regulator-fixed"; ++ regulator-name = "vcc5v0_usb2"; ++ regulator-always-on; ++ regulator-boot-on; ++ vin-supply = <&vcc5v0_sys>; ++ }; ++}; ++ ++&vcc3v3_sys { ++ vin-supply = <&vcc5v0_core>; ++}; ++ ++&u2phy0_host { ++ phy-supply = <&vcc5v0_usb1>; ++}; ++ ++&u2phy1_host { ++ phy-supply = <&vcc5v0_usb2>; ++}; ++ ++&vbus_typec { ++ regulator-always-on; ++ vin-supply = <&vdd_5v>; ++}; +diff --git a/configs/nanopi-m4v2-rk3399_defconfig b/configs/nanopi-m4v2-rk3399_defconfig +new file mode 100644 +index 00000000..ff4d32e2 +--- /dev/null ++++ b/configs/nanopi-m4v2-rk3399_defconfig +@@ -0,0 +1,63 @@ ++CONFIG_ARM=y ++CONFIG_ARCH_ROCKCHIP=y ++CONFIG_SYS_TEXT_BASE=0x00200000 ++CONFIG_ROCKCHIP_RK3399=y ++CONFIG_NR_DRAM_BANKS=1 ++CONFIG_DEBUG_UART_BASE=0xFF1A0000 ++CONFIG_DEBUG_UART_CLOCK=24000000 ++CONFIG_DEBUG_UART=y ++CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-nanopi-m4.dtb" ++CONFIG_MISC_INIT_R=y ++# CONFIG_DISPLAY_CPUINFO is not set ++CONFIG_DISPLAY_BOARDINFO_LATE=y ++# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set ++CONFIG_SPL_STACK_R=y ++CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x10000 ++CONFIG_TPL=y ++CONFIG_CMD_BOOTZ=y ++CONFIG_CMD_GPT=y ++CONFIG_CMD_MMC=y ++CONFIG_CMD_SF=y ++CONFIG_CMD_USB=y ++# CONFIG_CMD_SETEXPR is not set ++CONFIG_CMD_TIME=y ++CONFIG_SPL_OF_CONTROL=y ++CONFIG_DEFAULT_DEVICE_TREE="rk3399-nanopi-m4v2" ++CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents" ++CONFIG_ENV_IS_IN_MMC=y ++CONFIG_ROCKCHIP_GPIO=y ++CONFIG_SYS_I2C_ROCKCHIP=y ++CONFIG_MMC_DW=y ++CONFIG_MMC_DW_ROCKCHIP=y ++CONFIG_MMC_SDHCI=y ++CONFIG_MMC_SDHCI_ROCKCHIP=y ++CONFIG_DM_ETH=y ++CONFIG_ETH_DESIGNWARE=y ++CONFIG_GMAC_ROCKCHIP=y ++CONFIG_PMIC_RK8XX=y ++CONFIG_REGULATOR_PWM=y ++CONFIG_REGULATOR_RK8XX=y ++CONFIG_PWM_ROCKCHIP=y ++CONFIG_RAM_RK3399_LPDDR4=y ++CONFIG_BAUDRATE=1500000 ++CONFIG_DEBUG_UART_SHIFT=2 ++CONFIG_SYSRESET=y ++CONFIG_USB=y ++CONFIG_USB_XHCI_HCD=y ++CONFIG_USB_XHCI_DWC3=y ++CONFIG_USB_EHCI_HCD=y ++CONFIG_USB_EHCI_GENERIC=y ++CONFIG_USB_HOST_ETHER=y ++CONFIG_USB_ETHER_ASIX=y ++CONFIG_USB_ETHER_ASIX88179=y ++CONFIG_USB_ETHER_MCS7830=y ++CONFIG_USB_ETHER_RTL8152=y ++CONFIG_USB_ETHER_SMSC95XX=y ++CONFIG_SPL_TINY_MEMSET=y ++CONFIG_ERRNO_STR=y ++CONFIG_LOG=y ++CONFIG_LOG_CONSOLE=y ++CONFIG_SPL_LOG=y ++CONFIG_SPL_LOG_CONSOLE=y ++CONFIG_LOG_MAX_LEVEL=7 ++# CONFIG_USE_TINY_PRINTF is not set