Skip to content

Commit 4f8ca13

Browse files
xdarklightsuperna9999
authored andcommitted
ARM: dts: meson: Add the AIU audio controller
Add the AIU audio controller to the Amlogic Meson6/8/8b/8m2 SoC DT. This provides I2S and SPDIF outputs as well as codec glues for the internal HDMI controller. Also add the clock inputs and pin mux definitions on Meson8/8b/8m2. On Meson6 this is omitted because we neither have a clock nor pin controller node there yet. Signed-off-by: Martin Blumenstingl <[email protected]> Reviewed-by: Neil Armstrong <[email protected]> Signed-off-by: Neil Armstrong <[email protected]> Link: https://lore.kernel.org/r/[email protected]
1 parent 44cf630 commit 4f8ca13

File tree

3 files changed

+138
-0
lines changed

3 files changed

+138
-0
lines changed

arch/arm/boot/dts/meson.dtsi

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
#include <dt-bindings/interrupt-controller/irq.h>
77
#include <dt-bindings/interrupt-controller/arm-gic.h>
8+
#include <dt-bindings/sound/meson-aiu.h>
89

910
/ {
1011
#address-cells = <1>;
@@ -36,6 +37,17 @@
3637
reg = <0x4000 0x400>;
3738
};
3839

40+
aiu: audio-controller@5400 {
41+
compatible = "amlogic,aiu";
42+
#sound-dai-cells = <2>;
43+
sound-name-prefix = "AIU";
44+
reg = <0x5400 0x2ac>;
45+
interrupts = <GIC_SPI 48 IRQ_TYPE_EDGE_RISING>,
46+
<GIC_SPI 50 IRQ_TYPE_EDGE_RISING>;
47+
interrupt-names = "i2s", "spdif";
48+
status = "disabled";
49+
};
50+
3951
assist: assist@7c00 {
4052
compatible = "amlogic,meson-mx-assist", "syscon";
4153
reg = <0x7c00 0x200>;

arch/arm/boot/dts/meson8.dtsi

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,29 @@
317317
};
318318
}; /* end of / */
319319

320+
&aiu {
321+
compatible = "amlogic,aiu-meson8", "amlogic,aiu";
322+
clocks = <&clkc CLKID_AIU_GLUE>,
323+
<&clkc CLKID_I2S_OUT>,
324+
<&clkc CLKID_AOCLK_GATE>,
325+
<&clkc CLKID_CTS_AMCLK>,
326+
<&clkc CLKID_MIXER_IFACE>,
327+
<&clkc CLKID_IEC958>,
328+
<&clkc CLKID_IEC958_GATE>,
329+
<&clkc CLKID_CTS_MCLK_I958>,
330+
<&clkc CLKID_CTS_I958>;
331+
clock-names = "pclk",
332+
"i2s_pclk",
333+
"i2s_aoclk",
334+
"i2s_mclk",
335+
"i2s_mixer",
336+
"spdif_pclk",
337+
"spdif_aoclk",
338+
"spdif_mclk",
339+
"spdif_mclk_sel";
340+
resets = <&reset RESET_AIU>;
341+
};
342+
320343
&aobus {
321344
pmu: pmu@e0 {
322345
compatible = "amlogic,meson8-pmu", "syscon";
@@ -340,6 +363,38 @@
340363
gpio-ranges = <&pinctrl_aobus 0 0 16>;
341364
};
342365

366+
i2s_am_clk_pins: i2s-am-clk-out {
367+
mux {
368+
groups = "i2s_am_clk_out_ao";
369+
function = "i2s_ao";
370+
bias-disable;
371+
};
372+
};
373+
374+
i2s_out_ao_clk_pins: i2s-ao-clk-out {
375+
mux {
376+
groups = "i2s_ao_clk_out_ao";
377+
function = "i2s_ao";
378+
bias-disable;
379+
};
380+
};
381+
382+
i2s_out_lr_clk_pins: i2s-lr-clk-out {
383+
mux {
384+
groups = "i2s_lr_clk_out_ao";
385+
function = "i2s_ao";
386+
bias-disable;
387+
};
388+
};
389+
390+
i2s_out_ch01_ao_pins: i2s-out-ch01 {
391+
mux {
392+
groups = "i2s_out_ch01_ao";
393+
function = "i2s_ao";
394+
bias-disable;
395+
};
396+
};
397+
343398
uart_ao_a_pins: uart_ao_a {
344399
mux {
345400
groups = "uart_tx_ao_a", "uart_rx_ao_a";
@@ -460,6 +515,14 @@
460515
};
461516
};
462517

518+
spdif_out_pins: spdif-out {
519+
mux {
520+
groups = "spdif_out";
521+
function = "spdif";
522+
bias-disable;
523+
};
524+
};
525+
463526
spi_nor_pins: nor {
464527
mux {
465528
groups = "nor_d", "nor_q", "nor_c", "nor_cs";

arch/arm/boot/dts/meson8b.dtsi

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,29 @@
279279
};
280280
}; /* end of / */
281281

282+
&aiu {
283+
compatible = "amlogic,aiu-meson8b", "amlogic,aiu";
284+
clocks = <&clkc CLKID_AIU_GLUE>,
285+
<&clkc CLKID_I2S_OUT>,
286+
<&clkc CLKID_AOCLK_GATE>,
287+
<&clkc CLKID_CTS_AMCLK>,
288+
<&clkc CLKID_MIXER_IFACE>,
289+
<&clkc CLKID_IEC958>,
290+
<&clkc CLKID_IEC958_GATE>,
291+
<&clkc CLKID_CTS_MCLK_I958>,
292+
<&clkc CLKID_CTS_I958>;
293+
clock-names = "pclk",
294+
"i2s_pclk",
295+
"i2s_aoclk",
296+
"i2s_mclk",
297+
"i2s_mixer",
298+
"spdif_pclk",
299+
"spdif_aoclk",
300+
"spdif_mclk",
301+
"spdif_mclk_sel";
302+
resets = <&reset RESET_AIU>;
303+
};
304+
282305
&aobus {
283306
pmu: pmu@e0 {
284307
compatible = "amlogic,meson8b-pmu", "syscon";
@@ -302,6 +325,46 @@
302325
gpio-ranges = <&pinctrl_aobus 0 0 16>;
303326
};
304327

328+
i2s_am_clk_pins: i2s-am-clk-out {
329+
mux {
330+
groups = "i2s_am_clk_out";
331+
function = "i2s";
332+
bias-disable;
333+
};
334+
};
335+
336+
i2s_out_ao_clk_pins: i2s-ao-clk-out {
337+
mux {
338+
groups = "i2s_ao_clk_out";
339+
function = "i2s";
340+
bias-disable;
341+
};
342+
};
343+
344+
i2s_out_lr_clk_pins: i2s-lr-clk-out {
345+
mux {
346+
groups = "i2s_lr_clk_out";
347+
function = "i2s";
348+
bias-disable;
349+
};
350+
};
351+
352+
i2s_out_ch01_ao_pins: i2s-out-ch01 {
353+
mux {
354+
groups = "i2s_out_01";
355+
function = "i2s";
356+
bias-disable;
357+
};
358+
};
359+
360+
spdif_out_1_pins: spdif-out-1 {
361+
mux {
362+
groups = "spdif_out_1";
363+
function = "spdif_1";
364+
bias-disable;
365+
};
366+
};
367+
305368
uart_ao_a_pins: uart_ao_a {
306369
mux {
307370
groups = "uart_tx_ao_a", "uart_rx_ao_a";

0 commit comments

Comments
 (0)