From 8f37891624d84f879d624808861d8d78b4012908 Mon Sep 17 00:00:00 2001 From: Shengfei Xu Date: Thu, 4 Sep 2025 10:49:33 +0800 Subject: [PATCH 1/5] arm64: configs: rockchip_linux_defconfig enable CONFIG_SENSORS_INA2XX The main function is to obtain voltage and current, currently used for testing the input voltage and input current of the RK1820 small board on the RK3588 to determine the current load. Change-Id: Ibfe1babfa0a6fba11008a3b19d3c09e354b4674a Signed-off-by: Shengfei Xu --- arch/arm64/configs/rockchip_linux_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm64/configs/rockchip_linux_defconfig b/arch/arm64/configs/rockchip_linux_defconfig index 69ee5f79dd71..68e48204cf47 100644 --- a/arch/arm64/configs/rockchip_linux_defconfig +++ b/arch/arm64/configs/rockchip_linux_defconfig @@ -285,6 +285,7 @@ CONFIG_CHARGER_BQ24735=y CONFIG_CHARGER_BQ25700=y CONFIG_BATTERY_RK817=y CONFIG_CHARGER_RK817=y +CONFIG_SENSORS_INA2XX=y CONFIG_THERMAL=y CONFIG_THERMAL_WRITABLE_TRIPS=y CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR=y From 11dd45bfb8dfa072ee0a76c9873330fcd2f352d6 Mon Sep 17 00:00:00 2001 From: Shengfei Xu Date: Thu, 4 Sep 2025 10:50:53 +0800 Subject: [PATCH 2/5] arm64: dts: rockchip: rk3588-evb10: Add ina226 node Change-Id: I488fa4acf81885118e54e03cd720f15f34247c8b Signed-off-by: Shengfei Xu --- arch/arm64/boot/dts/rockchip/rk3588-evb10.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/arm64/boot/dts/rockchip/rk3588-evb10.dtsi b/arch/arm64/boot/dts/rockchip/rk3588-evb10.dtsi index 18c3294dd347..74ea050515ad 100644 --- a/arch/arm64/boot/dts/rockchip/rk3588-evb10.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3588-evb10.dtsi @@ -635,6 +635,12 @@ status = "okay"; pinctrl-0 = <&i2c8m4_xfer>; + ti_ina226: ti_ina226@40 { + compatible = "ti,ina226"; + reg = <0x40>; + status = "okay"; + }; + ls_stk3332: light@47 { compatible = "ls_stk3332"; status = "disabled"; From 3754e108b2c6052e4c6f383e45af4e7810476868 Mon Sep 17 00:00:00 2001 From: William Wu Date: Fri, 22 Aug 2025 10:19:15 +0800 Subject: [PATCH 3/5] FROMLIST: usb: gadget: configfs: Correctly set use_os_string at bind Once the use_os_string flag is set to true for some functions (e.g. adb/mtp) which need to response the OS string, and then if we re-bind the ConfigFS gadget to use the other functions (e.g. hid) which should not to response the OS string, however, because the use_os_string flag is still true, so the usb gadget response the OS string descriptor incorrectly, this can cause the USB device to be unrecognizable on the Windows system. An example of this as follows: echo 1 > os_desc/use ln -s functions/ffs.adb configs/b.1/function0 start adbd echo "" > UDC #succeed stop adbd rm configs/b.1/function0 echo 0 > os_desc/use ln -s functions/hid.gs0 configs/b.1/function0 echo "" > UDC #fail to connect on Windows This patch sets the use_os_string flag to false at bind if the functions not support OS Descriptors. Fixes: 87213d388e92 ("usb: gadget: configfs: OS String support") Link: https://patchwork.kernel.org/project/linux-usb/patch/1755833769-25434-1-git-send-email-william.wu@rock-chips.com/ Change-Id: I79fce9ad19b5ceaf5ded84894d6b509a3d0c75f4 Signed-off-by: William Wu --- drivers/usb/gadget/configfs.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/usb/gadget/configfs.c b/drivers/usb/gadget/configfs.c index 4dbbbfdf8d71..c5db03466f39 100644 --- a/drivers/usb/gadget/configfs.c +++ b/drivers/usb/gadget/configfs.c @@ -1389,6 +1389,8 @@ static int configfs_composite_bind(struct usb_gadget *gadget, cdev->use_os_string = true; cdev->b_vendor_code = gi->b_vendor_code; memcpy(cdev->qw_sign, gi->qw_sign, OS_STRING_QW_SIGN_LEN); + } else { + cdev->use_os_string = false; } if (gadget_is_otg(gadget) && !otg_desc[0]) { From a1d4071c51f2834ba80a91d8399720f32de9e524 Mon Sep 17 00:00:00 2001 From: Zhang Yubing Date: Thu, 4 Sep 2025 15:18:18 +0800 Subject: [PATCH 4/5] drm/rockchip: dw-dp: support SDP bank regs as readable Support SDP bank regs as readable for debug scenario Change-Id: I831454e9f5de2f5f7438576b530eb30e8a83b657 Signed-off-by: Zhang Yubing --- drivers/gpu/drm/rockchip/dw-dp.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/gpu/drm/rockchip/dw-dp.c b/drivers/gpu/drm/rockchip/dw-dp.c index 1251dda60286..d74d4d21cdfa 100644 --- a/drivers/gpu/drm/rockchip/dw-dp.c +++ b/drivers/gpu/drm/rockchip/dw-dp.c @@ -5663,6 +5663,8 @@ static const struct regmap_range dw_dp_readable_ranges[] = { regmap_reg_range(DPTX_VSAMPLE_CTRL_N(0), DPTX_VIDEO_HBLANK_INTERVAL_N(0)), regmap_reg_range(DPTX_AUD_CONFIG1_N(0), DPTX_AUD_CONFIG1_N(0)), regmap_reg_range(DPTX_SDP_VERTICAL_CTRL_N(0), DPTX_SDP_STATUS_EN_N(0)), + regmap_reg_range(DPTX_SDP_REGISTER_BANK_N(0), + DPTX_SDP_REGISTER_BANK_N(0) + SDP_REG_BANK_SIZE * 36), regmap_reg_range(DPTX_PHYIF_CTRL, DPTX_PHYIF_PWRDOWN_CTRL), regmap_reg_range(DPTX_AUX_CMD, DPTX_AUX_DATA3), regmap_reg_range(DPTX_GENERAL_INTERRUPT, DPTX_HPD_INTERRUPT_ENABLE), @@ -5671,12 +5673,18 @@ static const struct regmap_range dw_dp_readable_ranges[] = { regmap_reg_range(DPTX_VSAMPLE_CTRL_N(1), DPTX_VIDEO_HBLANK_INTERVAL_N(1)), regmap_reg_range(DPTX_AUD_CONFIG1_N(1), DPTX_AUD_CONFIG1_N(1)), regmap_reg_range(DPTX_SDP_VERTICAL_CTRL_N(1), DPTX_SDP_STATUS_EN_N(1)), + regmap_reg_range(DPTX_SDP_REGISTER_BANK_N(1), + DPTX_SDP_REGISTER_BANK_N(1) + SDP_REG_BANK_SIZE * 36), regmap_reg_range(DPTX_VSAMPLE_CTRL_N(2), DPTX_VIDEO_HBLANK_INTERVAL_N(2)), regmap_reg_range(DPTX_AUD_CONFIG1_N(2), DPTX_AUD_CONFIG1_N(2)), regmap_reg_range(DPTX_SDP_VERTICAL_CTRL_N(2), DPTX_SDP_STATUS_EN_N(2)), + regmap_reg_range(DPTX_SDP_REGISTER_BANK_N(2), + DPTX_SDP_REGISTER_BANK_N(2) + SDP_REG_BANK_SIZE * 36), regmap_reg_range(DPTX_VSAMPLE_CTRL_N(3), DPTX_VIDEO_HBLANK_INTERVAL_N(3)), regmap_reg_range(DPTX_AUD_CONFIG1_N(3), DPTX_AUD_CONFIG1_N(3)), regmap_reg_range(DPTX_SDP_VERTICAL_CTRL_N(3), DPTX_SDP_STATUS_EN_N(3)), + regmap_reg_range(DPTX_SDP_REGISTER_BANK_N(3), + DPTX_SDP_REGISTER_BANK_N(3) + SDP_REG_BANK_SIZE * 36), }; static const struct regmap_access_table dw_dp_readable_table = { From 80e98b21889215f454ac216203b5b5d266bc0803 Mon Sep 17 00:00:00 2001 From: Zefa Chen Date: Tue, 26 Aug 2025 11:58:54 +0800 Subject: [PATCH 5/5] media: rockchip: vicap fixes error of output format when restart dma capture Change-Id: I53406d0f1ead4cff4c9dff8a779a942a549eb775 Signed-off-by: Zefa Chen --- drivers/media/platform/rockchip/cif/capture.c | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/drivers/media/platform/rockchip/cif/capture.c b/drivers/media/platform/rockchip/cif/capture.c index abddc1a87585..bdebc322f0a1 100644 --- a/drivers/media/platform/rockchip/cif/capture.c +++ b/drivers/media/platform/rockchip/cif/capture.c @@ -13199,25 +13199,31 @@ void rkcif_enable_dma_capture(struct rkcif_stream *stream, bool is_only_enable) CSI_START_INTEN_RK3576(stream->id)); } } - if (!stream->is_compact) - val |= uncompact; - else - val &= ~uncompact; + if (stream->cif_fmt_out->fmt_type == CIF_FMT_TYPE_RAW) { + if (!stream->is_compact) + val |= uncompact; + else + val &= ~uncompact; + } rkcif_write_register(cif_dev, get_reg_index_of_id_ctrl0(stream->id), val); } else if (mbus_cfg->type == V4L2_MBUS_CCP2) { val = rkcif_read_register(cif_dev, get_reg_index_of_lvds_id_ctrl0(stream->id)); - if (!stream->is_compact) - val |= CSI_WRDDR_TYPE_RAW_UNCOMPACT << 17; - else - val &= ~(CSI_WRDDR_TYPE_RAW_UNCOMPACT << 17); + if (stream->cif_fmt_out->fmt_type == CIF_FMT_TYPE_RAW) { + if (!stream->is_compact) + val |= CSI_WRDDR_TYPE_RAW_UNCOMPACT << 17; + else + val &= ~(CSI_WRDDR_TYPE_RAW_UNCOMPACT << 17); + } val |= LVDS_DMAEN_RV1106; rkcif_write_register(cif_dev, get_reg_index_of_lvds_id_ctrl0(stream->id), val); } else { val = rkcif_read_register(cif_dev, CIF_REG_DVP_FOR); - if (!stream->is_compact) - val |= CSI_WRDDR_TYPE_RAW_UNCOMPACT << 11; - else - val &= ~(CSI_WRDDR_TYPE_RAW_UNCOMPACT << 11); + if (stream->cif_fmt_out->fmt_type == CIF_FMT_TYPE_RAW) { + if (!stream->is_compact) + val |= CSI_WRDDR_TYPE_RAW_UNCOMPACT << 11; + else + val &= ~(CSI_WRDDR_TYPE_RAW_UNCOMPACT << 11); + } rkcif_write_register(cif_dev, CIF_REG_DVP_FOR, val); val = rkcif_read_register(cif_dev, CIF_REG_DVP_CTRL); if (cif_dev->chip_id == CHIP_RK3588_CIF)