From 56a36465623a0b25db03070c00e3112af70d05b4 Mon Sep 17 00:00:00 2001 From: Lan Honglin Date: Sun, 8 Oct 2023 19:33:26 +0800 Subject: [PATCH 1/4] ARM: dts: rockchip: add rv1106g-evb2-v12-dual-camera-avs.dts support dual sc230ai support master_slaver mode Change-Id: I0b3fdffa22dd5ca0b9272e6b3f8159aeb4727208 Signed-off-by: Lan Honglin --- arch/arm/boot/dts/Makefile | 1 + .../dts/rv1106g-evb2-v12-dual-camera-avs.dts | 122 ++++++++++++++++++ 2 files changed, 123 insertions(+) create mode 100644 arch/arm/boot/dts/rv1106g-evb2-v12-dual-camera-avs.dts diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index a1fdd472c37a..2151bee625f5 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -1008,6 +1008,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += \ rv1106g-evb2-v11-emmc.dtb \ rv1106g-evb2-v11-trailcam-emmc.dtb \ rv1106g-evb2-v12-aov-spi-nor.dtb \ + rv1106g-evb2-v12-dual-camera-avs.dtb \ rv1106g-evb2-v12-nofastae-emmc.dtb \ rv1106g-evb2-v12-nofastae-spi-nand.dtb \ rv1106g-evb2-v12-nofastae-spi-nor.dtb \ diff --git a/arch/arm/boot/dts/rv1106g-evb2-v12-dual-camera-avs.dts b/arch/arm/boot/dts/rv1106g-evb2-v12-dual-camera-avs.dts new file mode 100644 index 000000000000..b2054d798689 --- /dev/null +++ b/arch/arm/boot/dts/rv1106g-evb2-v12-dual-camera-avs.dts @@ -0,0 +1,122 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2023 Rockchip Electronics Co., Ltd. + */ + +/dts-v1/; + +#include "rv1106g-evb2-v10-dual-camera.dts" + +/ { + model = "Rockchip RV1106G EVB2 V12 Board With Dual Camera AVS Blend Mode"; + compatible = "rockchip,rv1106g-evb2-v12-dual-camera-avs", "rockchip,rv1106"; +}; + +/delete-node/ &sc230ai; +/delete-node/ &sc301iot; + +&csi2_dphy1 { + ports { + port@0 { + csi_dphy_input0: endpoint@0 { + remote-endpoint = <&sc230ai_30_out>; + }; + }; + }; +}; + +&csi2_dphy2 { + ports { + port@0 { + csi_dphy_input1: endpoint@0 { + remote-endpoint = <&sc230ai_32_out>; + }; + }; + }; +}; + +&i2c4 { + sc230ai_32: sc230ai_32@32 { + compatible = "smartsens,sc230ai"; + status = "okay"; + reg = <0x32>; + clocks = <&cru MCLK_REF_MIPI1>; + clock-names = "xvclk"; + reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&mipi_refclk_out1>; + rockchip,camera-module-index = <1>; + rockchip,camera-module-facing = "back"; + rockchip,camera-module-name = "CMK-OT2350-PC1"; + rockchip,camera-module-lens-name = "65IRC-F16"; + rockchip,camera-module-sync-mode = "slave"; + port { + sc230ai_32_out: endpoint { + remote-endpoint = <&csi_dphy_input1>; + data-lanes = <1 2>; + }; + }; + }; + + sc230ai_30: sc230ai_30@30 { + compatible = "smartsens,sc230ai"; + status = "okay"; + reg = <0x30>; + clocks = <&cru MCLK_REF_MIPI0>; + clock-names = "xvclk"; + reset-gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>; + pwdn-gpios = <&gpio3 RK_PD2 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&mipi_refclk_out0>; + rockchip,camera-module-index = <0>; + rockchip,camera-module-facing = "back"; + rockchip,camera-module-name = "CMK-OT2350-PC1"; + rockchip,camera-module-lens-name = "65IRC-F16"; + rockchip,camera-module-sync-mode = "internal_master"; + port { + sc230ai_30_out: endpoint { + remote-endpoint = <&csi_dphy_input0>; + data-lanes = <1 2>; + }; + }; + }; +}; + +&rkisp_thunderboot { + /* reg's offset MUST match with RTOS */ + /* + * vicap, capture raw10, ceil(w*10/8/256)*256*h *4(buf num) + * e.g. 1920x1080: 0xa8c000 + * 0x008b0000 = (meta's reg offset) + (meta's reg size) + * = 0x00800000 + 0xb0000 + */ + reg = <0x008b0000 0xa8c000>; +}; + +&ramdisk_r { + /* + * 0x133c000 = (rkisp_thunderboot's reg offset) + * + (rkisp_thunderboot's reg size) + * = 0x008b0000 + 0xa8c000 + */ + reg = <0x133c000 (15 * 0x00100000)>; +}; + +&ramdisk_c { + /* + * 0x223c000 = (ramdisk_r's reg offset) + * + (ramdisk_r's reg size) + * = 0x133c000 + (15 * 0x00100000) + */ + reg = <0x223c000 (6 * 0x00100000)>; +}; + +&rkisp1_thunderboot { + /* + * vicap, capture raw10, ceil(w*10/8/256)*256*h *4(buf num) + * e.g. 1920x1080: 0xa8c0000 + * 0x283c000 = (ramdisk_c's reg offset) + (ramdisk_c's reg size) + * = 0x223c000 + (6 * 0x00100000) + */ + reg = <0x283c000 0xa8c000>; +}; From 097d888d0e07854cb8428b4b68ac6d15cfe702cf Mon Sep 17 00:00:00 2001 From: Xu Xuehui Date: Sat, 16 Dec 2023 13:31:49 +0800 Subject: [PATCH 2/4] arm64: dts: rockchip: rk3588-vehicle-evb-v22: change minipcie power supply Change-Id: If3918bd6c598aaeb2ddfd1f6fb93b586b43d6794 Signed-off-by: Xu Xuehui --- .../boot/dts/rockchip/rk3588-vehicle-evb-v22.dts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/arch/arm64/boot/dts/rockchip/rk3588-vehicle-evb-v22.dts b/arch/arm64/boot/dts/rockchip/rk3588-vehicle-evb-v22.dts index 4ced11b97de2..c36f02f4c224 100644 --- a/arch/arm64/boot/dts/rockchip/rk3588-vehicle-evb-v22.dts +++ b/arch/arm64/boot/dts/rockchip/rk3588-vehicle-evb-v22.dts @@ -267,15 +267,15 @@ compatible = "regulator-fixed"; regulator-name = "minipcie_power_buck"; regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <12000000>; - regulator-max-microvolt = <12000000>; + //regulator-always-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; enable-active-high; gpio = <&nca9539_gpio 13 GPIO_ACTIVE_HIGH>; - vin-supply = <&vcc5v0_usb>; + vin-supply = <&vcc5v0_buck>; regulator-state-mem { - regulator-off-in-suspend; - regulator-suspend-microvolt = <12000000>; + regulator-on-in-suspend; + regulator-suspend-microvolt = <3300000>; }; }; From 8e49eef1b54706eabf7381209cc911332fa1740d Mon Sep 17 00:00:00 2001 From: Finley Xiao Date: Tue, 26 Dec 2023 14:48:51 +0800 Subject: [PATCH 3/4] driver: rknpu: Avoid taking an uninitialized lock ------------[ cut here ]------------ DEBUG_LOCKS_WARN_ON(lock->magic != lock) WARNING: CPU: 5 PID: 1 at kernel/locking/mutex.c:604 __mutex_lock_common+0x5fc/0x142c Modules linked in: CPU: 5 PID: 1 Comm: swapper/0 Not tainted 6.1.43 #211 Hardware name: Rockchip RK3588 EVB1 LP4 V10 Board (DT) pstate: 60400009 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : __mutex_lock_common+0x5fc/0x142c lr : __mutex_lock_common+0x5fc/0x142c sp : ffffffc00b06b6a0 x29: ffffffc00b06b710 x28: 0000000000000000 x27: 0000000000000000 x26: 0000000000000000 x25: ffffffc00aee2000 x24: ffffffc0097b2d28 x23: ffffff8108be1780 x22: 0000000000000008 x21: 0000000000000000 x20: 0000000000000000 x19: ffffff81011ca458 x18: ffffffc00b0450b8 x17: 0000000000000013 x16: ffffffffffffffff x15: 0000000000000004 x14: ffffffc00a08bf18 x13: 0000000000003fff x12: 0000000000000003 x11: 00000000ffffbfff x10: c0000000ffffbfff x9 : fcad3029a1246100 x8 : fcad3029a1246100 x7 : 4e5241575f534b43 x6 : ffffffc009579a44 x5 : 0000000000000000 x4 : 0000000000000001 x3 : 0000000000000000 x2 : 0000000000000000 x1 : ffffffc00b06b430 x0 : 0000000000000028 Call trace: __mutex_lock_common+0x5fc/0x142c mutex_lock_nested+0x38/0x44 rockchip_opp_dvfs_lock+0x1c/0x28 rknpu_devfreq_lock+0x14/0x20 rknpu_power_on+0x70/0x2a4 rknpu_probe+0x60c/0x8cc platform_probe+0xa8/0xd0 really_probe+0x174/0x350 __driver_probe_device+0xa0/0x128 driver_probe_device+0x44/0x218 __driver_attach+0xfc/0x1c8 bus_for_each_dev+0x80/0xcc driver_attach+0x24/0x30 bus_add_driver+0x10c/0x1f8 driver_register+0x78/0x114 __platform_driver_register+0x24/0x30 rknpu_init+0x1c/0x28 do_one_initcall+0xf8/0x348 do_initcall_level+0xd0/0x17c do_initcalls+0x54/0x94 do_basic_setup+0x1c/0x28 kernel_init_freeable+0x16c/0x1f0 kernel_init+0x20/0x1a0 ret_from_fork+0x10/0x20 Signed-off-by: Finley Xiao Change-Id: Ic0247477705a9111f5617eb9fbbc438843feb79c --- drivers/rknpu/rknpu_devfreq.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/rknpu/rknpu_devfreq.c b/drivers/rknpu/rknpu_devfreq.c index ef46785fbebc..ec8de47715ef 100644 --- a/drivers/rknpu/rknpu_devfreq.c +++ b/drivers/rknpu/rknpu_devfreq.c @@ -235,13 +235,15 @@ static const struct of_device_id rockchip_npu_of_match[] = { #if KERNEL_VERSION(6, 1, 0) <= LINUX_VERSION_CODE void rknpu_devfreq_lock(struct rknpu_device *rknpu_dev) { - rockchip_opp_dvfs_lock(&rknpu_dev->opp_info); + if (rknpu_dev->devfreq) + rockchip_opp_dvfs_lock(&rknpu_dev->opp_info); } EXPORT_SYMBOL(rknpu_devfreq_lock); void rknpu_devfreq_unlock(struct rknpu_device *rknpu_dev) { - rockchip_opp_dvfs_unlock(&rknpu_dev->opp_info); + if (rknpu_dev->devfreq) + rockchip_opp_dvfs_unlock(&rknpu_dev->opp_info); } EXPORT_SYMBOL(rknpu_devfreq_unlock); @@ -332,6 +334,7 @@ int rknpu_devfreq_init(struct rknpu_device *rknpu_dev) (void *)rknpu_dev); if (IS_ERR(rknpu_dev->devfreq)) { LOG_DEV_ERROR(dev, "failed to add devfreq\n"); + rknpu_dev->devfreq = NULL; ret = PTR_ERR(rknpu_dev->devfreq); goto err_remove_governor; } From 76f17016d5792e27f3e86dbf3b6c02d935d93524 Mon Sep 17 00:00:00 2001 From: Tao Huang Date: Wed, 27 Dec 2023 10:19:28 +0800 Subject: [PATCH 4/4] media: rockchip: hdmirx: select CEC_CORE drivers/media/platform/rockchip/hdmirx/rk_hdmirx_cec.c:143:3: error: implicit declaration of function 'cec_transmit_attempt_done' [-Werror,-Wimplicit-function-declaration] drivers/media/platform/rockchip/hdmirx/rk_hdmirx_cec.c:148:3: error: implicit declaration of function 'cec_received_msg' [-Werror,-Wimplicit-function-declaration] drivers/media/platform/rockchip/hdmirx/rk_hdmirx_cec.c:224:14: error: implicit declaration of function 'cec_allocate_adapter' [-Werror,-Wimplicit-function-declaration] drivers/media/platform/rockchip/hdmirx/rk_hdmirx_cec.c:224:12: error: incompatible integer to pointer conversion assigning to 'struct cec_adapter *' from 'int' [-Werror,-Wint-conversion] drivers/media/platform/rockchip/hdmirx/rk_hdmirx.c:1068:2: error: implicit declaration of function 'cec_queue_pin_hpd_event' [-Werror,-Wimplicit-function-declaration] drivers/media/platform/rockchip/hdmirx/rk_hdmirx.c:1077:2: error: implicit declaration of function 'cec_queue_pin_hpd_event' [-Werror,-Wimplicit-function-declaration] Signed-off-by: Tao Huang Change-Id: Ibad7f45af8ecf9a789d7062a2b33c68c4f1541cb --- drivers/media/platform/rockchip/hdmirx/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/media/platform/rockchip/hdmirx/Kconfig b/drivers/media/platform/rockchip/hdmirx/Kconfig index be9ea7003c3c..aa4d7a46d8b0 100644 --- a/drivers/media/platform/rockchip/hdmirx/Kconfig +++ b/drivers/media/platform/rockchip/hdmirx/Kconfig @@ -20,6 +20,7 @@ config VIDEO_ROCKCHIP_HDMIRX select VIDEOBUF2_DMA_CONTIG select HDMI select VIDEO_ROCKCHIP_HDMIRX_CLASS + select CEC_CORE help Support for Rockchip HDMI RX PHY and Controller. This driver supports HDMI 2.0 version.