15def4c47SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
25def4c47SEmmanuel Vadot%YAML 1.2
35def4c47SEmmanuel Vadot---
45def4c47SEmmanuel Vadot$id: http://devicetree.org/schemas/sound/fsl,xcvr.yaml#
55def4c47SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
65def4c47SEmmanuel Vadot
75def4c47SEmmanuel Vadottitle: NXP Audio Transceiver (XCVR) Controller
85def4c47SEmmanuel Vadot
95def4c47SEmmanuel Vadotmaintainers:
105def4c47SEmmanuel Vadot  - Viorel Suman <viorel.suman@nxp.com>
115def4c47SEmmanuel Vadot
125def4c47SEmmanuel Vadotdescription: |
135def4c47SEmmanuel Vadot  NXP XCVR (Audio Transceiver) is a on-chip functional module
145def4c47SEmmanuel Vadot  that allows CPU to receive and transmit digital audio via
155def4c47SEmmanuel Vadot  HDMI2.1 eARC, HDMI1.4 ARC and SPDIF.
165def4c47SEmmanuel Vadot
175def4c47SEmmanuel Vadotproperties:
185def4c47SEmmanuel Vadot  $nodename:
195def4c47SEmmanuel Vadot    pattern: "^xcvr@.*"
205def4c47SEmmanuel Vadot
215def4c47SEmmanuel Vadot  compatible:
225def4c47SEmmanuel Vadot    enum:
235def4c47SEmmanuel Vadot      - fsl,imx8mp-xcvr
24cb7aa33aSEmmanuel Vadot      - fsl,imx93-xcvr
255def4c47SEmmanuel Vadot
265def4c47SEmmanuel Vadot  reg:
275def4c47SEmmanuel Vadot    items:
285def4c47SEmmanuel Vadot      - description: 20K RAM for code and data
295def4c47SEmmanuel Vadot      - description: registers space
305def4c47SEmmanuel Vadot      - description: RX FIFO address
315def4c47SEmmanuel Vadot      - description: TX FIFO address
325def4c47SEmmanuel Vadot
335def4c47SEmmanuel Vadot  reg-names:
345def4c47SEmmanuel Vadot    items:
355def4c47SEmmanuel Vadot      - const: ram
365def4c47SEmmanuel Vadot      - const: regs
375def4c47SEmmanuel Vadot      - const: rxfifo
385def4c47SEmmanuel Vadot      - const: txfifo
395def4c47SEmmanuel Vadot
405def4c47SEmmanuel Vadot  interrupts:
41*8d13bc63SEmmanuel Vadot    items:
42*8d13bc63SEmmanuel Vadot      - description: WAKEUPMIX Audio XCVR Interrupt 1
43*8d13bc63SEmmanuel Vadot      - description: WAKEUPMIX Audio XCVR Interrupt 2
44*8d13bc63SEmmanuel Vadot    minItems: 1
455def4c47SEmmanuel Vadot
465def4c47SEmmanuel Vadot  clocks:
475def4c47SEmmanuel Vadot    items:
485def4c47SEmmanuel Vadot      - description: Peripheral clock
495def4c47SEmmanuel Vadot      - description: PHY clock
505def4c47SEmmanuel Vadot      - description: SPBA clock
515def4c47SEmmanuel Vadot      - description: PLL clock
525def4c47SEmmanuel Vadot
535def4c47SEmmanuel Vadot  clock-names:
545def4c47SEmmanuel Vadot    items:
555def4c47SEmmanuel Vadot      - const: ipg
565def4c47SEmmanuel Vadot      - const: phy
575def4c47SEmmanuel Vadot      - const: spba
585def4c47SEmmanuel Vadot      - const: pll_ipg
595def4c47SEmmanuel Vadot
605def4c47SEmmanuel Vadot  dmas:
615def4c47SEmmanuel Vadot    items:
625def4c47SEmmanuel Vadot      - description: DMA controller phandle and request line for RX
635def4c47SEmmanuel Vadot      - description: DMA controller phandle and request line for TX
645def4c47SEmmanuel Vadot
655def4c47SEmmanuel Vadot  dma-names:
665def4c47SEmmanuel Vadot    items:
675def4c47SEmmanuel Vadot      - const: rx
685def4c47SEmmanuel Vadot      - const: tx
695def4c47SEmmanuel Vadot
705def4c47SEmmanuel Vadot  resets:
715def4c47SEmmanuel Vadot    maxItems: 1
725def4c47SEmmanuel Vadot
735def4c47SEmmanuel Vadotrequired:
745def4c47SEmmanuel Vadot  - compatible
755def4c47SEmmanuel Vadot  - reg
765def4c47SEmmanuel Vadot  - reg-names
775def4c47SEmmanuel Vadot  - interrupts
785def4c47SEmmanuel Vadot  - clocks
795def4c47SEmmanuel Vadot  - clock-names
805def4c47SEmmanuel Vadot  - dmas
815def4c47SEmmanuel Vadot  - dma-names
825def4c47SEmmanuel Vadot  - resets
835def4c47SEmmanuel Vadot
84*8d13bc63SEmmanuel VadotallOf:
85*8d13bc63SEmmanuel Vadot  - if:
86*8d13bc63SEmmanuel Vadot      properties:
87*8d13bc63SEmmanuel Vadot        compatible:
88*8d13bc63SEmmanuel Vadot          contains:
89*8d13bc63SEmmanuel Vadot            enum:
90*8d13bc63SEmmanuel Vadot              - fsl,imx93-xcvr
91*8d13bc63SEmmanuel Vadot    then:
92*8d13bc63SEmmanuel Vadot      properties:
93*8d13bc63SEmmanuel Vadot        interrupts:
94*8d13bc63SEmmanuel Vadot          minItems: 2
95*8d13bc63SEmmanuel Vadot          maxItems: 2
96*8d13bc63SEmmanuel Vadot    else:
97*8d13bc63SEmmanuel Vadot      properties:
98*8d13bc63SEmmanuel Vadot        interrupts:
99*8d13bc63SEmmanuel Vadot          maxItems: 1
100*8d13bc63SEmmanuel Vadot
1015def4c47SEmmanuel VadotadditionalProperties: false
1025def4c47SEmmanuel Vadot
1035def4c47SEmmanuel Vadotexamples:
1045def4c47SEmmanuel Vadot  - |
1055def4c47SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
1065def4c47SEmmanuel Vadot    #include <dt-bindings/clock/imx8mp-clock.h>
1075def4c47SEmmanuel Vadot    #include <dt-bindings/reset/imx8mp-reset.h>
1085def4c47SEmmanuel Vadot
1095def4c47SEmmanuel Vadot    xcvr: xcvr@30cc0000 {
1105def4c47SEmmanuel Vadot           compatible = "fsl,imx8mp-xcvr";
1115def4c47SEmmanuel Vadot           reg = <0x30cc0000 0x800>,
1125def4c47SEmmanuel Vadot                 <0x30cc0800 0x400>,
1135def4c47SEmmanuel Vadot                 <0x30cc0c00 0x080>,
1145def4c47SEmmanuel Vadot                 <0x30cc0e00 0x080>;
1155def4c47SEmmanuel Vadot           reg-names = "ram", "regs", "rxfifo", "txfifo";
1165def4c47SEmmanuel Vadot           interrupts = <0x0 128 IRQ_TYPE_LEVEL_HIGH>;
1175def4c47SEmmanuel Vadot           clocks = <&audiomix_clk IMX8MP_CLK_AUDIOMIX_EARC_IPG>,
1185def4c47SEmmanuel Vadot                    <&audiomix_clk IMX8MP_CLK_AUDIOMIX_EARC_PHY>,
1195def4c47SEmmanuel Vadot                    <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SPBA2_ROOT>,
1205def4c47SEmmanuel Vadot                    <&audiomix_clk IMX8MP_CLK_AUDIOMIX_AUDPLL_ROOT>;
1215def4c47SEmmanuel Vadot           clock-names = "ipg", "phy", "spba", "pll_ipg";
1225def4c47SEmmanuel Vadot           dmas = <&sdma2 30 2 0>, <&sdma2 31 2 0>;
1235def4c47SEmmanuel Vadot           dma-names = "rx", "tx";
1245def4c47SEmmanuel Vadot           resets = <&audiomix_reset 0>;
1255def4c47SEmmanuel Vadot    };
126