[PATCH 3/3] media: allegro-dvt: Add DT-bindings for the Gen 3 IP

Yassine Ouaissa posted 3 patches 7 months, 1 week ago
There is a newer version of this series
[PATCH 3/3] media: allegro-dvt: Add DT-bindings for the Gen 3 IP
Posted by Yassine Ouaissa 7 months, 1 week ago
Add the device-tree bindings for the allegro-dvt Gen 3 IP decoders, and
update the MAINTAINERS file.

Signed-off-by: Yassine Ouaissa <yassine.ouaissa@allegrodvt.com>
---
 .../bindings/media/allegrodvt,al300-vdec.yaml | 86 +++++++++++++++++++
 MAINTAINERS                                   |  1 +
 2 files changed, 87 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/media/allegrodvt,al300-vdec.yaml

diff --git a/Documentation/devicetree/bindings/media/allegrodvt,al300-vdec.yaml b/Documentation/devicetree/bindings/media/allegrodvt,al300-vdec.yaml
new file mode 100644
index 000000000000..ea4a55de570c
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/allegrodvt,al300-vdec.yaml
@@ -0,0 +1,86 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/allegrodvt,al300-vdec.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Allegro DVT Video IP Decoder Gen 3
+
+maintainers:
+  - Yassine OUAISSA <yassine.ouaissa@allegrodvt.com>
+
+description: |-
+  The al300-vdec represents the latest generation of Allegro DVT IP decoding technology, offering
+  significant advancements over its predecessors. This new decoder features
+  enhanced processing capabilities with improved throughput and reduced latency.
+
+  Communication between the host driver software and the MCU is implemented through
+  a specialized mailbox interface mechanism. This mailbox system provides a
+  structured channel for exchanging commands, parameters, and status information
+  between the host CPU and the MCU controlling the codec engines.
+
+properties:
+  compatible:
+    const: allegrodvt,al300-vdec
+
+  reg:
+    items:
+      - description: The registers
+      - description: the MCU APB register
+
+  reg-names:
+    items:
+      - const: regs
+      - const: apb
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: MCU clock
+
+  clock-names:
+    items:
+      - const: mcu_clk
+
+  memory-region:
+    items:
+      - description: Used to allocate memory for the MCU firmware,
+      and is also used for various operational buffers required by the MCU during codec operations.
+
+  firmware-name:
+    $ref: /schemas/types.yaml#/definitions/string
+    description:
+      If present, name of the file within the firmware search path containing
+      the MCU firmware.
+
+required:
+  - compatible
+  - reg
+  - reg-names
+  - interrupts
+  - clocks
+  - clock-names
+
+additionalProperties: False
+
+examples:
+  - |
+    axi {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        ald300: ald300@a0120000 {
+            compatible = "allegrodvt,al300-vdec";
+            reg = <0 0xa0120000 0 0x80000>,
+            <0x01 0x8000000 0x00 0x8000000>;
+            reg-names = "regs", "apb";
+            interrupts = <0 96 4>;
+            clocks = <&mcu_clock_dec>;
+            clock-names = "mcu_clk";
+            firmware-name = "al300_vdec.fw";
+        };
+    };
+
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index 313d08cf90e0..8912fabab6ed 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -807,6 +807,7 @@ R:	Pengutronix Kernel Team <kernel@pengutronix.de>
 L:	linux-media@vger.kernel.org
 S:	Maintained
 F:	Documentation/devicetree/bindings/media/allegro,al5e.yaml
+F:	Documentation/devicetree/bindings/media/allegrodvt,al300-vdec.yaml
 F:	drivers/media/platform/allegro-dvt/al300
 F:	drivers/media/platform/allegro-dvt/zynqmp
 
