From nobody Fri Sep 25 21:03:36 2026 Received: from mail-wr2-f12.google.com (mail-wr2-f12.google.com [74.125.225.76]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 75B5A4BD340 for ; Mon, 21 Sep 2026 15:31:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.225.76 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790004696; cv=none; b=f9FgrX2ySui7K8e04sfLGD9Bj6zgEUwpcBoqT0wbMXcnEZj94D0TuRL4O09l95oKKN5AA5MKNsKT0oJtTdf8KrO9zwnvvjHRiI1V8jU6yvqxTPe+G3BiC7Lqw/gJkJ6SP7lVIUK4EaQ0snKio3HzDjNMzsEr+357+4qzn8QDXOo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790004696; c=relaxed/simple; bh=8UIbOajv/WeBQjxhRwQ8WC4GpLGZ30N+4iDWN0b6s8o=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=CCgJVAVo/vEWH0Y1Nxk8ZguKlk+K4o3iRjC/TqEUMgWUNxmDpqjufCKNpR39B44mJc3fO0+TWo9ngk8rqIXe5kC2x9fHF0Lg15PFxKIHXo4q+qnREomy+9I8vmQ+JGd2OJk70N1TvxtGYP9I6wr2zfJ642E1cbRk9Viy67XKOxI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=GUeooN0f; arc=none smtp.client-ip=74.125.225.76 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="GUeooN0f" Received: by mail-wr2-f12.google.com with SMTP id ffacd0b85a97d-4843f22dcb8so2065603f8f.0 for ; Mon, 21 Sep 2026 08:31:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1790004691; x=1790609491; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=oSFZ2mFA8VKpkq2eozLxDfSa3b2z9uge5jLEZ5PpWWU=; b=GUeooN0ffnbmXXJdaVioAWR5pLSuti9tuRgT4g2fCmZ1RnBFh1MQXyok3Ad3y8VPZh MxCz/O+1v0vczlDdAc78SmE5QwgbogQi3NIHpS2yJxGT450lYh2EfLuw8uiVqsZFYmjq J5U3BxmIDFNtMvbRyNUD9L69P9TF03crzvAGXIucNwOytX5y32ia5Awy/CoumjOhLZ+G NnknhjFIEX/m6TPb1X/zuNtn9Ld+/9Rdn7qg+UKEH5+MRdHJ+Vx3B2zPuvKdCk6o87L5 sHAT0FYU7i7sQYxs1iH4P+Mkp8J3wEUC53JytVJG2Bw0q0ks3gNTspo7s3uxrha+Wuuk QpNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790004691; x=1790609491; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=oSFZ2mFA8VKpkq2eozLxDfSa3b2z9uge5jLEZ5PpWWU=; b=a+GLibu7CegHkme7E05A98XJVLBcTvex8CXGOGkJJsT1NR6AQbjh7g5Hhr2ol8AT6d yBhnrIO6Nysft26ZADNeqUKqEHfPFb2LjqBHrX4vOI2FD9ixppp0R+rAf2gLcqs74Bxt 22K/dp4yFG+CE2afZaMQkg33aAcdyLvGVG2ap7EP0a72KZeGZe1ANx0UmU52yy3vdIdq q838HmwCsiZvYajGc5VWERC2QM5fy62HO6qSiNYVZoZoDvidv+G3g3Ov/Kq10dRK7e4K HzpUU6HvSZVhWQCo6ER4qe3u44a1RYJwtHTkvwdUKXUHEmRaRJnBurg556RtXXqXsAFo r7iQ== X-Forwarded-Encrypted: i=1; AKwUvBx8Bu0OOU6Qzxed/8ArItgoJv/pfra4ucQc+LzWV3ZFZjBIH/YpPYLKd1TZpTfoh6ad7KAKZOKnJBsUmsA=@vger.kernel.org X-Gm-Message-State: AFuF++kpBhgJBaDo6x96W49lK95wCwlHKxGIta9v4wtFdhW79/Swmnxh oWEdvqe3Tzgp1cT6zPA5DxTA6TckW+FGsV9mNmjXTbDWX7irfFMru5kW X-Gm-Gg: AYBFou1VjPxBCTzJGi71R11jTeSP0m0UAOperbDDk3aR+buVNIOiW1+/eDaSWmrNO/1 k2UossCQim66gu7DEDYgY7rfbYjB8l3VWoE+pgpox6tuyTmwo6S9UAascNPBgxHVGHXF6t6sg4l 7mjGZOSrciQF48R1E2zaPGj4tI5tsZqMlklUHG8KRXzLMyAKV0oGNhLavBIadP30b5tpFYH0ifR CmCvT6M2KVzXGek5cqOzqgvkx33D6Is3X5ybAPb3GuUQEf0iJSFK+qJbz9gRfhWCb1xhxdlUnsJ 8c621dUMkKYSj0zfjQv380q2wAOzQB/NOj8yhvVvVS2EnfqdESAlXboczyVsHAKPHepDvykrsG7 Th6brrPlHT/GMMYYDBpwf/m3+/scoq5wIt8B6wdq14mbRdLcAGUvAGOGGElE2bKa2J76hT3xOAf CNFuN20r0ACffKvNKgPrZXfl4mm6A8MLtKuVM+sCNx5DiSlyIU775JrJlV2mGjllDwuvGv2PkQd EY+nV1O7lSo8SnLEVbS03zPMwHaIiUpVBkl+o9x4SuTFMmS1MeJwIDggA== X-Received: by 2002:a05:6000:4b13:b0:487:1687:197d with SMTP id ffacd0b85a97d-4871e212458mr14317492f8f.6.1790004691345; Mon, 21 Sep 2026 08:31:31 -0700 (PDT) Received: from [127.0.1.1] (lmontsouris-656-1-83-121.w82-127.abo.wanadoo.fr. [82.127.110.121]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-48724562aebsm25313835f8f.14.2026.09.21.08.31.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Sep 2026 08:31:29 -0700 (PDT) From: Amin Gattout Date: Mon, 21 Sep 2026 17:29:57 +0200 Subject: [PATCH v2 1/5] media: dt-bindings: add rockchip rk3576 vicap Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260921-vicap-rk3576-v2-1-0a4582e20c72@gmail.com> References: <20260921-vicap-rk3576-v2-0-0a4582e20c72@gmail.com> In-Reply-To: <20260921-vicap-rk3576-v2-0-0a4582e20c72@gmail.com> To: Mehdi Djait , Michael Riesch , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiko Stuebner Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Amin Gattout , Conor Dooley X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1790004687; l=3185; i=amin.gattout@gmail.com; s=20260818; h=from:subject:message-id; bh=8UIbOajv/WeBQjxhRwQ8WC4GpLGZ30N+4iDWN0b6s8o=; b=lKpSlM1nNUiAbgX0spgPXAk0GpWUq8d3KoePWyxk4ZSDU3HkmiPsECMZUnE7pYP6SmzdfHjUv odFPQ1dailNC0o+hdS/dO7TmYRMTNNv9fogQQIDl+DajAdYmtsxsM90 X-Developer-Key: i=amin.gattout@gmail.com; a=ed25519; pk=MSIqDPkCOkwtyP8Fns1m+KFU9SgqoDl2mpLe18vL+hQ= Add the compatible for the Video Capture (VICAP) unit of the Rockchip RK3576. This variant features five MIPI CSI-2 ports and a connection to the image signal processor (ISP). The pixel clock of each MIPI port enters the VICAP through a dedicated gate in the clock and reset unit, so the variant takes five interface clocks and five interface resets in addition to the aclk, hclk and dclk of the other variants. Acked-by: Conor Dooley Reviewed-by: Michael Riesch Signed-off-by: Amin Gattout Reviewed-by: Mehdi Djait --- .../bindings/media/rockchip,rk3568-vicap.yaml | 46 ++++++++++++++++++= +++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/media/rockchip,rk3568-vicap.= yaml b/Documentation/devicetree/bindings/media/rockchip,rk3568-vicap.yaml index 080b64503b1b..b7dfaf3b378d 100644 --- a/Documentation/devicetree/bindings/media/rockchip,rk3568-vicap.yaml +++ b/Documentation/devicetree/bindings/media/rockchip,rk3568-vicap.yaml @@ -15,6 +15,10 @@ description: the data from camera sensors, video decoders, or other companion ICs and transfers it into system main memory by AXI bus. =20 + The Rockchip RK3576 Video Capture (VICAP) is similar to its RK3568 + counterpart, but features five MIPI CSI-2 ports and an additional + connection to the image signal processor (ISP) block. + The Rockchip RK3588 Video Capture (VICAP) is similar to its RK3568 counterpart, but features six MIPI CSI-2 ports and additional connections to the image signal processor (ISP) blocks. @@ -23,6 +27,7 @@ properties: compatible: enum: - rockchip,rk3568-vicap + - rockchip,rk3576-vicap - rockchip,rk3588-vicap =20 reg: @@ -33,7 +38,7 @@ properties: =20 clocks: minItems: 4 - maxItems: 5 + maxItems: 8 =20 clock-names: items: @@ -42,6 +47,9 @@ properties: - const: dclk - const: iclk - const: iclk1 + - const: iclk2 + - const: iclk3 + - const: iclk4 minItems: 4 =20 iommus: @@ -221,6 +229,40 @@ allOf: =20 port@11: false =20 + - if: + properties: + compatible: + contains: + const: rockchip,rk3576-vicap + then: + properties: + clocks: + minItems: 8 + + clock-names: + minItems: 8 + + resets: + minItems: 8 + maxItems: 8 + + reset-names: + items: + - const: arst + - const: hrst + - const: drst + - const: irst0 + - const: irst1 + - const: irst2 + - const: irst3 + - const: irst4 + + ports: + properties: + port@6: false + + port@11: false + - if: properties: compatible: @@ -230,9 +272,11 @@ allOf: properties: clocks: minItems: 5 + maxItems: 5 =20 clock-names: minItems: 5 + maxItems: 5 =20 resets: minItems: 9 --=20 2.43.0 From nobody Fri Sep 25 21:03:36 2026 Received: from mail-wr2-f35.google.com (mail-wr2-f35.google.com [74.125.225.99]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A8C433033EC for ; Mon, 21 Sep 2026 15:31:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.225.99 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790004697; cv=none; b=qiRMrg3pzTmQRpGvEZbHiQfqr9GFKvrwLX9IXiU0FGR8qZZnhFBQn32sT7Ey6XW+KmBi27mkf24Zp6tqmL1cO83rr3pDchi3rJBlQRaxhrm8d5m/0o6ooMUNzXvIfpKNRslrKaaKJosX4yQdjqT1oGbHP+PQUqcfi9shaA/DsrA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790004697; c=relaxed/simple; bh=hmtR3W1Y5TWVJ1bZwbC6Y+hbDXaRcvii2VTH1g9vhD0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=j0t8KLUoEKDdTUliT9d8PPAMB3i+nwhciMaJwUH6Wn8ntrzA4IrtYGiGWglZXDn6lR4i1KgeLo8/en4GIPFkb0PlqGlHw8i3ajj4px4SYGRXWPM2UTYOurSKtcRBEWFUmWAfq4m+D/a+lXHrkAABzcgbrn7Kx28U58UbjKC3IHY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=VH42h8mb; arc=none smtp.client-ip=74.125.225.99 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="VH42h8mb" Received: by mail-wr2-f35.google.com with SMTP id ffacd0b85a97d-482f63546c5so2469096f8f.2 for ; Mon, 21 Sep 2026 08:31:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1790004694; x=1790609494; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=hvjZHOpLzp7pP91442UrHRwP2IoVQT4tZJveO/+uSIQ=; b=VH42h8mbjunlLvUfhU2MPv3RDsyKFrpag8zJoNlvy9M7+6rpzAE/9WXMBCQrneYpzu ikZSAGHbAsNDZGPFK/PVkVG5nbK4uXB1Fo2t/DOa6DYsdhpzM2vIqdbRhDwRWvWwWeO/ 6YyHlWrE3Wcfel9hS7knbE/oH5ILoXC/xpNfcKiUvU8wZ0e/nQiqGB2gz9zG5+/YjNax OCYghsovaLMu08OhIhrvfZR+dLpqAe9ZM7ihiJJrcKtAzjKTmqGy5FNZVsbmNSniGOpl ps6DZAJ91yCHRmVh+Vo1XhPmZHiB1fcWifDSUvTT3PnWbxESP0ags7zrbJbuWTkzfLRa AJYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790004694; x=1790609494; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=hvjZHOpLzp7pP91442UrHRwP2IoVQT4tZJveO/+uSIQ=; b=f2XT2fwT7KHJYngABQgDBF8tYO09cD4Oe1JoAX8Vx2Tpxf4CK1QFkp+4bJNonW7dQj b7AcUM18MLXVaxaR0w+aEKuQ+NjTcI21kPZjX9C/nOAA20ruYlOraWU53suaMd1o1t67 sIChpno+PrId6cdHaB3joH0OIi57KwYhnnnMrMxJVsvOgTM4IalItWnx8inK8UqgR9uq 5n3zLZND6tSAo0aozo3/klqyUqVWbDeWpsl8UjT9cKwRR8baP8QiELe6xr8VdfFseJOU fe4JsV/npPMSsYIP51gjPXGmVpZzE9J6pjp/jCx0XrY5gD6rnWXgkzUzlsvnFIAzJqSa 52Qw== X-Forwarded-Encrypted: i=1; AKwUvBzFVPL8dn/DwYEPS+MCjsUC+QQ2/uvpXgONL0AOGC30UoOFF/sMUkkUQRQgdVHA0bGFoRclkFIe/qUPqGU=@vger.kernel.org X-Gm-Message-State: AFuF++mtTiPbB9kW8ZAqPXu6jcsyqCqtXZe47u5CVDHzI2k0bipWJfFY xDRv/l+fDbt8wCu39p1d75MALj66mLIn7TP4fDBXF8t44xtDFL+ZvG0Y X-Gm-Gg: AYBFou1OwCugt4T5bdUQOQv2ysrxxWp+MOqPsxzLtlfq7uU5qCdoMfG7Q1kg2259pJE R1fUCOvfQiOdF6p1tY2dg3wZvBIAiEi+DoKC7qIzMnDIlbfZXLYw1ads0RxtJkqwxnImydsnOd/ moo5RRNLwpQ04mXN2el5g9KyshrTKWcNFjj0W7bcQ1j5i/nVUh7BG4jrjZ+dj4x5N8+NKZndJ4s lgUOd3uFHU/IsQMFvE9ER50uyYktF7xU+3+i4ZDig4kEx+G0KYnJ6RnPb74q+ERwQ+J1pbYlvH4 5/oecD+Ndh2J85aIEoCylvsKzyubnvBxoZ4IM60ndqhVqoAlapJDIpOUgwxA+ncM3KcaSA2Rcgq XHgsIgMxluFLBDCp6k8qwErnHZprm46sUgoZ4n5ADSmIss7KZM4ykr7ChZmskaRv3QS5O93LTtQ L+tQ4R4yMSYRaqFJMsApH9cszfkqUkxpla0HGaid7dfFl2tI60C5vgbXROGi70tcM1GTVMIzPUu EBzu7q2rCylNSz4uXQx8k3XMSnbqm2lYHGTIEZJciq01uCY5VU2hr4gUbpQXSAjQcuF X-Received: by 2002:a05:6000:2407:b0:487:14b6:b1be with SMTP id ffacd0b85a97d-4871e235dedmr14131319f8f.25.1790004693661; Mon, 21 Sep 2026 08:31:33 -0700 (PDT) Received: from [127.0.1.1] (lmontsouris-656-1-83-121.w82-127.abo.wanadoo.fr. [82.127.110.121]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-48724562aebsm25313835f8f.14.2026.09.21.08.31.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Sep 2026 08:31:32 -0700 (PDT) From: Amin Gattout Date: Mon, 21 Sep 2026 17:29:58 +0200 Subject: [PATCH v2 2/5] media: rockchip: rkcif: add a register index for the MIPI capture size Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260921-vicap-rk3576-v2-2-0a4582e20c72@gmail.com> References: <20260921-vicap-rk3576-v2-0-0a4582e20c72@gmail.com> In-Reply-To: <20260921-vicap-rk3576-v2-0-0a4582e20c72@gmail.com> To: Mehdi Djait , Michael Riesch , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiko Stuebner Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Amin Gattout X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1790004687; l=4689; i=amin.gattout@gmail.com; s=20260818; h=from:subject:message-id; bh=hmtR3W1Y5TWVJ1bZwbC6Y+hbDXaRcvii2VTH1g9vhD0=; b=7eXfGmHs6sqc5ovi2LozeLD8P+//cq3BdzTNILe+jLO+3z6tcXIFTrq2r7PjL5gIQ0U+4GFP/ bs+JT9H4zhyDhyWgtywsCyvaCrvhVdn3FYixJeafybxnIvdR7YATVT9 X-Developer-Key: i=amin.gattout@gmail.com; a=ed25519; pk=MSIqDPkCOkwtyP8Fns1m+KFU9SgqoDl2mpLe18vL+hQ= The RK3568 and RK3588 variants configure the MIPI capture size in the ID_CTRL1 register. The RK3576 has a dedicated ID_SET_SIZE register instead. Add a register index for the capture size and write it through that index, in preparation for the RK3576 support. The RK3568 and RK3588 mark the index as unsupported, so the write is a no operation for them and their behavior is unchanged. Signed-off-by: Amin Gattout Reviewed-by: Mehdi Djait --- drivers/media/platform/rockchip/rkcif/rkcif-capture-mipi.c | 10 ++++++++++ drivers/media/platform/rockchip/rkcif/rkcif-regs.h | 1 + 2 files changed, 11 insertions(+) diff --git a/drivers/media/platform/rockchip/rkcif/rkcif-capture-mipi.c b/d= rivers/media/platform/rockchip/rkcif/rkcif-capture-mipi.c index bc9518f8db50..e0acb9049ca1 100644 --- a/drivers/media/platform/rockchip/rkcif/rkcif-capture-mipi.c +++ b/drivers/media/platform/rockchip/rkcif/rkcif-capture-mipi.c @@ -438,6 +438,7 @@ const struct rkcif_mipi_match_data rkcif_rk3568_vicap_m= ipi_match_data =3D { [RKCIF_MIPI_FRAME1_VLW_Y] =3D 0x38, [RKCIF_MIPI_FRAME1_VLW_UV] =3D 0x40, [RKCIF_MIPI_CROP_START] =3D 0xbc, + [RKCIF_MIPI_SET_SIZE] =3D RKCIF_REGISTER_NOTSUPPORTED, }, [RKCIF_ID1] =3D { [RKCIF_MIPI_CTRL0] =3D 0x08, @@ -451,6 +452,7 @@ const struct rkcif_mipi_match_data rkcif_rk3568_vicap_m= ipi_match_data =3D { [RKCIF_MIPI_FRAME1_VLW_Y] =3D 0x58, [RKCIF_MIPI_FRAME1_VLW_UV] =3D 0x60, [RKCIF_MIPI_CROP_START] =3D 0xc0, + [RKCIF_MIPI_SET_SIZE] =3D RKCIF_REGISTER_NOTSUPPORTED, }, [RKCIF_ID2] =3D { [RKCIF_MIPI_CTRL0] =3D 0x10, @@ -464,6 +466,7 @@ const struct rkcif_mipi_match_data rkcif_rk3568_vicap_m= ipi_match_data =3D { [RKCIF_MIPI_FRAME1_VLW_Y] =3D 0x78, [RKCIF_MIPI_FRAME1_VLW_UV] =3D 0x80, [RKCIF_MIPI_CROP_START] =3D 0xc4, + [RKCIF_MIPI_SET_SIZE] =3D RKCIF_REGISTER_NOTSUPPORTED, }, [RKCIF_ID3] =3D { [RKCIF_MIPI_CTRL0] =3D 0x18, @@ -477,6 +480,7 @@ const struct rkcif_mipi_match_data rkcif_rk3568_vicap_m= ipi_match_data =3D { [RKCIF_MIPI_FRAME1_VLW_Y] =3D 0x98, [RKCIF_MIPI_FRAME1_VLW_UV] =3D 0xa0, [RKCIF_MIPI_CROP_START] =3D 0xc8, + [RKCIF_MIPI_SET_SIZE] =3D RKCIF_REGISTER_NOTSUPPORTED, }, }, .blocks =3D { @@ -549,6 +553,7 @@ const struct rkcif_mipi_match_data rkcif_rk3588_vicap_m= ipi_match_data =3D { [RKCIF_MIPI_FRAME1_VLW_Y] =3D RKCIF_REGISTER_NOTSUPPORTED, [RKCIF_MIPI_FRAME1_VLW_UV] =3D RKCIF_REGISTER_NOTSUPPORTED, [RKCIF_MIPI_CROP_START] =3D 0x8c, + [RKCIF_MIPI_SET_SIZE] =3D RKCIF_REGISTER_NOTSUPPORTED, }, [RKCIF_ID1] =3D { [RKCIF_MIPI_CTRL0] =3D 0x08, @@ -562,6 +567,7 @@ const struct rkcif_mipi_match_data rkcif_rk3588_vicap_m= ipi_match_data =3D { [RKCIF_MIPI_FRAME1_VLW_Y] =3D RKCIF_REGISTER_NOTSUPPORTED, [RKCIF_MIPI_FRAME1_VLW_UV] =3D RKCIF_REGISTER_NOTSUPPORTED, [RKCIF_MIPI_CROP_START] =3D 0x90, + [RKCIF_MIPI_SET_SIZE] =3D RKCIF_REGISTER_NOTSUPPORTED, }, [RKCIF_ID2] =3D { [RKCIF_MIPI_CTRL0] =3D 0x10, @@ -575,6 +581,7 @@ const struct rkcif_mipi_match_data rkcif_rk3588_vicap_m= ipi_match_data =3D { [RKCIF_MIPI_FRAME1_VLW_Y] =3D RKCIF_REGISTER_NOTSUPPORTED, [RKCIF_MIPI_FRAME1_VLW_UV] =3D RKCIF_REGISTER_NOTSUPPORTED, [RKCIF_MIPI_CROP_START] =3D 0x94, + [RKCIF_MIPI_SET_SIZE] =3D RKCIF_REGISTER_NOTSUPPORTED, }, [RKCIF_ID3] =3D { [RKCIF_MIPI_CTRL0] =3D 0x18, @@ -588,6 +595,7 @@ const struct rkcif_mipi_match_data rkcif_rk3588_vicap_m= ipi_match_data =3D { [RKCIF_MIPI_FRAME1_VLW_Y] =3D RKCIF_REGISTER_NOTSUPPORTED, [RKCIF_MIPI_FRAME1_VLW_UV] =3D RKCIF_REGISTER_NOTSUPPORTED, [RKCIF_MIPI_CROP_START] =3D 0x98, + [RKCIF_MIPI_SET_SIZE] =3D RKCIF_REGISTER_NOTSUPPORTED, }, }, .blocks =3D { @@ -759,6 +767,8 @@ static int rkcif_mipi_start_streaming(struct rkcif_stre= am *stream) rkcif_mipi_stream_write(stream, RKCIF_MIPI_FRAME0_VLW_UV, vlw); rkcif_mipi_stream_write(stream, RKCIF_MIPI_FRAME1_VLW_UV, vlw); rkcif_mipi_stream_write(stream, RKCIF_MIPI_CROP_START, 0x0); + rkcif_mipi_stream_write(stream, RKCIF_MIPI_SET_SIZE, + RKCIF_XY_COORD(width, height)); rkcif_mipi_stream_write(stream, RKCIF_MIPI_CTRL1, ctrl1); rkcif_mipi_stream_write(stream, RKCIF_MIPI_CTRL0, ctrl0); =20 diff --git a/drivers/media/platform/rockchip/rkcif/rkcif-regs.h b/drivers/m= edia/platform/rockchip/rkcif/rkcif-regs.h index 3cf7ee19de30..0460e963b154 100644 --- a/drivers/media/platform/rockchip/rkcif/rkcif-regs.h +++ b/drivers/media/platform/rockchip/rkcif/rkcif-regs.h @@ -147,6 +147,7 @@ enum rkcif_mipi_id_register_index { RKCIF_MIPI_FRAME1_VLW_Y, RKCIF_MIPI_FRAME1_VLW_UV, RKCIF_MIPI_CROP_START, + RKCIF_MIPI_SET_SIZE, RKCIF_MIPI_ID_REGISTER_MAX }; =20 --=20 2.43.0 From nobody Fri Sep 25 21:03:36 2026 Received: from mail-wr2-f12.google.com (mail-wr2-f12.google.com [74.125.225.76]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D74AD4BE436 for ; Mon, 21 Sep 2026 15:31:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.225.76 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790004698; cv=none; b=evpCFfap8LGXIaMEsrfiXWNRXh3wOFQ1MGA1en5aBXpc+NmL8rBH9J/TOgVPdJCKmJnmQWuSysuLkF+LTM/JZiYYnZXiRMCgYYRSX2cxiQmDGe8yByh1OjsnmB36j08BP0XX4nwdjkYAqUsxJaycJ7phLpVaxOj1N1T+ZkGr3Q0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790004698; c=relaxed/simple; bh=RarTNDU+cdrtiJCRKIjHK9/KtTW/V+grsr3mpwyd0ak=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=lVgnP+0mmuc55LMAOEvT0Y3QE/Jnr7iueY5v2aIBvbaUG1vkoxgn8fBix31UwhMQKyF+7a9j0PiOoqM45UEO4oTmG32Kqmqdjish1XJ2zTCyHDgGXOiO4wUh1/pRgoJXaZwIbkXZ18K5TaCzD9c5AaKqGnU/QCTnqeMSCKt1YOE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=F5bZe2+D; arc=none smtp.client-ip=74.125.225.76 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="F5bZe2+D" Received: by mail-wr2-f12.google.com with SMTP id ffacd0b85a97d-48439feca17so2407383f8f.1 for ; Mon, 21 Sep 2026 08:31:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1790004695; x=1790609495; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=/2HAjOtO4JT6djVdWHJMgChsjtAACcDgZqmOTkPDDE8=; b=F5bZe2+DGIsLh1lWMW+1JoFZoTnTAcAH27fSI1vf6mCua1Ic2x6LPioj8UN6pwF5HF zMD18kN6TUMwltjSHvJGfeyTTqIWaU0CPczTBHKjMsWFB6HtdKE4ISSxsgOp3/c5LGji K8qFvikXhSbpv0jEjILW6u3JT91y7k8JcHUt9UsEs4px+i32AIAVAS+2/7YyeIc1Ugkl IpSvWP9GoWAMoDqEWgWwd4UkIGDN49vId7gkuDl9PF3hvJR4T2LPqG3qN7Gw1DOe1Vnu Jp+gSw3b4ozZL8r80b4LHR1kD1bIbmzPA3fcfW5VJpkKm0CBsyYsTZQIcBhFYy1dYoF4 Uo5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790004695; x=1790609495; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=/2HAjOtO4JT6djVdWHJMgChsjtAACcDgZqmOTkPDDE8=; b=SEUiyKkrsgnmFOzNNVDFKXfKlOPC+804FuxudFBqhFQHRvBDeumeZq5mbJmS2GWiNE XOiXeRMu/q8OKuvIcJV6yG6615aVbo+YrZKu6carTZblLu/PosBZeliNvyyTCL9KWPJ7 nTU95JzNKTWtJf2szdKli2cYgLrnnFP1BsNTn8GK9fnmX4ExamCz53MREz/sFqbw0oLo bS3gkbzb5iBaZYzIqpIGHohVdDqjJyjLVky19pL/6eqZ6BkuczmzPYFjd0wOydKKUAx/ ahnBteipYx2tX/sGuL8Y8V12sLM7TOnlnpGsVYOVgzKSEZcw4LHzjfSrm207gtyNXs6v 3CBQ== X-Forwarded-Encrypted: i=1; AKwUvBw31f/d62rE/X6OqsYc2aQSeIsBEmqu3nIPvMn33Qmevo51d1L2dl2UK5gQiv1udr+OlbwfzUgKFJyP82Y=@vger.kernel.org X-Gm-Message-State: AFuF++l/0y58NbuRYr8O0dSpCCPBG+9+DvKOVJE+bajJ6gN4I4BnBmoy x0JiWcSYU+jt4fjOdLaZ2clfEbH+Krc/4eOcdvAvL6MrFFah0AToI28/ X-Gm-Gg: AYBFou2gVsBWPvH66Xc8VhtRY30j1j4JH4v4vXGIafeoweQQ4hdqGBM3D4aq2UgqBRH wM5nylZ3K7lH9BW4UCwlzoloreyB9IVDVziaQnL7DxbQk0jiM42RBvs9KOtsfSLMCNfeTvQ5G2k ZG3ZLB9sQjnJnoBIEmYKosj19pxUFD50hLKo5KbYMmB1beAezg7gBecvRmoiIa+yHg8kwEWFxtK ap3Z+V651xra1Gv5X6vwf+2IDeVF6sugy3Tj55wia5hyPBV5u9FKkeRDH8aCq1IQB8x5tibpENq rYkBuXPHPIQ02x0CDQ/alud0OFXnRbBEZqJHkaCDun+kfjc27+mJd9Y1O1tnr/v5LymWy351qbE XparFeA0e9RHQwoDqCpC/OJrr1tgDZAeqgeKwopMdO8sCQuEqbqpW3AH9T081+PPQxkUgopFHRC zEDTs2TohozmAsl6APjHbFvBb578uWmB6FeXQolJSFmzcfW99MuOP1RQJ8CR0EGUooVhPDxvbia mLZX2CWG3gZixc6vrOAVNrLuazzoaO7FgtBdq0YYReMxHg7gjNXREicBw== X-Received: by 2002:a05:6000:260d:b0:488:5d3e:becb with SMTP id ffacd0b85a97d-4885d3ec377mr3423054f8f.39.1790004694794; Mon, 21 Sep 2026 08:31:34 -0700 (PDT) Received: from [127.0.1.1] (lmontsouris-656-1-83-121.w82-127.abo.wanadoo.fr. [82.127.110.121]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-48724562aebsm25313835f8f.14.2026.09.21.08.31.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Sep 2026 08:31:34 -0700 (PDT) From: Amin Gattout Date: Mon, 21 Sep 2026 17:29:59 +0200 Subject: [PATCH v2 3/5] media: rockchip: rkcif: add a callback for the MIPI ID_CTRL1 register Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260921-vicap-rk3576-v2-3-0a4582e20c72@gmail.com> References: <20260921-vicap-rk3576-v2-0-0a4582e20c72@gmail.com> In-Reply-To: <20260921-vicap-rk3576-v2-0-0a4582e20c72@gmail.com> To: Mehdi Djait , Michael Riesch , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiko Stuebner Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Amin Gattout X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1790004687; l=2149; i=amin.gattout@gmail.com; s=20260818; h=from:subject:message-id; bh=RarTNDU+cdrtiJCRKIjHK9/KtTW/V+grsr3mpwyd0ak=; b=AfnwiBUYc0Iwvv07IbNj4GLcQp3c8H7KT2SE4wJXU/4N3vJJhNOprP36ijMkFaowrAHFyv3c6 vPvJjApEssmBBjgqwoobVr5BffVD1PUuu8Qebca+Cabc2NfcYXvyCnb X-Developer-Key: i=amin.gattout@gmail.com; a=ed25519; pk=MSIqDPkCOkwtyP8Fns1m+KFU9SgqoDl2mpLe18vL+hQ= The contents of the MIPI ID_CTRL1 register differ between variants. The RK3568 and RK3588 hold the capture size there, while the RK3576 uses it for the virtual channel and data type filter. Let each variant provide a callback that builds the register value, in preparation for the RK3576 support. Variants that do not provide one keep writing the capture size, so their behavior is unchanged. Signed-off-by: Amin Gattout Reviewed-by: Mehdi Djait --- drivers/media/platform/rockchip/rkcif/rkcif-capture-mipi.c | 5 ++++- drivers/media/platform/rockchip/rkcif/rkcif-common.h | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/rockchip/rkcif/rkcif-capture-mipi.c b/d= rivers/media/platform/rockchip/rkcif/rkcif-capture-mipi.c index e0acb9049ca1..432f47a1fc23 100644 --- a/drivers/media/platform/rockchip/rkcif/rkcif-capture-mipi.c +++ b/drivers/media/platform/rockchip/rkcif/rkcif-capture-mipi.c @@ -749,7 +749,10 @@ static int rkcif_mipi_start_streaming(struct rkcif_str= eam *stream) if (match_data->mipi_ctrl0) ctrl0 =3D match_data->mipi_ctrl0(stream, active_out_fmt); =20 - ctrl1 =3D RKCIF_XY_COORD(width, height); + if (match_data->mipi_ctrl1) + ctrl1 =3D match_data->mipi_ctrl1(stream, active_out_fmt); + else + ctrl1 =3D RKCIF_XY_COORD(width, height); =20 int_mask |=3D RKCIF_MIPI_INT_FRAME0_END(stream->id); int_mask |=3D RKCIF_MIPI_INT_FRAME1_END(stream->id); diff --git a/drivers/media/platform/rockchip/rkcif/rkcif-common.h b/drivers= /media/platform/rockchip/rkcif/rkcif-common.h index 4d9211ba9bda..f83c8099b78e 100644 --- a/drivers/media/platform/rockchip/rkcif/rkcif-common.h +++ b/drivers/media/platform/rockchip/rkcif/rkcif-common.h @@ -207,6 +207,8 @@ struct rkcif_mipi_match_data { unsigned int regs_id[RKCIF_ID_MAX][RKCIF_MIPI_ID_REGISTER_MAX]; u32 (*mipi_ctrl0)(struct rkcif_stream *stream, const struct rkcif_output_fmt *active_out_fmt); + u32 (*mipi_ctrl1)(struct rkcif_stream *stream, + const struct rkcif_output_fmt *active_out_fmt); struct { unsigned int offset; } blocks[RKCIF_MIPI_MAX - RKCIF_MIPI_BASE]; --=20 2.43.0 From nobody Fri Sep 25 21:03:36 2026 Received: from mail-wr1-f50.google.com (mail-wr1-f50.google.com [209.85.221.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6F3F84BD366 for ; Mon, 21 Sep 2026 15:31:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790004699; cv=none; b=eubIkYirzyYylmiBWRlpO9TqUCyg7QhK4/9M/+zYRFHXLT1OYGiiQ1QhtrhAu72HzX/2zbycu0bw5eMRTRdjLoE7E6OW5Z6TSkhRBaMBGWVLzCwfr+Lwujm+dtXLm5R8/vRUS31UVQPRjv5mFNQfUmmXBnN3pcYz1j0ZeoPslZ8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790004699; c=relaxed/simple; bh=lMxXbWh9gcYq1Rca1IdpzxHKsuHkIoF7ppljfHLIC0Y=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=U4pj/uukS1CevEdSzdd2UrjDyRHHbF5LmVkITGw07qSzegduYyb0vYpKQ4Oka/WeD1y9FCDM342Bdfuhuwm/nfEApZjm9v8rqkhSAlvWdfJuG8bPE72lw0WsIeNW5FB9rI9g0VLsodLfDfPyCTjcmyKSpCQTnSn5ezCZJfWoB9U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=NUjkNsur; arc=none smtp.client-ip=209.85.221.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="NUjkNsur" Received: by mail-wr1-f50.google.com with SMTP id ffacd0b85a97d-48586861639so7111f8f.0 for ; Mon, 21 Sep 2026 08:31:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1790004696; x=1790609496; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=t6CuawVxIWhEs6YC068dOAO7JxwWhj6Ln8+UX+AQKf0=; b=NUjkNsuruD4Z1Lpplx/2irZIQotrrnIURWeaHrJCNjarjyPqvmjEo/kiIthe+EUokz s3GunG0Nj5j5i3Zgbu77QXkZUqf/O0v8xb5q8cjvj9tXyyT50AeyM/fX/w1PgHR8l6IS sxzQRA+pL9MYTBFWbn/E3r3vhyQJdn9YSaqPX+2QaiJwUDfgrn9aGS0jUig1UdeaqELj 2iwev2K+GGNmTNylZypdgmC+sjD5WQBKNjf7O+25N0sayOYBz1O6rae6BvqLFXxttMwX RsmqPhmXZjvOFfCJsyeO1zfGJ+DIXnADrnSIW6aFVO255H/ytE8y+fnE9AypCTX7UbLb SGIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790004696; x=1790609496; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=t6CuawVxIWhEs6YC068dOAO7JxwWhj6Ln8+UX+AQKf0=; b=LMvqs00v3FD0K6RsUEBiww9DVEIH32k93W/rvb02o9RZab/d0aYxGB46WKAku0vYWQ TtvttRqRDP5sBthavKDSnpnSPuURwvQCngWT4DY6VG1Fbr3TIBsaBT3aft3FskBLEKoA ezc37vBaOP5ndbx+z9I1LiKQOL3CxDNs8/gB8NPBC4pigEBolW89EdUj2XkeHhg6zF1x GtMDJ3uC6BdVkz8upVc5GzTG5uUgt29RQM6kdJ4+fU/ZVNyhU9QJuylYLbu4yrK5fQXY mns+xsClaTrvp90tfuojFRFQdKCBHq/cx8sim+yBenFoPTjPdEHYa52GgZaYQjSM7ppu S5+Q== X-Forwarded-Encrypted: i=1; AKwUvBxd5WpB973DhXJMCiEO4vG5C3B5RG1ixGznqbSl9jJLRw8Wa+jwigHsNbf7gvhSTW12bghZrE6R534k1Hw=@vger.kernel.org X-Gm-Message-State: AFuF++m6HKW6RcGAdlKlqrLYbPqlpLJ+hfzMWC3pOhsqmbMBrqcz3gsn koT5lycw0pBbkP3k7XNHGJBBjbBvLFwW7fdGZW+b8rDxp5CrasB8RBP1 X-Gm-Gg: AYBFou3kKeWFpAG7jJJQdZIHkj7jXvlmZEh3xnM8/s6hc++dnR4SS2JSx3iZpUMFgbI 34Kb0/h5a36Cj9vetNUsA/jmHR9C9L/DDGZUUXZ7zcI08DlVuDYzmSfFwfp5YvjC+Xejk9z6a+S 7a06CikKwPtPFN6jFhsxY/PNMD8/jOP67jhh7FCyP3vCuEJAkZryVCCoH0uKgVdLrtBa0jMcD/Q l1CLwoJdI0oxm7Hxz2nIQmsO/ywtECj7UY5t+6YofrxeTiTBEPWUHKVIHv6dFLnJwyDXf3oGLTp mYft5S/fEUHD83lR4k7XWKjNapD97Cpb0svvnCx4rmVag9obfyZIWvbr8avWHdpH38eFfLSuouK aAAowgf3RbhfrfWRl0gt2l4tD0SOi416S7i6XY36p0FXl0/ofwbjAQ1Wd5Rx+/TumshnUX4XPE4 Y/oHa8lwiYg+VPb32BHa3xi6XUdP6SsZ0PwuWUZEMmUQALOFPa7xeRJ+hZBtalROvIhgUBkjpC2 ObAlwHsKRZr1T0tLppkd2/Rg1OiuqHph362180SNfrrV+M4tqyWEdNYnA== X-Received: by 2002:a05:6000:2f83:b0:487:fb2:1a0f with SMTP id ffacd0b85a97d-48860f7ec9bmr21822f8f.6.1790004695614; Mon, 21 Sep 2026 08:31:35 -0700 (PDT) Received: from [127.0.1.1] (lmontsouris-656-1-83-121.w82-127.abo.wanadoo.fr. [82.127.110.121]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-48724562aebsm25313835f8f.14.2026.09.21.08.31.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Sep 2026 08:31:35 -0700 (PDT) From: Amin Gattout Date: Mon, 21 Sep 2026 17:30:00 +0200 Subject: [PATCH v2 4/5] media: rockchip: rkcif: add support for rk3576 vicap mipi capture Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260921-vicap-rk3576-v2-4-0a4582e20c72@gmail.com> References: <20260921-vicap-rk3576-v2-0-0a4582e20c72@gmail.com> In-Reply-To: <20260921-vicap-rk3576-v2-0-0a4582e20c72@gmail.com> To: Mehdi Djait , Michael Riesch , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiko Stuebner Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Amin Gattout X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1790004687; l=8452; i=amin.gattout@gmail.com; s=20260818; h=from:subject:message-id; bh=lMxXbWh9gcYq1Rca1IdpzxHKsuHkIoF7ppljfHLIC0Y=; b=uMI84BK2y4kV3gSqKg2dSq1XehFV36psClHlnyAtlUyBK1MQg1r5+4FFHzVj8Os+6OuL27QV3 29RLUz2gtu8BidgcVolA3Vt/KDpL9ZSjfGc7/UKGmWD11PVWIOJSTC/ X-Developer-Key: i=amin.gattout@gmail.com; a=ed25519; pk=MSIqDPkCOkwtyP8Fns1m+KFU9SgqoDl2mpLe18vL+hQ= The RK3576 Video Capture (VICAP) unit features a Digital Video Port (DVP) and five MIPI CSI-2 capture interfaces. Compared to the RK3588 variant, the MIPI register blocks are laid out differently (there is no block at offset 0x200), the ID_CTRL0 bit layout has changed, and the VC/DT filter has moved from ID_CTRL0 to ID_CTRL1. The capture size, which the other variants configure in ID_CTRL1, lives in the ID_SET_SIZE register. On the RK3576 the pixel clock of each MIPI port enters the VICAP through a dedicated CRU gate (CLK_VICAP_I0CLK to CLK_VICAP_I4CLK), so the variant claims these five clocks in addition to aclk, hclk and dclk. Signed-off-by: Amin Gattout Reviewed-by: Mehdi Djait --- .../platform/rockchip/rkcif/rkcif-capture-mipi.c | 140 +++++++++++++++++= ++++ .../platform/rockchip/rkcif/rkcif-capture-mipi.h | 1 + .../media/platform/rockchip/rkcif/rkcif-common.h | 2 +- drivers/media/platform/rockchip/rkcif/rkcif-dev.c | 21 ++++ 4 files changed, 163 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/rockchip/rkcif/rkcif-capture-mipi.c b/d= rivers/media/platform/rockchip/rkcif/rkcif-capture-mipi.c index 432f47a1fc23..53e62d059764 100644 --- a/drivers/media/platform/rockchip/rkcif/rkcif-capture-mipi.c +++ b/drivers/media/platform/rockchip/rkcif/rkcif-capture-mipi.c @@ -30,6 +30,14 @@ #define RK3568_MIPI_CTRL0_CROP_EN BIT(5) #define RK3568_MIPI_CTRL0_WRDDR(type) ((type) << 1) =20 +#define RK3576_MIPI_CTRL0_HIGH_ALIGN BIT(11) +#define RK3576_MIPI_CTRL0_WRDDR(type) ((type) << 8) +#define RK3576_MIPI_CTRL0_PARSE(type) ((type) << 4) +#define RK3576_MIPI_CTRL0_DMA_EN BIT(3) +#define RK3576_MIPI_CTRL0_CROP_EN BIT(1) + +#define RK3576_MIPI_CTRL1_DT(dt) ((dt) << 2) + #define RK3588_MIPI_CTRL0_DMA_EN BIT(28) #define RK3588_MIPI_CTRL0_HIGH_ALIGN BIT(27) #define RK3588_MIPI_CTRL0_WRDDR(type) ((type) << 5) @@ -490,6 +498,138 @@ const struct rkcif_mipi_match_data rkcif_rk3568_vicap= _mipi_match_data =3D { }, }; =20 +static u32 +rkcif_rk3576_mipi_ctrl0(struct rkcif_stream *stream, + const struct rkcif_output_fmt *active_out_fmt) +{ + u32 ctrl0 =3D RKCIF_MIPI_CTRL0_CAP_EN | RK3576_MIPI_CTRL0_DMA_EN | + RK3576_MIPI_CTRL0_CROP_EN; + + switch (active_out_fmt->mipi.type) { + case RKCIF_MIPI_TYPE_RAW8: + break; + case RKCIF_MIPI_TYPE_RAW10: + ctrl0 |=3D RK3576_MIPI_CTRL0_PARSE(0x1); + if (!active_out_fmt->mipi.compact) + ctrl0 |=3D RK3576_MIPI_CTRL0_WRDDR(0x1); + break; + case RKCIF_MIPI_TYPE_RAW12: + ctrl0 |=3D RK3576_MIPI_CTRL0_PARSE(0x2); + if (!active_out_fmt->mipi.compact) + ctrl0 |=3D RK3576_MIPI_CTRL0_WRDDR(0x1); + break; + case RKCIF_MIPI_TYPE_RGB888: + ctrl0 |=3D RK3576_MIPI_CTRL0_PARSE(0x7); + break; + case RKCIF_MIPI_TYPE_YUV422SP: + ctrl0 |=3D RK3576_MIPI_CTRL0_WRDDR(0x4); + break; + case RKCIF_MIPI_TYPE_YUV420SP: + ctrl0 |=3D RK3576_MIPI_CTRL0_WRDDR(0x5); + break; + case RKCIF_MIPI_TYPE_YUV400: + ctrl0 |=3D RK3576_MIPI_CTRL0_WRDDR(0x3); + break; + default: + break; + } + + return ctrl0; +} + +static u32 +rkcif_rk3576_mipi_ctrl1(struct rkcif_stream *stream, + const struct rkcif_output_fmt *active_out_fmt) +{ + return RK3576_MIPI_CTRL1_DT(active_out_fmt->mipi.dt); +} + +const struct rkcif_mipi_match_data rkcif_rk3576_vicap_mipi_match_data =3D { + .mipi_num =3D 5, + .mipi_ctrl0 =3D rkcif_rk3576_mipi_ctrl0, + .mipi_ctrl1 =3D rkcif_rk3576_mipi_ctrl1, + .regs =3D { + [RKCIF_MIPI_CTRL] =3D 0x20, + [RKCIF_MIPI_INTEN] =3D 0x74, + [RKCIF_MIPI_INTSTAT] =3D 0x78, + }, + .regs_id =3D { + [RKCIF_ID0] =3D { + [RKCIF_MIPI_CTRL0] =3D 0x00, + [RKCIF_MIPI_CTRL1] =3D 0x04, + [RKCIF_MIPI_FRAME0_ADDR_Y] =3D 0x24, + [RKCIF_MIPI_FRAME0_ADDR_UV] =3D 0x2c, + [RKCIF_MIPI_FRAME0_VLW_Y] =3D 0x34, + [RKCIF_MIPI_FRAME0_VLW_UV] =3D RKCIF_REGISTER_NOTSUPPORTED, + [RKCIF_MIPI_FRAME1_ADDR_Y] =3D 0x28, + [RKCIF_MIPI_FRAME1_ADDR_UV] =3D 0x30, + [RKCIF_MIPI_FRAME1_VLW_Y] =3D RKCIF_REGISTER_NOTSUPPORTED, + [RKCIF_MIPI_FRAME1_VLW_UV] =3D RKCIF_REGISTER_NOTSUPPORTED, + [RKCIF_MIPI_CROP_START] =3D 0x90, + [RKCIF_MIPI_SET_SIZE] =3D 0xa0, + }, + [RKCIF_ID1] =3D { + [RKCIF_MIPI_CTRL0] =3D 0x08, + [RKCIF_MIPI_CTRL1] =3D 0x0c, + [RKCIF_MIPI_FRAME0_ADDR_Y] =3D 0x38, + [RKCIF_MIPI_FRAME0_ADDR_UV] =3D 0x40, + [RKCIF_MIPI_FRAME0_VLW_Y] =3D 0x48, + [RKCIF_MIPI_FRAME0_VLW_UV] =3D RKCIF_REGISTER_NOTSUPPORTED, + [RKCIF_MIPI_FRAME1_ADDR_Y] =3D 0x3c, + [RKCIF_MIPI_FRAME1_ADDR_UV] =3D 0x44, + [RKCIF_MIPI_FRAME1_VLW_Y] =3D RKCIF_REGISTER_NOTSUPPORTED, + [RKCIF_MIPI_FRAME1_VLW_UV] =3D RKCIF_REGISTER_NOTSUPPORTED, + [RKCIF_MIPI_CROP_START] =3D 0x94, + [RKCIF_MIPI_SET_SIZE] =3D 0xa4, + }, + [RKCIF_ID2] =3D { + [RKCIF_MIPI_CTRL0] =3D 0x10, + [RKCIF_MIPI_CTRL1] =3D 0x14, + [RKCIF_MIPI_FRAME0_ADDR_Y] =3D 0x4c, + [RKCIF_MIPI_FRAME0_ADDR_UV] =3D 0x54, + [RKCIF_MIPI_FRAME0_VLW_Y] =3D 0x5c, + [RKCIF_MIPI_FRAME0_VLW_UV] =3D RKCIF_REGISTER_NOTSUPPORTED, + [RKCIF_MIPI_FRAME1_ADDR_Y] =3D 0x50, + [RKCIF_MIPI_FRAME1_ADDR_UV] =3D 0x58, + [RKCIF_MIPI_FRAME1_VLW_Y] =3D RKCIF_REGISTER_NOTSUPPORTED, + [RKCIF_MIPI_FRAME1_VLW_UV] =3D RKCIF_REGISTER_NOTSUPPORTED, + [RKCIF_MIPI_CROP_START] =3D 0x98, + [RKCIF_MIPI_SET_SIZE] =3D 0xa8, + }, + [RKCIF_ID3] =3D { + [RKCIF_MIPI_CTRL0] =3D 0x18, + [RKCIF_MIPI_CTRL1] =3D 0x1c, + [RKCIF_MIPI_FRAME0_ADDR_Y] =3D 0x60, + [RKCIF_MIPI_FRAME0_ADDR_UV] =3D 0x68, + [RKCIF_MIPI_FRAME0_VLW_Y] =3D 0x70, + [RKCIF_MIPI_FRAME0_VLW_UV] =3D RKCIF_REGISTER_NOTSUPPORTED, + [RKCIF_MIPI_FRAME1_ADDR_Y] =3D 0x64, + [RKCIF_MIPI_FRAME1_ADDR_UV] =3D 0x6c, + [RKCIF_MIPI_FRAME1_VLW_Y] =3D RKCIF_REGISTER_NOTSUPPORTED, + [RKCIF_MIPI_FRAME1_VLW_UV] =3D RKCIF_REGISTER_NOTSUPPORTED, + [RKCIF_MIPI_CROP_START] =3D 0x9c, + [RKCIF_MIPI_SET_SIZE] =3D 0xac, + }, + }, + .blocks =3D { + { + .offset =3D 0x100, + }, + { + .offset =3D 0x300, + }, + { + .offset =3D 0x400, + }, + { + .offset =3D 0x500, + }, + { + .offset =3D 0x600, + }, + }, +}; + static u32 rkcif_rk3588_mipi_ctrl0(struct rkcif_stream *stream, const struct rkcif_output_fmt *active_out_fmt) diff --git a/drivers/media/platform/rockchip/rkcif/rkcif-capture-mipi.h b/d= rivers/media/platform/rockchip/rkcif/rkcif-capture-mipi.h index 7edaca44f653..4e17cbc04b76 100644 --- a/drivers/media/platform/rockchip/rkcif/rkcif-capture-mipi.h +++ b/drivers/media/platform/rockchip/rkcif/rkcif-capture-mipi.h @@ -13,6 +13,7 @@ #include "rkcif-common.h" =20 extern const struct rkcif_mipi_match_data rkcif_rk3568_vicap_mipi_match_da= ta; +extern const struct rkcif_mipi_match_data rkcif_rk3576_vicap_mipi_match_da= ta; extern const struct rkcif_mipi_match_data rkcif_rk3588_vicap_mipi_match_da= ta; =20 int rkcif_mipi_register(struct rkcif_device *rkcif); diff --git a/drivers/media/platform/rockchip/rkcif/rkcif-common.h b/drivers= /media/platform/rockchip/rkcif/rkcif-common.h index f83c8099b78e..08a213438d34 100644 --- a/drivers/media/platform/rockchip/rkcif/rkcif-common.h +++ b/drivers/media/platform/rockchip/rkcif/rkcif-common.h @@ -27,7 +27,7 @@ #include "rkcif-regs.h" =20 #define RKCIF_DRIVER_NAME "rockchip-cif" -#define RKCIF_CLK_MAX 5 +#define RKCIF_CLK_MAX 8 =20 enum rkcif_format_type { RKCIF_FMT_TYPE_INVALID, diff --git a/drivers/media/platform/rockchip/rkcif/rkcif-dev.c b/drivers/me= dia/platform/rockchip/rkcif/rkcif-dev.c index be3a174b9aab..2a5758776b3e 100644 --- a/drivers/media/platform/rockchip/rkcif/rkcif-dev.c +++ b/drivers/media/platform/rockchip/rkcif/rkcif-dev.c @@ -53,6 +53,23 @@ static const struct rkcif_match_data rk3568_vicap_match_= data =3D { .mipi =3D &rkcif_rk3568_vicap_mipi_match_data, }; =20 +static const char *const rk3576_vicap_clks[] =3D { + "aclk", + "hclk", + "dclk", + "iclk", + "iclk1", + "iclk2", + "iclk3", + "iclk4", +}; + +static const struct rkcif_match_data rk3576_vicap_match_data =3D { + .clks =3D rk3576_vicap_clks, + .clks_num =3D ARRAY_SIZE(rk3576_vicap_clks), + .mipi =3D &rkcif_rk3576_vicap_mipi_match_data, +}; + static const char *const rk3588_vicap_clks[] =3D { "aclk", "hclk", @@ -76,6 +93,10 @@ static const struct of_device_id rkcif_plat_of_match[] = =3D { .compatible =3D "rockchip,rk3568-vicap", .data =3D &rk3568_vicap_match_data, }, + { + .compatible =3D "rockchip,rk3576-vicap", + .data =3D &rk3576_vicap_match_data, + }, { .compatible =3D "rockchip,rk3588-vicap", .data =3D &rk3588_vicap_match_data, --=20 2.43.0 From nobody Fri Sep 25 21:03:36 2026 Received: from mail-wr2-f12.google.com (mail-wr2-f12.google.com [74.125.225.76]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 60F424BE457 for ; Mon, 21 Sep 2026 15:31:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.225.76 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790004701; cv=none; b=bS4ix7IwxEvjxmX7cRUB5rH2WuQSluEw2hbBX9CP0z2kkBWEKT9WfGgS7JHySNhfrn//19kXQM0f0moOxiYM11kT5P8sIvXcd+HmBuGgYmNYvcozjdolbqS+Wz1QGFiwlnncDxuHi9IWCWEEUBnwlRkZcgplAgvRv/ZNpAmM+Ss= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790004701; c=relaxed/simple; bh=ZC4qyA+QqW+G5Bs4L+6PfR/B7WGJI496vaWFRnkBXSU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=hhdxq2RRgGwYtDBCtTC2b8mjmXSaeWBPG3q/fmszz56fH7gViWdP2BRZIhK2ugTw7E3RJXk1mN+iQ/SnyY2YGxZRHsLxhQMHPN9mIMkfGphokFFCIa/CVMbAWZLNbQeR6zKYy8Ifekfjgt753YVYrrn4DXVGOISxaT/ZZHmdwiY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=jQv0XWph; arc=none smtp.client-ip=74.125.225.76 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="jQv0XWph" Received: by mail-wr2-f12.google.com with SMTP id ffacd0b85a97d-4858bc96fabso2552066f8f.3 for ; Mon, 21 Sep 2026 08:31:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1790004696; x=1790609496; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=rG0PGngxZ9eJCxWKdqWKn36vkLKB7SwSqjxijh1UYCU=; b=jQv0XWphQsZvnGcO64PlTAYgerbS4J9mXyaDtWy5CVSMZ4qcYiBqUSuecj7jUo7a6v 7Hbk8pWm7yC+SuoE5XKtMfXa6UOtOQYVGuQRDNZ+aer8JIQkVOGS8lbxGgnar9pzbv9m ZEynk/wfzKvd0NcOpt3I9S0cASg4P27itHSm/kIWLpzjXR1XYsR+C6iCWJe18Eu2mj3E a5Xh8LMxGldAOTJ6DYNhjPDLnJyv7lN6aSmrVnk90rTJ+Vv6dNOm+9TxlM60ILWahRZx 8mH7h/BgTEuO4+frZRiyTs75H9WRj+piAi+RYTaLks+y1vplJzhqmMWG+ju0y9GZrtdh KW8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790004696; x=1790609496; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=rG0PGngxZ9eJCxWKdqWKn36vkLKB7SwSqjxijh1UYCU=; b=S3kZFev/1lVhnle65YV1nP2Z9UfK0T/dxTZ9fdcT7sD7EwRp/LTit+NcHD/NXTYRV2 A6IXGVRwJumdNQ48+gO3vPl/LtwG0rhfhSigNNYXm+FAUM3zqRl8sqEGbc0pHNjwHnJT DOzv5GVb7jjXZl28u3pSmLLve/2Bn3IpqBZi+0knaIP8b+2TDgXjXWtbNx5ki4jNTHjn LFWdznRf7Cd8+gUwIPzBBgNaUJeBGLMiz+1BKG8M5ZrVe0yz285yrxI5moYwWCoqwdo9 ZfKdgnR4IMtzOXRM1yR/F/mNuW0snqz7XY1qB2JjVHQRjxXjRn6fljrYtMXiReoMMhZV xpLA== X-Forwarded-Encrypted: i=1; AKwUvByNBd/gLVquRsOOwWG/NNhu/HbBIyZsmGiatPSmnDmZHBVpnoaoD457Y7f2NWiG+rKeO7Xio/YnDqgVy1o=@vger.kernel.org X-Gm-Message-State: AFuF++m+AJEO2O3E/hCZpIRkkQMwvefwCiwBufkzmMYO9EO4+F5VAczk n+upastUJXsJ+LkdZ6FKIjIt1byVTej8WhNMVvlNjWXC610KTY4O0pS9 X-Gm-Gg: AYBFou0lNxhywme/tNK4qwSYePTDbCMS878DTuNxgHbePkcF6CesPJ6TZtPZqwvtTRx GDGjCQtjWk+fXKmhFHkIWxImLqxj1uVxtyRUruf1pYjDMllFAVyxpgM5sivZBWDihL+TXSyXtx4 zMh69QMcn1eygbGw43pxAtPaN04Y3KfUCP9IVftY2b9NeiOVUAtYrSHCt8wDFArZia0P7uGUFb1 QxTe0D4FqAW9jN5FZT/kidWFZFjtBd0FIbhWgxeH//CWu/CxH3iRqne0krZc28ehduW2gyNdDeR tObuMyLqGQ9EkbkM/XlErU309paq8i/RcfKoDgo2F12CsBEhQXyfKJu44lJB6TjeFcvMk7HB327 wuY4vztdjR54QEwKCjemKg3CNnLGQ+Sh0isbGuddLKOxTbRvjgXGMRvIBdufFcht8XAolPv5zqN 31F76k4ly7JsiTGZjVTkej/JZz5dBvPziVal7vSAIesDSiqhOAxTctCVNQp1lzu8EpE+tCVYAPn UogoiNBIBfqjWPB7kyjGcj/5d7juGgWQCLJNTB6f2VCn0fYl/Zw0pLfdg== X-Received: by 2002:a05:6000:26cc:b0:486:f9d9:fe0d with SMTP id ffacd0b85a97d-4871e3961dcmr15911596f8f.29.1790004696322; Mon, 21 Sep 2026 08:31:36 -0700 (PDT) Received: from [127.0.1.1] (lmontsouris-656-1-83-121.w82-127.abo.wanadoo.fr. [82.127.110.121]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-48724562aebsm25313835f8f.14.2026.09.21.08.31.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Sep 2026 08:31:35 -0700 (PDT) From: Amin Gattout Date: Mon, 21 Sep 2026 17:30:01 +0200 Subject: [PATCH v2 5/5] arm64: dts: rockchip: add vicap node to rk3576 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260921-vicap-rk3576-v2-5-0a4582e20c72@gmail.com> References: <20260921-vicap-rk3576-v2-0-0a4582e20c72@gmail.com> In-Reply-To: <20260921-vicap-rk3576-v2-0-0a4582e20c72@gmail.com> To: Mehdi Djait , Michael Riesch , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiko Stuebner Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Amin Gattout X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1790004687; l=3338; i=amin.gattout@gmail.com; s=20260818; h=from:subject:message-id; bh=ZC4qyA+QqW+G5Bs4L+6PfR/B7WGJI496vaWFRnkBXSU=; b=0LFg7TskclcAaCKsLisQlh1M5J7hMLHO+H4Vs4clqqE8Vi5mMqDn0Btt6CcQ37cSRzpVaha+6 WJotjvQpMwjD/J9lQ19LZJojwTq6AFHEacSCgvrUauDIJ1MgRuVpGdE X-Developer-Key: i=amin.gattout@gmail.com; a=ed25519; pk=MSIqDPkCOkwtyP8Fns1m+KFU9SgqoDl2mpLe18vL+hQ= Add the device tree node for the Video Capture (VICAP) unit of the RK3576 and its IOMMU, and connect the VICAP to the two MIPI CSI-2 receivers that are usable with the MIPI D-PHYs in full mode. Reviewed-by: Michael Riesch Signed-off-by: Amin Gattout Reviewed-by: Mehdi Djait --- arch/arm64/boot/dts/rockchip/rk3576.dtsi | 83 ++++++++++++++++++++++++++++= ++++ 1 file changed, 83 insertions(+) diff --git a/arch/arm64/boot/dts/rockchip/rk3576.dtsi b/arch/arm64/boot/dts= /rockchip/rk3576.dtsi index cbf8b70cc15a..0c46accf5657 100644 --- a/arch/arm64/boot/dts/rockchip/rk3576.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3576.dtsi @@ -1323,6 +1323,81 @@ vdec_mmu: iommu@27b00800 { rockchip,disable-mmu-reset; #iommu-cells =3D <0>; }; + vicap: video-capture@27c10000 { + compatible =3D "rockchip,rk3576-vicap"; + reg =3D <0x0 0x27c10000 0x0 0x800>; + interrupts =3D ; + clocks =3D <&cru ACLK_VICAP>, <&cru HCLK_VICAP>, + <&cru DCLK_VICAP>, + <&cru CLK_VICAP_I0CLK>, <&cru CLK_VICAP_I1CLK>, + <&cru CLK_VICAP_I2CLK>, <&cru CLK_VICAP_I3CLK>, + <&cru CLK_VICAP_I4CLK>; + clock-names =3D "aclk", "hclk", "dclk", + "iclk", "iclk1", "iclk2", "iclk3", "iclk4"; + iommus =3D <&vicap_mmu>; + power-domains =3D <&power RK3576_PD_VI>; + resets =3D <&cru SRST_A_VICAP>, <&cru SRST_H_VICAP>, + <&cru SRST_D_VICAP>, + <&cru SRST_VICAP_I0CLK>, <&cru SRST_VICAP_I1CLK>, + <&cru SRST_VICAP_I2CLK>, <&cru SRST_VICAP_I3CLK>, + <&cru SRST_VICAP_I4CLK>; + reset-names =3D "arst", "hrst", "drst", + "irst0", "irst1", "irst2", "irst3", "irst4"; + status =3D "disabled"; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + vicap_dvp: port@0 { + reg =3D <0x0>; + }; + + vicap_mipi0: port@1 { + reg =3D <0x1>; + }; + + vicap_mipi1: port@2 { + reg =3D <0x2>; + + vicap_mipi1_input: endpoint { + remote-endpoint =3D <&csi1_output>; + }; + }; + + vicap_mipi2: port@3 { + reg =3D <0x3>; + }; + + vicap_mipi3: port@4 { + reg =3D <0x4>; + + vicap_mipi3_input: endpoint { + remote-endpoint =3D <&csi3_output>; + }; + }; + + vicap_mipi4: port@5 { + reg =3D <0x5>; + }; + + vicap_toisp0: port@10 { + reg =3D <0x10>; + }; + }; + }; + + vicap_mmu: iommu@27c10800 { + compatible =3D "rockchip,rk3576-iommu", "rockchip,rk3568-iommu"; + reg =3D <0x0 0x27c10800 0x0 0x100>; + interrupts =3D ; + clocks =3D <&cru ACLK_VICAP>, <&cru HCLK_VICAP>; + clock-names =3D "aclk", "iface"; + power-domains =3D <&power RK3576_PD_VI>; + rockchip,disable-mmu-reset; + #iommu-cells =3D <0>; + status =3D "disabled"; + }; =20 csi1: csi@27c90000 { compatible =3D "rockchip,rk3576-mipi-csi2", "rockchip,rk3568-mipi-csi2"; @@ -1346,6 +1421,10 @@ csi1_in: port@0 { =20 csi1_out: port@1 { reg =3D <1>; + + csi1_output: endpoint { + remote-endpoint =3D <&vicap_mipi1_input>; + }; }; }; }; @@ -1372,6 +1451,10 @@ csi3_in: port@0 { =20 csi3_out: port@1 { reg =3D <1>; + + csi3_output: endpoint { + remote-endpoint =3D <&vicap_mipi3_input>; + }; }; }; }; --=20 2.43.0