Re: [PATCH v2 1/3] dt-bindings: interconnect: Add Qualcomm CAMNOC ICC binding

Krzysztof Kozlowski <[email protected]>
Newsgroups org.kernel.vger.linux-pm,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel
Message-ID <20260827-thistle-puffin-of-chivalry-bccc47@quoll>
On Wed, Aug 19, 2026 at 12:32:09PM +0300, Atanas Filipov wrote:
> Add binding for the Qualcomm CAMNOC interconnect provider. CAMNOC is
> the internal AXI interconnect within the camera subsystem. Multiple
> sub-devices share CAM_CC_CAMNOC_AXI_CLK; the ICC provider aggregates
> their bandwidth votes and scales the clock accordingly, avoiding the
> last-writer-wins race from direct clk_set_rate() calls.
> 
> Signed-off-by: Atanas Filipov <[email protected]>
> ---
>  .../bindings/interconnect/qcom,camnoc.yaml    | 124 ++++++++++++++++++
>  .../dt-bindings/interconnect/qcom,camnoc.h    |  52 ++++++++
>  2 files changed, 176 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/interconnect/qcom,camnoc.yaml
>  create mode 100644 include/dt-bindings/interconnect/qcom,camnoc.h
> 
> diff --git a/Documentation/devicetree/bindings/interconnect/qcom,camnoc.yaml b/Documentation/devicetree/bindings/interconnect/qcom,camnoc.yaml
> new file mode 100644
> index 000000000000..b2659db2cf27
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/interconnect/qcom,camnoc.yaml

Filename must match compatible.

> @@ -0,0 +1,124 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/interconnect/qcom,camnoc.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Qualcomm Camera NOC (CAMNOC) Interconnect Provider
> +
> +maintainers:
> +  - Atanas Filipov <[email protected]>
> +
> +description:
> +  The Camera Network-on-Chip (CAMNOC) is the internal AXI interconnect
> +  within the Qualcomm camera subsystem. It arbitrates AXI bandwidth
> +  between camera sub-devices (IFE, JPEG, BPS, IPE, etc.) and the external
> +  memory interconnect. Multiple consumers may independently request
> +  bandwidth via icc_set_bw(); the CAMNOC ICC provider aggregates all active
> +  votes and scales CAM_CC_CAMNOC_AXI_CLK accordingly, avoiding the
> +  last-writer-wins race that arises when each consumer calls clk_set_rate()
> +  directly on the shared clock.
> +
> +  Each camera sub-device driver that shares the CAMNOC AXI clock should
> +  obtain an ICC path from its master port to SLAVE_CAMNOC_AXI and vote for
> +  bandwidth using the port IDs defined in
> +  include/dt-bindings/interconnect/qcom,camnoc.h.
> +
> +properties:
> +  compatible:
> +    enum:
> +      - qcom,sm8250-cam-virt
> +
> +  clocks:
> +    items:
> +      - description: CAMNOC AXI clock
> +
> +  clock-names:
> +    items:
> +      - const: camnoc_axi
> +
> +  '#interconnect-cells':
> +    const: 1
> +
> +required:
> +  - compatible
> +  - clocks
> +  - clock-names
> +  - '#interconnect-cells'
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/clock/qcom,camcc-sm8250.h>
> +    #include <dt-bindings/interconnect/qcom,camnoc.h>
> +
> +    /* CAMNOC ICC provider node */

Drop, redundant.

> +    cam_virt: interconnect-cam-virt {

Drop unused label

> +        compatible = "qcom,sm8250-cam-virt";
> +        clocks = <&camcc CAM_CC_CAMNOC_AXI_CLK>;
> +        clock-names = "camnoc_axi";
> +        #interconnect-cells = <1>;
> +    };
> +
> +    /*
> +     * Simple consumer example: IFE sub-device voting for CAMNOC bandwidth


And what are the writing schema/bindings asking about consumers? Or
DTS101 slides? Look at other bindings instead of coming with own style.

Best regards,
Krzysztof
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.