1*c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0 2*c66ec88fSEmmanuel Vadot%YAML 1.2 3*c66ec88fSEmmanuel Vadot--- 4*c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/sound/amlogic,aiu.yaml# 5*c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*c66ec88fSEmmanuel Vadot 7*c66ec88fSEmmanuel Vadottitle: Amlogic AIU audio output controller 8*c66ec88fSEmmanuel Vadot 9*c66ec88fSEmmanuel Vadotmaintainers: 10*c66ec88fSEmmanuel Vadot - Jerome Brunet <jbrunet@baylibre.com> 11*c66ec88fSEmmanuel Vadot 12*c66ec88fSEmmanuel Vadotproperties: 13*c66ec88fSEmmanuel Vadot $nodename: 14*c66ec88fSEmmanuel Vadot pattern: "^audio-controller@.*" 15*c66ec88fSEmmanuel Vadot 16*c66ec88fSEmmanuel Vadot "#sound-dai-cells": 17*c66ec88fSEmmanuel Vadot const: 2 18*c66ec88fSEmmanuel Vadot 19*c66ec88fSEmmanuel Vadot compatible: 20*c66ec88fSEmmanuel Vadot items: 21*c66ec88fSEmmanuel Vadot - enum: 22*c66ec88fSEmmanuel Vadot - amlogic,aiu-gxbb 23*c66ec88fSEmmanuel Vadot - amlogic,aiu-gxl 24*c66ec88fSEmmanuel Vadot - amlogic,aiu-meson8 25*c66ec88fSEmmanuel Vadot - amlogic,aiu-meson8b 26*c66ec88fSEmmanuel Vadot - const: amlogic,aiu 27*c66ec88fSEmmanuel Vadot 28*c66ec88fSEmmanuel Vadot clocks: 29*c66ec88fSEmmanuel Vadot items: 30*c66ec88fSEmmanuel Vadot - description: AIU peripheral clock 31*c66ec88fSEmmanuel Vadot - description: I2S peripheral clock 32*c66ec88fSEmmanuel Vadot - description: I2S output clock 33*c66ec88fSEmmanuel Vadot - description: I2S master clock 34*c66ec88fSEmmanuel Vadot - description: I2S mixer clock 35*c66ec88fSEmmanuel Vadot - description: SPDIF peripheral clock 36*c66ec88fSEmmanuel Vadot - description: SPDIF output clock 37*c66ec88fSEmmanuel Vadot - description: SPDIF master clock 38*c66ec88fSEmmanuel Vadot - description: SPDIF master clock multiplexer 39*c66ec88fSEmmanuel Vadot 40*c66ec88fSEmmanuel Vadot clock-names: 41*c66ec88fSEmmanuel Vadot items: 42*c66ec88fSEmmanuel Vadot - const: pclk 43*c66ec88fSEmmanuel Vadot - const: i2s_pclk 44*c66ec88fSEmmanuel Vadot - const: i2s_aoclk 45*c66ec88fSEmmanuel Vadot - const: i2s_mclk 46*c66ec88fSEmmanuel Vadot - const: i2s_mixer 47*c66ec88fSEmmanuel Vadot - const: spdif_pclk 48*c66ec88fSEmmanuel Vadot - const: spdif_aoclk 49*c66ec88fSEmmanuel Vadot - const: spdif_mclk 50*c66ec88fSEmmanuel Vadot - const: spdif_mclk_sel 51*c66ec88fSEmmanuel Vadot 52*c66ec88fSEmmanuel Vadot interrupts: 53*c66ec88fSEmmanuel Vadot items: 54*c66ec88fSEmmanuel Vadot - description: I2S interrupt line 55*c66ec88fSEmmanuel Vadot - description: SPDIF interrupt line 56*c66ec88fSEmmanuel Vadot 57*c66ec88fSEmmanuel Vadot interrupt-names: 58*c66ec88fSEmmanuel Vadot items: 59*c66ec88fSEmmanuel Vadot - const: i2s 60*c66ec88fSEmmanuel Vadot - const: spdif 61*c66ec88fSEmmanuel Vadot 62*c66ec88fSEmmanuel Vadot reg: 63*c66ec88fSEmmanuel Vadot maxItems: 1 64*c66ec88fSEmmanuel Vadot 65*c66ec88fSEmmanuel Vadot resets: 66*c66ec88fSEmmanuel Vadot maxItems: 1 67*c66ec88fSEmmanuel Vadot 68*c66ec88fSEmmanuel Vadotrequired: 69*c66ec88fSEmmanuel Vadot - "#sound-dai-cells" 70*c66ec88fSEmmanuel Vadot - compatible 71*c66ec88fSEmmanuel Vadot - clocks 72*c66ec88fSEmmanuel Vadot - clock-names 73*c66ec88fSEmmanuel Vadot - interrupts 74*c66ec88fSEmmanuel Vadot - interrupt-names 75*c66ec88fSEmmanuel Vadot - reg 76*c66ec88fSEmmanuel Vadot - resets 77*c66ec88fSEmmanuel Vadot 78*c66ec88fSEmmanuel Vadotexamples: 79*c66ec88fSEmmanuel Vadot - | 80*c66ec88fSEmmanuel Vadot #include <dt-bindings/clock/gxbb-clkc.h> 81*c66ec88fSEmmanuel Vadot #include <dt-bindings/interrupt-controller/irq.h> 82*c66ec88fSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 83*c66ec88fSEmmanuel Vadot #include <dt-bindings/reset/amlogic,meson-gxbb-reset.h> 84*c66ec88fSEmmanuel Vadot 85*c66ec88fSEmmanuel Vadot aiu: audio-controller@5400 { 86*c66ec88fSEmmanuel Vadot compatible = "amlogic,aiu-gxl", "amlogic,aiu"; 87*c66ec88fSEmmanuel Vadot #sound-dai-cells = <2>; 88*c66ec88fSEmmanuel Vadot reg = <0x5400 0x2ac>; 89*c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 48 IRQ_TYPE_EDGE_RISING>, 90*c66ec88fSEmmanuel Vadot <GIC_SPI 50 IRQ_TYPE_EDGE_RISING>; 91*c66ec88fSEmmanuel Vadot interrupt-names = "i2s", "spdif"; 92*c66ec88fSEmmanuel Vadot clocks = <&clkc CLKID_AIU_GLUE>, 93*c66ec88fSEmmanuel Vadot <&clkc CLKID_I2S_OUT>, 94*c66ec88fSEmmanuel Vadot <&clkc CLKID_AOCLK_GATE>, 95*c66ec88fSEmmanuel Vadot <&clkc CLKID_CTS_AMCLK>, 96*c66ec88fSEmmanuel Vadot <&clkc CLKID_MIXER_IFACE>, 97*c66ec88fSEmmanuel Vadot <&clkc CLKID_IEC958>, 98*c66ec88fSEmmanuel Vadot <&clkc CLKID_IEC958_GATE>, 99*c66ec88fSEmmanuel Vadot <&clkc CLKID_CTS_MCLK_I958>, 100*c66ec88fSEmmanuel Vadot <&clkc CLKID_CTS_I958>; 101*c66ec88fSEmmanuel Vadot clock-names = "pclk", 102*c66ec88fSEmmanuel Vadot "i2s_pclk", 103*c66ec88fSEmmanuel Vadot "i2s_aoclk", 104*c66ec88fSEmmanuel Vadot "i2s_mclk", 105*c66ec88fSEmmanuel Vadot "i2s_mixer", 106*c66ec88fSEmmanuel Vadot "spdif_pclk", 107*c66ec88fSEmmanuel Vadot "spdif_aoclk", 108*c66ec88fSEmmanuel Vadot "spdif_mclk", 109*c66ec88fSEmmanuel Vadot "spdif_mclk_sel"; 110*c66ec88fSEmmanuel Vadot resets = <&reset RESET_AIU>; 111*c66ec88fSEmmanuel Vadot }; 112