From 0621d783185ca01b85552f40336214ede9942ce2 Mon Sep 17 00:00:00 2001 From: Steven Liu Date: Fri, 4 Aug 2023 16:39:16 +0800 Subject: [PATCH 1/5] arm64: dts: rockchip: add rk3568 evb1 linux amp dts Signed-off-by: Steven Liu Change-Id: Ic38603697a7a909e1c406bc56be10e0ab7c5608b --- arch/arm64/boot/dts/rockchip/Makefile | 1 + arch/arm64/boot/dts/rockchip/rk3568-amp.dtsi | 63 ++++++++++++++++--- .../rk3568-evb1-ddr4-v10-linux-amp.dts | 22 +++++++ 3 files changed, 76 insertions(+), 10 deletions(-) create mode 100644 arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10-linux-amp.dts diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile index 2489afda5afe..b27190581e3f 100644 --- a/arch/arm64/boot/dts/rockchip/Makefile +++ b/arch/arm64/boot/dts/rockchip/Makefile @@ -129,6 +129,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-rk817-tablet-v10.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-evb1-ddr4-v10.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-evb1-ddr4-v10-dual-camera.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-evb1-ddr4-v10-linux.dtb +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-evb1-ddr4-v10-linux-amp.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-evb1-ddr4-v10-linux-spi-nor.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-evb2-lp4x-v10.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-evb2-lp4x-v10-bt1120-to-hdmi.dtb diff --git a/arch/arm64/boot/dts/rockchip/rk3568-amp.dtsi b/arch/arm64/boot/dts/rockchip/rk3568-amp.dtsi index 471ec38256b4..2e9b96d7f9b1 100644 --- a/arch/arm64/boot/dts/rockchip/rk3568-amp.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3568-amp.dtsi @@ -1,30 +1,73 @@ // SPDX-License-Identifier: (GPL-2.0+ OR MIT) /* - * Copyright (c) 2021 Rockchip Electronics Co., Ltd. + * Copyright (c) 2023 Rockchip Electronics Co., Ltd. */ / { rockchip_amp: rockchip-amp { - compatible = "rockchip,amp"; + compatible = "rockchip,rk3568-amp"; clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>, - <&cru PCLK_TIMER>, <&cru CLK_TIMER4>, <&cru CLK_TIMER5>; + <&cru PCLK_TIMER>, <&cru CLK_TIMER4>, <&cru CLK_TIMER5>, + <&cru ACLK_MCU>; pinctrl-names = "default"; pinctrl-0 = <&uart4m1_xfer>; status = "okay"; amp_cpus: amp-cpus { - amp-cpu2 { - id = <0x0 0x200>; - entry = <0x0 0x3800000>; - mode = <0>; - }; - amp-cpu3 { id = <0x0 0x300>; - entry = <0x0 0x5800000>; + entry = <0x0 0x2800000>; + boot-on = <0>; mode = <0>; }; }; }; + + rpmsg: rpmsg@7c00000 { + compatible = "rockchip,rk3568-rpmsg"; + mbox-names = "rpmsg-rx", "rpmsg-tx"; + mboxes = <&mailbox 0 &mailbox 3>; + rockchip,vdev-nums = <1>; + rockchip,link-id = <0x03>; + reg = <0x0 0x7c00000 0x0 0x20000>; + memory-region = <&rpmsg_dma_reserved>; + + status = "okay"; + }; + + reserved-memory { + #address-cells = <2>; + #size-cells = <2>; + ranges; + + /* remote amp core address */ + amp_shmem_reserved: amp-shmem@7800000 { + reg = <0x0 0x7800000 0x0 0x400000>; + no-map; + }; + + rpmsg_reserved: rpmsg@7c00000 { + reg = <0x0 0x7c00000 0x0 0x400000>; + no-map; + }; + + rpmsg_dma_reserved: rpmsg-dma@8000000 { + compatible = "shared-dma-pool"; + reg = <0x0 0x8000000 0x0 0x100000>; + no-map; + }; + + /* mcu address */ + mcu_reserved: mcu@8200000 { + reg = <0x0 0x8200000 0x0 0x100000>; + no-map; + }; + }; }; + +&mailbox { + rockchip,txpoll-period-ms = <1>; + status = "okay"; +}; + diff --git a/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10-linux-amp.dts b/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10-linux-amp.dts new file mode 100644 index 000000000000..0c1b2156261e --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10-linux-amp.dts @@ -0,0 +1,22 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2023 Rockchip Electronics Co., Ltd. + * + */ + +#include "rk3568-evb1-ddr4-v10-linux.dts" +#include "rk3568-amp.dtsi" + +/ { + memory { + device_type = "memory"; + reg = <0x0 0x03880000 0x0 0x04b80000>, + <0x0 0x0a200000 0x0 0x75e00000>; + }; +}; + +&arm_pmu { + interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>; +}; + +/delete-node/ &cpu3; From d21f77d0fd90f9bd46d7593da8adad2c96dbdd57 Mon Sep 17 00:00:00 2001 From: Wu Liangqing Date: Thu, 17 Aug 2023 06:41:01 +0000 Subject: [PATCH 2/5] arm64: dts: rockchip: Makefile add rk3399-sapphire-excavator-edp-avb.dtb arch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator-edp.dtsi:210.20-216.4: ERROR (i2c_bus_reg): /i2c@ff110000/vm149c@0c: I2C bus unit address format error, expected "c" arch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator-edp.dtsi:243.20-249.4: ERROR (duplicate_label): /i2c@ff110000/vm149c@0c: Duplicate label 'vm149c' on /i2c@ff110000/vm149c@0c and /i2c@ff110000/vm149c@c arch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator-edp-avb.dts:29.24-54.4: ERROR (i2c_bus_reg): /i2c@ff110000/tc35874x@0f: I2C bus unit address format error, expected "f" Change-Id: Ie89eb8038b8791e89b63dab2c990f929596984a8 Signed-off-by: Wu Liangqing --- arch/arm64/boot/dts/rockchip/Makefile | 1 + .../rockchip/rk3399-sapphire-excavator-edp-avb.dts | 4 ++-- .../dts/rockchip/rk3399-sapphire-excavator-edp.dtsi | 12 ++---------- 3 files changed, 5 insertions(+), 12 deletions(-) diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile index b27190581e3f..69211157efb2 100644 --- a/arch/arm64/boot/dts/rockchip/Makefile +++ b/arch/arm64/boot/dts/rockchip/Makefile @@ -69,6 +69,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-rockpro64-v2.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-rockpro64.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire-excavator.dtb +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire-excavator-edp-avb.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399pro-rock-pi-n10.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3528-demo1-lp4-v10.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3528-demo4-ddr4-v10.dtb diff --git a/arch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator-edp-avb.dts b/arch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator-edp-avb.dts index 3e9ef7b0773b..c951691120a3 100644 --- a/arch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator-edp-avb.dts +++ b/arch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator-edp-avb.dts @@ -24,9 +24,9 @@ &i2c1 { status = "okay"; - /delete-node/ tc358749x@0f; + /delete-node/ tc358749x@f; - tc35874x: tc35874x@0f { + tc35874x: tc35874x@f { status = "disabled"; reg = <0x0f>; compatible = "toshiba,tc358749"; diff --git a/arch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator-edp.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator-edp.dtsi index 89ff138a5794..5304f0f52e7c 100644 --- a/arch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator-edp.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator-edp.dtsi @@ -192,7 +192,7 @@ }; }; - tc358749x: tc358749x@0f { + tc358749x: tc358749x@f { compatible = "toshiba,tc358749x"; reg = <0x0f>; power-gpios = <&gpio2 6 GPIO_ACTIVE_HIGH>; @@ -207,7 +207,7 @@ status = "disabled"; }; - vm149c: vm149c@0c { + vm149c: vm149c@c { compatible = "silicon touch,vm149c"; status = "okay"; reg = <0x0c>; @@ -240,14 +240,6 @@ }; }; - vm149c: vm149c@0c { - compatible = "silicon touch,vm149c"; - status = "okay"; - reg = <0x0c>; - rockchip,camera-module-index = <0>; - rockchip,camera-module-facing = "back"; - }; - ov13850: ov13850@10 { compatible = "ovti,ov13850"; status = "okay"; From c7973edb63acbedd590ea52fb57da93adf1666c1 Mon Sep 17 00:00:00 2001 From: Caesar Wang Date: Thu, 17 Aug 2023 15:12:34 +0800 Subject: [PATCH 3/5] arm64: dts: rockchip: Add mmc aliases for rk3562-linux.dtsi This series in order to have the default MMC alias. The mmc default alias: mmc0 = &sdhci; mmc1 = &sdmmc0; mmc2 = &sdmmc1; The Linux OS have the post-build.sh to handle the rootfs, and export RK_EXTRA_PARTITIONS for setting the PARTITIONS. Signed-off-by: Caesar Wang Change-Id: I28ae38a7aaf35c6f584879c19a339ff6079d059d --- arch/arm64/boot/dts/rockchip/rk3562-linux.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/arm64/boot/dts/rockchip/rk3562-linux.dtsi b/arch/arm64/boot/dts/rockchip/rk3562-linux.dtsi index a39728c1719d..4f32ff5b944f 100644 --- a/arch/arm64/boot/dts/rockchip/rk3562-linux.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3562-linux.dtsi @@ -5,6 +5,12 @@ */ / { + aliases { + mmc0 = &sdhci; + mmc1 = &sdmmc0; + mmc2 = &sdmmc1; + }; + chosen: chosen { bootargs = "earlycon=uart8250,mmio32,0xff210000 console=ttyFIQ0 root=PARTUUID=614e0000-0000 rw rootwait"; }; From e79df5fa17a903f513312dfbe00a32066334a3c4 Mon Sep 17 00:00:00 2001 From: Binyuan Lan Date: Thu, 17 Aug 2023 06:25:53 +0000 Subject: [PATCH 4/5] arm64: dts: rockchip: rk3562-android: assign a fixed index to mmc devices Change-Id: I707e84a2e7cbbf7004522674ac2fd05564f8e930 Signed-off-by: Binyuan Lan --- arch/arm64/boot/dts/rockchip/rk3562-android.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/arm64/boot/dts/rockchip/rk3562-android.dtsi b/arch/arm64/boot/dts/rockchip/rk3562-android.dtsi index 6ec686977bc7..fb1238d4fbfc 100644 --- a/arch/arm64/boot/dts/rockchip/rk3562-android.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3562-android.dtsi @@ -5,6 +5,12 @@ */ / { + aliases { + mmc0 = &sdmmc0; + mmc1 = &sdmmc1; + mmc2 = &sdhci; + }; + chosen: chosen { bootargs = "earlycon=uart8250,mmio32,0xff210000 console=ttyFIQ0"; }; From 0013ee06a1814b1a19f69cc3f49f741e8e651f8a Mon Sep 17 00:00:00 2001 From: Steven Liu Date: Fri, 21 Jul 2023 16:59:27 +0800 Subject: [PATCH 5/5] rpmsg: rockchip: fix mailbox txdone method to polling Since there is no txdone irq in the Rockchip mailbox IP, invoking mbox_chan_txdone()/mbox_client_txdone() after mbox_send_message() to tick the TX would be free the active request which have not been sent out if the controller returned the EBUSY state before. So amend the txdone method to polling to fix it. The TX polling interval can specify in mailbox DT with set "rockchip,txpoll-period-ms" property to 1 milliseconds. Fixes: b5795e81ec07 ("rpmsg: rockchip: add Rockchip RPMsg Platform Support") Signed-off-by: Steven Liu Change-Id: I9d15ed4a61cda049c7804e2688e79f157de1c5a2 --- drivers/rpmsg/rockchip_rpmsg.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/rpmsg/rockchip_rpmsg.c b/drivers/rpmsg/rockchip_rpmsg.c index be1b202a156b..6912eae4b7e4 100644 --- a/drivers/rpmsg/rockchip_rpmsg.c +++ b/drivers/rpmsg/rockchip_rpmsg.c @@ -114,7 +114,6 @@ static bool rk_rpmsg_notify(struct virtqueue *vq) dev_err(dev, "mbox send failed!\n"); return false; } - mbox_chan_txdone(rpdev->mbox_tx_chan, 0); return true; }