[PATCH v12 03/15] dt-bindings: media: Add bindings for ARM mali-c55
Dan Scally
dan.scally at ideasonboard.com
Mon Nov 3 08:17:24 PST 2025
Hi Prabhakar
On 28/10/2025 18:23, Lad, Prabhakar wrote:
> Hi Daniel,
>
> Thank you for the patch.
>
> On Thu, Oct 2, 2025 at 11:19 AM Daniel Scally
> <dan.scally at ideasonboard.com> wrote:
>>
>> Add the yaml binding for ARM's Mali-C55 Image Signal Processor.
>>
>> Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
>> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski at linaro.org>
>> Acked-by: Nayden Kanchev <nayden.kanchev at arm.com>
>> Co-developed-by: Jacopo Mondi <jacopo.mondi at ideasonboard.com>
>> Signed-off-by: Jacopo Mondi <jacopo.mondi at ideasonboard.com>
>> Signed-off-by: Daniel Scally <dan.scally at ideasonboard.com>
>> ---
>> Changes in v12:
>>
>> - _Actually_ dropped the arm,inline property mode, having forgotten to
>> do so in v11.
>>
>> Changes in v11:
>>
>> - Dropped in arm,inline_mode property. This is now identical to the
>> reviewed version 8, so I have kept the tags on there.
>>
>> Changes in v10:
>>
>> - None
>>
>> Changes in v9:
>>
>> - Added the arm,inline_mode property to differentiate between inline and
>> memory input configurations
>>
>> Changes in v8:
>>
>> - Added the video clock back in. Now that we have actual hardware it's
>> clear that it's necessary.
>> - Added reset lines
>> - Dropped R-bs
>>
>> Changes in v7:
>>
>> - None
>>
>> Changes in v6:
>>
>> - None
>>
>> Changes in v5:
>>
>> - None
>>
>> Changes in v4:
>>
>> - Switched to port instead of ports
>>
>> Changes in v3:
>>
>> - Dropped the video clock as suggested by Laurent. I didn't retain it
>> for the purposes of the refcount since this driver will call .s_stream()
>> for the sensor driver which will refcount the clock anyway.
>> - Clarified that the port is a parallel input port rather (Sakari)
>>
>> Changes in v2:
>>
>> - Added clocks information
>> - Fixed the warnings raised by Rob
>> ---
>> .../devicetree/bindings/media/arm,mali-c55.yaml | 82 ++++++++++++++++++++++
>> 1 file changed, 82 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/media/arm,mali-c55.yaml b/Documentation/devicetree/bindings/media/arm,mali-c55.yaml
>> new file mode 100644
>> index 0000000000000000000000000000000000000000..efc88fd2c447e98dd82a1fc1bae234147eb967a8
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/media/arm,mali-c55.yaml
>> @@ -0,0 +1,82 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/media/arm,mali-c55.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: ARM Mali-C55 Image Signal Processor
>> +
>> +maintainers:
>> + - Daniel Scally <dan.scally at ideasonboard.com>
>> + - Jacopo Mondi <jacopo.mondi at ideasonboard.com>
>> +
>> +properties:
>> + compatible:
>> + const: arm,mali-c55
>> +
>> + reg:
>> + maxItems: 1
>> +
>> + interrupts:
>> + maxItems: 1
>> +
>> + clocks:
>> + items:
>> + - description: ISP Video Clock
>> + - description: ISP AXI clock
>> + - description: ISP AHB-lite clock
> As per RZ/V2H HW manual we have reg clock looking at the driver code
> it does have readl. IVC has reg clock if IVC driver fails are you
> still able to read/write regs from ISP driver?
>
> I think we do need to pass reg clock too.
Yes - but I should clarify that the names are from the arm documentation that we had when we
originally developed the ISP driver. The RZ/V2H documentation treats the ISP and IVC as one block
that shares 4 clocks and resets, but when we originally developed the ISP driver the platform we
used had the ISP implemented as an inline configuration (taking data directly from a csi-2 receiver
without an IVC equivalent), and the documentation detailed just the three clocks and resets. The
dtsi changes for the RZ/V2H(P) [1] assign clocks 226, 228 and 229 to the ISP which are named
reg_aclk, vin_aclk and isp_sclk in the renesas documentation.
The IVC gets pclk, vin_aclk and isp_sclk.
[1] https://lore.kernel.org/linux-renesas-soc/20251010-kakip_dts-v1-1-64f798ad43c9@ideasonboard.com/
> Also for IVC we do have a main clock (which is a system clock). Can
> you please educate me on what is the purpose of it. Just curious as we
> pass to IVC and not ISP.
The IVC uniquely gets the one called "pclk" in renesas documentation, with the description "Input
Video Control block register access APB clock".
Thanks
Dan
>
>> +
>> + clock-names:
>> + items:
>> + - const: vclk
>> + - const: aclk
>> + - const: hclk
> Not sure if we want to have the same names as IVC or vice versa.
>
>> +
>> + resets:
>> + items:
>> + - description: vclk domain reset
>> + - description: aclk domain reset
>> + - description: hclk domain reset
> Same query here, wrt register reset.
>
>> +
>> + reset-names:
>> + items:
>> + - const: vresetn
>> + - const: aresetn
>> + - const: hresetn
> ditto naming.
>
>> +
>> + port:
>> + $ref: /schemas/graph.yaml#/properties/port
>> + description: Input parallel video bus
>> +
>> + properties:
>> + endpoint:
>> + $ref: /schemas/graph.yaml#/properties/endpoint
>> +
>> +required:
>> + - compatible
>> + - reg
>> + - interrupts
>> + - clocks
>> + - clock-names
>> + - port
> maybe also resets and rest-names should be part of required properties?
>
>> +
>> +additionalProperties: false
>> +
>> +examples:
>> + - |
>> + mali_c55: isp at 400000 {
> we could drop `mali_c55`
>
>> + compatible = "arm,mali-c55";
>> + reg = <0x400000 0x200000>;
>> + clocks = <&clk 0>, <&clk 1>, <&clk 2>;
>> + clock-names = "vclk", "aclk", "hclk";
>> + resets = <&resets 0>, <&resets 1>, <&resets 2>;
>> + reset-names = "vresetn", "aresetn", "hresetn";
>> + interrupts = <0>;
> I would have a non-zero val here.
>
> Cheers,
> Prabhakar
>
>> +
>> + port {
>> + isp_in: endpoint {
>> + remote-endpoint = <&csi2_rx_out>;
>> + };
>> + };
>> + };
>> +...
>>
>> --
>> 2.43.0
>>
>>
More information about the linux-arm-kernel
mailing list