xref: /openbmc/linux/Documentation/devicetree/bindings/media/allegro,al5e.yaml (revision dd3cb467ebb5659d6552999d6f16a616653f9933)
10f3cc7caSMichael Tretter# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
20f3cc7caSMichael Tretter%YAML 1.2
30f3cc7caSMichael Tretter---
40f3cc7caSMichael Tretter$id: http://devicetree.org/schemas/media/allegro,al5e.yaml#
50f3cc7caSMichael Tretter$schema: http://devicetree.org/meta-schemas/core.yaml#
60f3cc7caSMichael Tretter
7*dd3cb467SAndrew Lunntitle: Allegro DVT Video IP Codecs
80f3cc7caSMichael Tretter
90f3cc7caSMichael Trettermaintainers:
100f3cc7caSMichael Tretter  - Michael Tretter <m.tretter@pengutronix.de>
110f3cc7caSMichael Tretter
120f3cc7caSMichael Tretterdescription: |-
130f3cc7caSMichael Tretter  Allegro DVT video IP codecs present in the Xilinx ZynqMP SoC. The IP core may
140f3cc7caSMichael Tretter  either be a H.264/H.265 encoder or H.264/H.265 decoder ip core.
150f3cc7caSMichael Tretter
160f3cc7caSMichael Tretter  Each actual codec engine is controlled by a microcontroller (MCU). Host
170f3cc7caSMichael Tretter  software uses a provided mailbox interface to communicate with the MCU. The
180f3cc7caSMichael Tretter  MCUs share an interrupt.
190f3cc7caSMichael Tretter
200f3cc7caSMichael Tretterproperties:
210f3cc7caSMichael Tretter  compatible:
220f3cc7caSMichael Tretter    oneOf:
230f3cc7caSMichael Tretter      - items:
240f3cc7caSMichael Tretter          - const: allegro,al5e-1.1
250f3cc7caSMichael Tretter          - const: allegro,al5e
260f3cc7caSMichael Tretter      - items:
270f3cc7caSMichael Tretter          - const: allegro,al5d-1.1
280f3cc7caSMichael Tretter          - const: allegro,al5d
290f3cc7caSMichael Tretter
300f3cc7caSMichael Tretter  reg:
310f3cc7caSMichael Tretter    items:
320f3cc7caSMichael Tretter      - description: The registers
330f3cc7caSMichael Tretter      - description: The SRAM
340f3cc7caSMichael Tretter
350f3cc7caSMichael Tretter  reg-names:
360f3cc7caSMichael Tretter    items:
370f3cc7caSMichael Tretter      - const: regs
380f3cc7caSMichael Tretter      - const: sram
390f3cc7caSMichael Tretter
400f3cc7caSMichael Tretter  interrupts:
410f3cc7caSMichael Tretter    maxItems: 1
420f3cc7caSMichael Tretter
430f3cc7caSMichael Tretter  clocks:
440f3cc7caSMichael Tretter    items:
450f3cc7caSMichael Tretter      - description: Core clock
460f3cc7caSMichael Tretter      - description: MCU clock
470f3cc7caSMichael Tretter      - description: Core AXI master port clock
480f3cc7caSMichael Tretter      - description: MCU AXI master port clock
490f3cc7caSMichael Tretter      - description: AXI4-Lite slave port clock
500f3cc7caSMichael Tretter
510f3cc7caSMichael Tretter  clock-names:
520f3cc7caSMichael Tretter    items:
530f3cc7caSMichael Tretter      - const: core_clk
540f3cc7caSMichael Tretter      - const: mcu_clk
550f3cc7caSMichael Tretter      - const: m_axi_core_aclk
560f3cc7caSMichael Tretter      - const: m_axi_mcu_aclk
570f3cc7caSMichael Tretter      - const: s_axi_lite_aclk
580f3cc7caSMichael Tretter
590f3cc7caSMichael Tretterrequired:
600f3cc7caSMichael Tretter  - compatible
610f3cc7caSMichael Tretter  - reg
620f3cc7caSMichael Tretter  - reg-names
630f3cc7caSMichael Tretter  - interrupts
640f3cc7caSMichael Tretter  - clocks
650f3cc7caSMichael Tretter  - clock-names
660f3cc7caSMichael Tretter
670f3cc7caSMichael TretteradditionalProperties: False
680f3cc7caSMichael Tretter
690f3cc7caSMichael Tretterexamples:
700f3cc7caSMichael Tretter  - |
710f3cc7caSMichael Tretter    fpga {
720f3cc7caSMichael Tretter        #address-cells = <2>;
730f3cc7caSMichael Tretter        #size-cells = <2>;
740f3cc7caSMichael Tretter
750f3cc7caSMichael Tretter        al5e: video-codec@a0009000 {
760f3cc7caSMichael Tretter            compatible = "allegro,al5e-1.1", "allegro,al5e";
770f3cc7caSMichael Tretter            reg = <0 0xa0009000 0 0x1000>,
780f3cc7caSMichael Tretter            <0 0xa0000000 0 0x8000>;
790f3cc7caSMichael Tretter            reg-names = "regs", "sram";
800f3cc7caSMichael Tretter            interrupts = <0 96 4>;
810f3cc7caSMichael Tretter            clocks = <&xlnx_vcu 0>, <&xlnx_vcu 1>,
820f3cc7caSMichael Tretter            <&clkc 71>, <&clkc 71>, <&clkc 71>;
830f3cc7caSMichael Tretter            clock-names = "core_clk", "mcu_clk", "m_axi_core_aclk",
840f3cc7caSMichael Tretter            "m_axi_mcu_aclk", "s_axi_lite_aclk";
850f3cc7caSMichael Tretter        };
860f3cc7caSMichael Tretter    };
870f3cc7caSMichael Tretter  - |
880f3cc7caSMichael Tretter    fpga {
890f3cc7caSMichael Tretter        #address-cells = <2>;
900f3cc7caSMichael Tretter        #size-cells = <2>;
910f3cc7caSMichael Tretter
920f3cc7caSMichael Tretter        al5d: video-codec@a0029000 {
930f3cc7caSMichael Tretter            compatible = "allegro,al5d-1.1", "allegro,al5d";
940f3cc7caSMichael Tretter            reg = <0 0xa0029000 0 0x1000>,
950f3cc7caSMichael Tretter                  <0 0xa0020000 0 0x8000>;
960f3cc7caSMichael Tretter            reg-names = "regs", "sram";
970f3cc7caSMichael Tretter            interrupts = <0 96 4>;
980f3cc7caSMichael Tretter            clocks = <&xlnx_vcu 2>, <&xlnx_vcu 3>,
990f3cc7caSMichael Tretter                     <&clkc 71>, <&clkc 71>, <&clkc 71>;
1000f3cc7caSMichael Tretter            clock-names = "core_clk", "mcu_clk", "m_axi_core_aclk",
1010f3cc7caSMichael Tretter            "m_axi_mcu_aclk", "s_axi_lite_aclk";
1020f3cc7caSMichael Tretter        };
1030f3cc7caSMichael Tretter    };
1040f3cc7caSMichael Tretter
1050f3cc7caSMichael Tretter...
106