From: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
To: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Cc: linux-media@vger.kernel.org, bod@kernel.org, mchehab@kernel.org,
robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org,
andersson@kernel.org, konradybcio@kernel.org,
loic.poulain@linaro.org, linux-arm-msm@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v6 1/3] dt-bindings: media: qcom: Add JPEG encoder binding
Date: Thu, 30 Jul 2026 19:24:14 +0300 [thread overview]
Message-ID: <deee4b5e-167a-4f37-b2fa-84f06ec33721@oss.qualcomm.com> (raw)
In-Reply-To: <3cbnmjmit4gsldga5nzct4odg6hpixzlwxbj72elnogyevr2tg@6esyjj2mvyom>
On 7/30/2026 6:39 PM, Dmitry Baryshkov wrote:
> On Thu, Jul 30, 2026 at 06:05:22PM +0300, Atanas Filipov wrote:
>> Add device-tree binding for the Qualcomm JPEG encoder hardware block
>> present in SM8250 (Kona) SoCs.
>>
>> The JPEG encoder is a standalone hardware IP within the camera subsystem
>> that performs JPEG compression in memory-to-memory fashion. It is
>> separate from the CAMSS ISP pipeline and has its own register space,
>> interrupt, clocks, power domain, IOMMU streams, and interconnect paths.
>>
>> Signed-off-by: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
>> ---
>> .../bindings/media/qcom,sm8250-jpeg-enc.yaml | 156 ++++++++++++++++++
>> 1 file changed, 156 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/media/qcom,sm8250-jpeg-enc.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/media/qcom,sm8250-jpeg-enc.yaml b/Documentation/devicetree/bindings/media/qcom,sm8250-jpeg-enc.yaml
>> new file mode 100644
>> index 000000000000..70f573100573
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/media/qcom,sm8250-jpeg-enc.yaml
>> @@ -0,0 +1,156 @@
>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/media/qcom,sm8250-jpeg-enc.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Qualcomm JPEG Encoder
>> +
>> +maintainers:
>> + - Atanas Filipov <atanas.filipov@oss.qualcomm.com>
>> +
>> +description:
>> + Qualcomm JPEG Encoder is the JPEG encode hardware present in Qualcomm SoCs.
>> + The encoder is a standalone hardware IP within the camera subsystem that
>> + performs JPEG compression in memory-to-memory fashion.
>> +
>> +properties:
>> + compatible:
>> + enum:
>> + - qcom,sm8250-jpeg-enc
>> +
>> + reg:
>> + maxItems: 1
>> +
>> + interrupts:
>> + maxItems: 1
>> +
>> + clocks:
>> + maxItems: 5
>> +
>> + clock-names:
>> + items:
>> + - const: sf_axi
>> + - const: core_ahb
>> + - const: cpas_ahb
>> + - const: cnoc_axi
>> + - const: jpeg
>> +
>> + power-domains:
>> + maxItems: 3
>> +
>> + power-domain-names:
>> + items:
>> + - const: titan_top
>> + - const: mmcx
>> + - const: mx
>> +
>> + interconnects:
>> + maxItems: 2
>> +
>> + interconnect-names:
>> + items:
>> + - const: cpu-cfg
>> + - const: sf-mnoc
>> +
>> + iommus:
>> + description:
>> + SMMU stream ID for the JPEG hardware. The stream ID 0x2040 is used
>> + for the JPEG core engine on SM8250.
>> + maxItems: 1
>> +
>> + operating-points-v2: true
>> +
>> + opp-table:
>> + type: object
>> +
>> +required:
>> + - compatible
>> + - reg
>> + - clocks
>> + - clock-names
>> + - interrupts
>> + - power-domains
>> + - power-domain-names
>> + - interconnects
>> + - interconnect-names
>> + - iommus
>> +
>> +additionalProperties: false
>> +
>> +examples:
>> + - |
>> + #include <dt-bindings/clock/qcom,camcc-sm8250.h>
>> + #include <dt-bindings/clock/qcom,gcc-sm8250.h>
>> + #include <dt-bindings/interconnect/qcom,icc.h>
>> + #include <dt-bindings/interconnect/qcom,sm8250.h>
>> + #include <dt-bindings/interrupt-controller/arm-gic.h>
>> + #include <dt-bindings/power/qcom,rpmhpd.h>
>> +
>> + jpeg-encoder@ac53000 {
>> + compatible = "qcom,sm8250-jpeg-enc";
>> + reg = <0x0ac53000 0x1000>;
>> +
>> + interrupts = <GIC_SPI 474 IRQ_TYPE_EDGE_RISING>;
>> +
>> + power-domains = <&camcc TITAN_TOP_GDSC>,
>> + <&rpmhpd RPMHPD_MMCX>,
>> + <&rpmhpd RPMHPD_MX>;
>> + power-domain-names = "titan_top", "mmcx", "mx";
>> +
>> + clocks = <&gcc GCC_CAMERA_SF_AXI_CLK>,
>> + <&camcc CAM_CC_CORE_AHB_CLK>,
>> + <&camcc CAM_CC_CPAS_AHB_CLK>,
>> + <&camcc CAM_CC_CAMNOC_AXI_CLK>,
>> + <&camcc CAM_CC_JPEG_CLK>;
>> + clock-names = "sf_axi",
>> + "core_ahb",
>> + "cpas_ahb",
>> + "cnoc_axi",
>> + "jpeg";
>
> What are the pin input names for these clocks on the JPEG side? Can we
> use a better name?
>
In my opinion, there is no such thing as a better name; the only
important thing is that it matches the HW documentation. As can be seen
from the clock names in the FW shown above. So, could you be more
specific about which names you would like to see used here?
Regards,
Atanas
>> +
>> + interconnects = <&gem_noc MASTER_AMPSS_M0 QCOM_ICC_TAG_ACTIVE_ONLY
>> + &config_noc SLAVE_CAMERA_CFG QCOM_ICC_TAG_ACTIVE_ONLY>,
>> + <&mmss_noc MASTER_CAMNOC_SF QCOM_ICC_TAG_ALWAYS
>> + &mc_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ALWAYS>;
>> + interconnect-names = "cpu-cfg",
>> + "sf-mnoc";
>> +
>> + iommus = <&apps_smmu 0x2040 0x400>;
>> +
>> + operating-points-v2 = <&jpeg_opp_table>;
>> +
>> + jpeg_opp_table: opp-table {
>> + compatible = "operating-points-v2";
>> +
>> + opp-100000000 {
>> + opp-hz = /bits/ 64 <400000000>,
>> + /bits/ 64 <100000000>;
>
> So, you've identified the issue earlier. The shared clocks need to be
> scaled, taking all users in account. Please come up with the solution
> too.
>
>> + required-opps = <&rpmhpd_opp_min_svs>;
>> + };
>> +
>> + opp-200000000 {
>> + opp-hz = /bits/ 64 <400000000>,
>> + /bits/ 64 <200000000>;
>> + required-opps = <&rpmhpd_opp_low_svs>;
>> + };
>> +
>> + opp-400000000 {
>> + opp-hz = /bits/ 64 <400000000>,
>> + /bits/ 64 <400000000>;
>> + required-opps = <&rpmhpd_opp_svs>;
>> + };
>> +
>> + opp-480000000 {
>> + opp-hz = /bits/ 64 <400000000>,
>> + /bits/ 64 <480000000>;
>> + required-opps = <&rpmhpd_opp_svs_l1>;
>> + };
>> +
>> + opp-600000000 {
>> + opp-hz = /bits/ 64 <400000000>,
>> + /bits/ 64 <600000000>;
>> + required-opps = <&rpmhpd_opp_nom>;
>> + };
>> + };
>> + };
>> --
>> 2.34.1
>>
>
next prev parent reply other threads:[~2026-07-30 16:24 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-30 15:05 [PATCH v6 0/3] Add Qualcomm JPEG V4L2 encoder for SM8250 Atanas Filipov
2026-07-30 15:05 ` [PATCH v6 1/3] dt-bindings: media: qcom: Add JPEG encoder binding Atanas Filipov
2026-07-30 15:39 ` Dmitry Baryshkov
2026-07-30 16:24 ` Atanas Filipov [this message]
2026-07-30 15:05 ` [PATCH v6 2/3] media: qcom: jpeg: Add Qualcomm JPEG V4L2 encoder Atanas Filipov
2026-07-30 15:20 ` sashiko-bot
2026-07-30 15:57 ` Dmitry Baryshkov
2026-07-30 15:05 ` [PATCH v6 3/3] arm64: dts: qcom: sm8250: Add JPEG encoder node Atanas Filipov
2026-07-30 15:31 ` sashiko-bot
2026-07-30 16:01 ` Dmitry Baryshkov
2026-07-30 18:02 ` Atanas Filipov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=deee4b5e-167a-4f37-b2fa-84f06ec33721@oss.qualcomm.com \
--to=atanas.filipov@oss.qualcomm.com \
--cc=andersson@kernel.org \
--cc=bod@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dmitry.baryshkov@oss.qualcomm.com \
--cc=konradybcio@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=loic.poulain@linaro.org \
--cc=mchehab@kernel.org \
--cc=robh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.