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
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
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
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
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
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
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
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.
© 2016 - 2025 Red Hat, Inc.