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