xref: /freebsd/sys/contrib/device-tree/Bindings/media/allegro,al5e.yaml (revision 5def4c47d4bd90b209b9b4a4ba9faec15846d8fd)
1*5def4c47SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*5def4c47SEmmanuel Vadot%YAML 1.2
3*5def4c47SEmmanuel Vadot---
4*5def4c47SEmmanuel Vadot$id: http://devicetree.org/schemas/media/allegro,al5e.yaml#
5*5def4c47SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*5def4c47SEmmanuel Vadot
7*5def4c47SEmmanuel Vadottitle: Allegro DVT Video IP Codecs Device Tree Bindings
8*5def4c47SEmmanuel Vadot
9*5def4c47SEmmanuel Vadotmaintainers:
10*5def4c47SEmmanuel Vadot  - Michael Tretter <m.tretter@pengutronix.de>
11*5def4c47SEmmanuel Vadot
12*5def4c47SEmmanuel Vadotdescription: |-
13*5def4c47SEmmanuel Vadot  Allegro DVT video IP codecs present in the Xilinx ZynqMP SoC. The IP core may
14*5def4c47SEmmanuel Vadot  either be a H.264/H.265 encoder or H.264/H.265 decoder ip core.
15*5def4c47SEmmanuel Vadot
16*5def4c47SEmmanuel Vadot  Each actual codec engine is controlled by a microcontroller (MCU). Host
17*5def4c47SEmmanuel Vadot  software uses a provided mailbox interface to communicate with the MCU. The
18*5def4c47SEmmanuel Vadot  MCUs share an interrupt.
19*5def4c47SEmmanuel Vadot
20*5def4c47SEmmanuel Vadotproperties:
21*5def4c47SEmmanuel Vadot  compatible:
22*5def4c47SEmmanuel Vadot    oneOf:
23*5def4c47SEmmanuel Vadot      - items:
24*5def4c47SEmmanuel Vadot          - const: allegro,al5e-1.1
25*5def4c47SEmmanuel Vadot          - const: allegro,al5e
26*5def4c47SEmmanuel Vadot      - items:
27*5def4c47SEmmanuel Vadot          - const: allegro,al5d-1.1
28*5def4c47SEmmanuel Vadot          - const: allegro,al5d
29*5def4c47SEmmanuel Vadot
30*5def4c47SEmmanuel Vadot  reg:
31*5def4c47SEmmanuel Vadot    items:
32*5def4c47SEmmanuel Vadot      - description: The registers
33*5def4c47SEmmanuel Vadot      - description: The SRAM
34*5def4c47SEmmanuel Vadot
35*5def4c47SEmmanuel Vadot  reg-names:
36*5def4c47SEmmanuel Vadot    items:
37*5def4c47SEmmanuel Vadot      - const: regs
38*5def4c47SEmmanuel Vadot      - const: sram
39*5def4c47SEmmanuel Vadot
40*5def4c47SEmmanuel Vadot  interrupts:
41*5def4c47SEmmanuel Vadot    maxItems: 1
42*5def4c47SEmmanuel Vadot
43*5def4c47SEmmanuel Vadot  clocks:
44*5def4c47SEmmanuel Vadot    items:
45*5def4c47SEmmanuel Vadot      - description: Core clock
46*5def4c47SEmmanuel Vadot      - description: MCU clock
47*5def4c47SEmmanuel Vadot      - description: Core AXI master port clock
48*5def4c47SEmmanuel Vadot      - description: MCU AXI master port clock
49*5def4c47SEmmanuel Vadot      - description: AXI4-Lite slave port clock
50*5def4c47SEmmanuel Vadot
51*5def4c47SEmmanuel Vadot  clock-names:
52*5def4c47SEmmanuel Vadot    items:
53*5def4c47SEmmanuel Vadot      - const: core_clk
54*5def4c47SEmmanuel Vadot      - const: mcu_clk
55*5def4c47SEmmanuel Vadot      - const: m_axi_core_aclk
56*5def4c47SEmmanuel Vadot      - const: m_axi_mcu_aclk
57*5def4c47SEmmanuel Vadot      - const: s_axi_lite_aclk
58*5def4c47SEmmanuel Vadot
59*5def4c47SEmmanuel Vadotrequired:
60*5def4c47SEmmanuel Vadot  - compatible
61*5def4c47SEmmanuel Vadot  - reg
62*5def4c47SEmmanuel Vadot  - reg-names
63*5def4c47SEmmanuel Vadot  - interrupts
64*5def4c47SEmmanuel Vadot  - clocks
65*5def4c47SEmmanuel Vadot  - clock-names
66*5def4c47SEmmanuel Vadot
67*5def4c47SEmmanuel VadotadditionalProperties: False
68*5def4c47SEmmanuel Vadot
69*5def4c47SEmmanuel Vadotexamples:
70*5def4c47SEmmanuel Vadot  - |
71*5def4c47SEmmanuel Vadot    fpga {
72*5def4c47SEmmanuel Vadot        #address-cells = <2>;
73*5def4c47SEmmanuel Vadot        #size-cells = <2>;
74*5def4c47SEmmanuel Vadot
75*5def4c47SEmmanuel Vadot        al5e: video-codec@a0009000 {
76*5def4c47SEmmanuel Vadot            compatible = "allegro,al5e-1.1", "allegro,al5e";
77*5def4c47SEmmanuel Vadot            reg = <0 0xa0009000 0 0x1000>,
78*5def4c47SEmmanuel Vadot            <0 0xa0000000 0 0x8000>;
79*5def4c47SEmmanuel Vadot            reg-names = "regs", "sram";
80*5def4c47SEmmanuel Vadot            interrupts = <0 96 4>;
81*5def4c47SEmmanuel Vadot            clocks = <&xlnx_vcu 0>, <&xlnx_vcu 1>,
82*5def4c47SEmmanuel Vadot            <&clkc 71>, <&clkc 71>, <&clkc 71>;
83*5def4c47SEmmanuel Vadot            clock-names = "core_clk", "mcu_clk", "m_axi_core_aclk",
84*5def4c47SEmmanuel Vadot            "m_axi_mcu_aclk", "s_axi_lite_aclk";
85*5def4c47SEmmanuel Vadot        };
86*5def4c47SEmmanuel Vadot    };
87*5def4c47SEmmanuel Vadot  - |
88*5def4c47SEmmanuel Vadot    fpga {
89*5def4c47SEmmanuel Vadot        #address-cells = <2>;
90*5def4c47SEmmanuel Vadot        #size-cells = <2>;
91*5def4c47SEmmanuel Vadot
92*5def4c47SEmmanuel Vadot        al5d: video-codec@a0029000 {
93*5def4c47SEmmanuel Vadot            compatible = "allegro,al5d-1.1", "allegro,al5d";
94*5def4c47SEmmanuel Vadot            reg = <0 0xa0029000 0 0x1000>,
95*5def4c47SEmmanuel Vadot                  <0 0xa0020000 0 0x8000>;
96*5def4c47SEmmanuel Vadot            reg-names = "regs", "sram";
97*5def4c47SEmmanuel Vadot            interrupts = <0 96 4>;
98*5def4c47SEmmanuel Vadot            clocks = <&xlnx_vcu 2>, <&xlnx_vcu 3>,
99*5def4c47SEmmanuel Vadot                     <&clkc 71>, <&clkc 71>, <&clkc 71>;
100*5def4c47SEmmanuel Vadot            clock-names = "core_clk", "mcu_clk", "m_axi_core_aclk",
101*5def4c47SEmmanuel Vadot            "m_axi_mcu_aclk", "s_axi_lite_aclk";
102*5def4c47SEmmanuel Vadot        };
103*5def4c47SEmmanuel Vadot    };
104*5def4c47SEmmanuel Vadot
105*5def4c47SEmmanuel Vadot...
106