-- 
2.30.2
Re: [PATCH 3/3] media: allegro-dvt: Add DT-bindings for the Gen 3 IP
Posted by Krzysztof Kozlowski 7 months, 1 week ago
On 11/05/2025 16:47, Yassine Ouaissa wrote:
> Add the device-tree bindings for the allegro-dvt Gen 3 IP decoders, and
> update the MAINTAINERS file.
> 
> Signed-off-by: Yassine Ouaissa <yassine.ouaissa@allegrodvt.com>
> ---
>  .../bindings/media/allegrodvt,al300-vdec.yaml | 86 +++++++++++++++++++

Looks untested so limited review follows.

A nit, subject: drop second/last, redundant "DT bindings". The
"dt-bindings" prefix is already stating that these are DT bindings.
See also:
https://elixir.bootlin.com/linux/v6.7-rc8/source/Documentation/devicetree/bindings/submitting-patches.rst#L18

>  MAINTAINERS                                   |  1 +
>  2 files changed, 87 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/media/allegrodvt,al300-vdec.yaml
> 

Please organize the patch documenting compatible (DT bindings) before
their user.
See also:
https://elixir.bootlin.com/linux/v6.14-rc6/source/Documentation/devicetree/bindings/submitting-patches.rst#L46

> diff --git a/Documentation/devicetree/bindings/media/allegrodvt,al300-vdec.yaml b/Documentation/devicetree/bindings/media/allegrodvt,al300-vdec.yaml
> new file mode 100644
> index 000000000000..ea4a55de570c
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/media/allegrodvt,al300-vdec.yaml
> @@ -0,0 +1,86 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/media/allegrodvt,al300-vdec.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Allegro DVT Video IP Decoder Gen 3
> +
> +maintainers:
> +  - Yassine OUAISSA <yassine.ouaissa@allegrodvt.com>
> +
> +description: |-
> +  The al300-vdec represents the latest generation of Allegro DVT IP decoding technology, offering

Wrap at 80, see Linux coding style.

> +  significant advancements over its predecessors. This new decoder features
> +  enhanced processing capabilities with improved throughput and reduced latency.
> +
> +  Communication between the host driver software and the MCU is implemented through
> +  a specialized mailbox interface mechanism. This mailbox system provides a
> +  structured channel for exchanging commands, parameters, and status information
> +  between the host CPU and the MCU controlling the codec engines.
> +
> +properties:
> +  compatible:
> +    const: allegrodvt,al300-vdec

Undocumented prefix.

What is the actual device name? al300? Can you have al300-adec? or
al300-dec?


> +
> +  reg:
> +    items:
> +      - description: The registers
> +      - description: the MCU APB register
> +
> +  reg-names:
> +    items:
> +      - const: regs
> +      - const: apb
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  clocks:
> +    items:
> +      - description: MCU clock
> +
> +  clock-names:
> +    items:
> +      - const: mcu_clk

Drop clock-names, pretty obvious

> +
> +  memory-region:
> +    items:
> +      - description: Used to allocate memory for the MCU firmware,
> +      and is also used for various operational buffers required by the MCU during codec operations.
> +
> +  firmware-name:
> +    $ref: /schemas/types.yaml#/definitions/string

Drop, type is already fixed.

missing maxItems: 1

> +    description:
> +      If present, name of the file within the firmware search path containing
> +      the MCU firmware.
> +
> +required:
> +  - compatible
> +  - reg
> +  - reg-names
> +  - interrupts
> +  - clocks
> +  - clock-names
> +
> +additionalProperties: False
> +
> +examples:
> +  - |
> +    axi {
> +        #address-cells = <2>;
> +        #size-cells = <2>;
> +
> +        ald300: ald300@a0120000 {

Drop unused label.

Node names should be generic. See also an explanation and list of
examples (not exhaustive) in DT specification:
https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation


> +            compatible = "allegrodvt,al300-vdec";
> +            reg = <0 0xa0120000 0 0x80000>,

Here 0 is not hex

> +            <0x01 0x8000000 0x00 0x8000000>;

but here is hex?

Also misaligned.

Also: very odd large address space.

>  


Best regards,
Krzysztof
Re: [PATCH 3/3] media: allegro-dvt: Add DT-bindings for the Gen 3 IP
Posted by Yassine Ouaissa 7 months, 1 week ago
On 11.05.2025 22:03, Krzysztof Kozlowski wrote:
>On 11/05/2025 16:47, Yassine Ouaissa wrote:
>> Add the device-tree bindings for the allegro-dvt Gen 3 IP decoders, and
>> update the MAINTAINERS file.
>>
>> Signed-off-by: Yassine Ouaissa <yassine.ouaissa@allegrodvt.com>
>> ---
>>  .../bindings/media/allegrodvt,al300-vdec.yaml | 86 +++++++++++++++++++

Hi Kozlowski,

Thanks for the review.
>
>Looks untested so limited review follows.
>
>A nit, subject: drop second/last, redundant "DT bindings". The
>"dt-bindings" prefix is already stating that these are DT bindings.
>See also:
>https://elixir.bootlin.com/linux/v6.7-rc8/source/Documentation/devicetree/bindings/submitting-patches.rst#L18
>
I'll fix this issue in the next version.

>>  MAINTAINERS                                   |  1 +
>>  2 files changed, 87 insertions(+)
>>  create mode 100644 Documentation/devicetree/bindings/media/allegrodvt,al300-vdec.yaml
>>
>
>Please organize the patch documenting compatible (DT bindings) before
>their user.
>See also:
>https://elixir.bootlin.com/linux/v6.14-rc6/source/Documentation/devicetree/bindings/submitting-patches.rst#L46
>

I'll fix this issue in the next version.

>> diff --git a/Documentation/devicetree/bindings/media/allegrodvt,al300-vdec.yaml b/Documentation/devicetree/bindings/media/allegrodvt,al300-vdec.yaml
>> new file mode 100644
>> index 000000000000..ea4a55de570c
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/media/allegrodvt,al300-vdec.yaml
>> @@ -0,0 +1,86 @@
>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/media/allegrodvt,al300-vdec.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Allegro DVT Video IP Decoder Gen 3
>> +
>> +maintainers:
>> +  - Yassine OUAISSA <yassine.ouaissa@allegrodvt.com>
>> +
>> +description: |-
>> +  The al300-vdec represents the latest generation of Allegro DVT IP decoding technology, offering
>
>Wrap at 80, see Linux coding style.
>
issue fixed also, thanks.
>> +  significant advancements over its predecessors. This new decoder features
>> +  enhanced processing capabilities with improved throughput and reduced latency.
>> +
>> +  Communication between the host driver software and the MCU is implemented through
>> +  a specialized mailbox interface mechanism. This mailbox system provides a
>> +  structured channel for exchanging commands, parameters, and status information
>> +  between the host CPU and the MCU controlling the codec engines.
>> +
>> +properties:
>> +  compatible:
>> +    const: allegrodvt,al300-vdec
>
>Undocumented prefix.
>
>What is the actual device name? al300? Can you have al300-adec? or
>al300-dec?
>
>

the device name is al300, the vdec is for decoder driver.

>> +
>> +  reg:
>> +    items:
>> +      - description: The registers
>> +      - description: the MCU APB register
>> +
>> +  reg-names:
>> +    items:
>> +      - const: regs
>> +      - const: apb
>> +
>> +  interrupts:
>> +    maxItems: 1
>> +
>> +  clocks:
>> +    items:
>> +      - description: MCU clock
>> +
>> +  clock-names:
>> +    items:
>> +      - const: mcu_clk
>
>Drop clock-names, pretty obvious
>
the clock-name is a require item, it used by the driver.
>> +
>> +  memory-region:
>> +    items:
>> +      - description: Used to allocate memory for the MCU firmware,
>> +      and is also used for various operational buffers required by the MCU during codec operations.
>> +
>> +  firmware-name:
>> +    $ref: /schemas/types.yaml#/definitions/string
>
>Drop, type is already fixed.
>
>missing maxItems: 1
>

The next version will have the maxItem, and drop the ref type.

>> +    description:
>> +      If present, name of the file within the firmware search path containing
>> +      the MCU firmware.
>> +
>> +required:
>> +  - compatible
>> +  - reg
>> +  - reg-names
>> +  - interrupts
>> +  - clocks
>> +  - clock-names
>> +
>> +additionalProperties: False
>> +
>> +examples:
>> +  - |
>> +    axi {
>> +        #address-cells = <2>;
>> +        #size-cells = <2>;
>> +
>> +        ald300: ald300@a0120000 {
>
>Drop unused label.
>
>Node names should be generic. See also an explanation and list of
>examples (not exhaustive) in DT specification:
>https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation
>
>
>> +            compatible = "allegrodvt,al300-vdec";
>> +            reg = <0 0xa0120000 0 0x80000>,
>
>Here 0 is not hex
>
>> +            <0x01 0x8000000 0x00 0x8000000>;
>
>but here is hex?
>
>Also misaligned.
>
>Also: very odd large address space.
>

Nice catch, the misaligned issue is fixed.
>>
>
>
>Best regards,
>Krzysztof

Best regards
Yassine OUAISSA
Re: [PATCH 3/3] media: allegro-dvt: Add DT-bindings for the Gen 3 IP
Posted by Krzysztof Kozlowski 7 months, 1 week ago
On 12/05/2025 10:23, Yassine Ouaissa wrote:
>>> +    items:
>>> +      - description: MCU clock
>>> +
>>> +  clock-names:
>>> +    items:
>>> +      - const: mcu_clk
>>
>> Drop clock-names, pretty obvious
>>
> the clock-name is a require item, it used by the driver.

Then fix your driver.



Best regards,
Krzysztof
Re: [PATCH 3/3] media: allegro-dvt: Add DT-bindings for the Gen 3 IP
Posted by Krzysztof Kozlowski 7 months, 1 week ago
On Mon, May 12, 2025 at 08:23:11AM GMT, Yassine Ouaissa wrote:
> issue fixed also, thanks.
> > > +  significant advancements over its predecessors. This new decoder features
> > > +  enhanced processing capabilities with improved throughput and reduced latency.
> > > +
> > > +  Communication between the host driver software and the MCU is implemented through
> > > +  a specialized mailbox interface mechanism. This mailbox system provides a
> > > +  structured channel for exchanging commands, parameters, and status information
> > > +  between the host CPU and the MCU controlling the codec engines.
> > > +
> > > +properties:
> > > +  compatible:
> > > +    const: allegrodvt,al300-vdec
> > 
> > Undocumented prefix.
> > 
> > What is the actual device name? al300? Can you have al300-adec? or
> > al300-dec?
> > 
> > 
> 
> the device name is al300, the vdec is for decoder driver.

So drop vdec. Compatible should reflect device name.

Best regards,
Krzysztof
Re: [PATCH 3/3] media: allegro-dvt: Add DT-bindings for the Gen 3 IP
Posted by Yassine Ouaissa 7 months, 1 week ago
On 12.05.2025 12:42, Krzysztof Kozlowski wrote:
>On Mon, May 12, 2025 at 08:23:11AM GMT, Yassine Ouaissa wrote:
>> issue fixed also, thanks.
>> > > +  significant advancements over its predecessors. This new decoder features
>> > > +  enhanced processing capabilities with improved throughput and reduced latency.
>> > > +
>> > > +  Communication between the host driver software and the MCU is implemented through
>> > > +  a specialized mailbox interface mechanism. This mailbox system provides a
>> > > +  structured channel for exchanging commands, parameters, and status information
>> > > +  between the host CPU and the MCU controlling the codec engines.
>> > > +
>> > > +properties:
>> > > +  compatible:
>> > > +    const: allegrodvt,al300-vdec
>> >
>> > Undocumented prefix.
>> >
>> > What is the actual device name? al300? Can you have al300-adec? or
>> > al300-dec?
>> >
>> >
>>
>> the device name is al300, the vdec is for decoder driver.
>
>So drop vdec. Compatible should reflect device name.
>

We cannot, the IP could have the encode and decode in the same time.
the al300 is for the IP gen, and vdec/venc for the driver compatible.

I'll discuss with the team, about other naming.

>Best regards,
>Krzysztof
>

Best regards
Yassine OUAISSA
Re: [PATCH 3/3] media: allegro-dvt: Add DT-bindings for the Gen 3 IP
Posted by Krzysztof Kozlowski 7 months, 1 week ago
On 12/05/2025 13:17, Yassine Ouaissa wrote:
> On 12.05.2025 12:42, Krzysztof Kozlowski wrote:
>> On Mon, May 12, 2025 at 08:23:11AM GMT, Yassine Ouaissa wrote:
>>> issue fixed also, thanks.
>>>>> +  significant advancements over its predecessors. This new decoder features
>>>>> +  enhanced processing capabilities with improved throughput and reduced latency.
>>>>> +
>>>>> +  Communication between the host driver software and the MCU is implemented through
>>>>> +  a specialized mailbox interface mechanism. This mailbox system provides a
>>>>> +  structured channel for exchanging commands, parameters, and status information
>>>>> +  between the host CPU and the MCU controlling the codec engines.
>>>>> +
>>>>> +properties:
>>>>> +  compatible:
>>>>> +    const: allegrodvt,al300-vdec
>>>>
>>>> Undocumented prefix.
>>>>
>>>> What is the actual device name? al300? Can you have al300-adec? or
>>>> al300-dec?
>>>>
>>>>
>>>
>>> the device name is al300, the vdec is for decoder driver.
>>
>> So drop vdec. Compatible should reflect device name.
>>
> 
> We cannot, the IP could have the encode and decode in the same time.
> the al300 is for the IP gen, and vdec/venc for the driver compatible.
> 
> I'll discuss with the team, about other naming.
Do not send next version - like you did now - before we finish
discussion. You just sent the same bypassing this entire discussion.

Explain what is the device name, what is the device so we can understand it.

I also expect all other comments to be implemented - including
clock-names and incorrect device node name.

Best regards,
Krzysztof
Re: [PATCH 3/3] media: allegro-dvt: Add DT-bindings for the Gen 3 IP
Posted by Rob Herring (Arm) 7 months, 1 week ago
On Sun, 11 May 2025 16:47:34 +0200, Yassine Ouaissa wrote:
> Add the device-tree bindings for the allegro-dvt Gen 3 IP decoders, and
> update the MAINTAINERS file.
> 
> Signed-off-by: Yassine Ouaissa <yassine.ouaissa@allegrodvt.com>
> ---
>  .../bindings/media/allegrodvt,al300-vdec.yaml | 86 +++++++++++++++++++
>  MAINTAINERS                                   |  1 +
>  2 files changed, 87 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/media/allegrodvt,al300-vdec.yaml
> 

My bot found errors running 'make dt_binding_check' on your patch:

yamllint warnings/errors:
./Documentation/devicetree/bindings/media/allegrodvt,al300-vdec.yaml:52:3: [error] syntax error: could not find expected ':' (syntax)

dtschema/dtc warnings/errors:
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/media/allegrodvt,al300-vdec.yaml: ignoring, error parsing file
./Documentation/devicetree/bindings/media/allegrodvt,al300-vdec.yaml:52:3: could not find expected ':'
make[2]: *** Deleting file 'Documentation/devicetree/bindings/media/allegrodvt,al300-vdec.example.dts'
Documentation/devicetree/bindings/media/allegrodvt,al300-vdec.yaml:52:3: could not find expected ':'
make[2]: *** [Documentation/devicetree/bindings/Makefile:26: Documentation/devicetree/bindings/media/allegrodvt,al300-vdec.example.dts] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [/builds/robherring/dt-review-ci/linux/Makefile:1527: dt_binding_check] Error 2
make: *** [Makefile:248: __sub-make] Error 2

doc reference errors (make refcheckdocs):

See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20250511144752.504162-4-yassine.ouaissa@allegrodvt.com

The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:

pip3 install dtschema --upgrade

Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.