Linux 6.7-rc7
[linux-modified.git] / arch / arm64 / boot / dts / amlogic / meson-g12b-gtking.dts
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3  * Copyright (c) 2019 BayLibre, SAS
4  * Author: Neil Armstrong <narmstrong@baylibre.com>
5  * Copyright (c) 2019 Christian Hewitt <christianshewitt@gmail.com>
6  */
7
8 /dts-v1/;
9
10 #include "meson-g12b-w400.dtsi"
11 #include <dt-bindings/sound/meson-g12a-tohdmitx.h>
12
13 / {
14         compatible = "azw,gtking", "amlogic,s922x", "amlogic,g12b";
15         model = "Beelink GT-King";
16
17         aliases {
18                 rtc0 = &rtc;
19                 rtc1 = &vrtc;
20         };
21
22         spdif_dit: audio-codec-1 {
23                 #sound-dai-cells = <0>;
24                 compatible = "linux,spdif-dit";
25                 status = "okay";
26                 sound-name-prefix = "DIT";
27         };
28
29         sound {
30                 compatible = "amlogic,axg-sound-card";
31                 model = "GTKING";
32                 audio-aux-devs = <&tdmout_b>;
33                 audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
34                                 "TDMOUT_B IN 1", "FRDDR_B OUT 1",
35                                 "TDMOUT_B IN 2", "FRDDR_C OUT 1",
36                                 "TDM_B Playback", "TDMOUT_B OUT",
37                                 "SPDIFOUT_A IN 0", "FRDDR_A OUT 3",
38                                 "SPDIFOUT_A IN 1", "FRDDR_B OUT 3",
39                                 "SPDIFOUT_A IN 2", "FRDDR_C OUT 3";
40
41                 assigned-clocks = <&clkc CLKID_MPLL2>,
42                                   <&clkc CLKID_MPLL0>,
43                                   <&clkc CLKID_MPLL1>;
44                 assigned-clock-parents = <0>, <0>, <0>;
45                 assigned-clock-rates = <294912000>,
46                                        <270950400>,
47                                        <393216000>;
48
49                 dai-link-0 {
50                         sound-dai = <&frddr_a>;
51                 };
52
53                 dai-link-1 {
54                         sound-dai = <&frddr_b>;
55                 };
56
57                 dai-link-2 {
58                         sound-dai = <&frddr_c>;
59                 };
60
61                 /* 8ch hdmi interface */
62                 dai-link-3 {
63                         sound-dai = <&tdmif_b>;
64                         dai-format = "i2s";
65                         dai-tdm-slot-tx-mask-0 = <1 1>;
66                         dai-tdm-slot-tx-mask-1 = <1 1>;
67                         dai-tdm-slot-tx-mask-2 = <1 1>;
68                         dai-tdm-slot-tx-mask-3 = <1 1>;
69                         mclk-fs = <256>;
70
71                         codec {
72                                 sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
73                         };
74                 };
75
76                 /* spdif hdmi or toslink interface */
77                 dai-link-4 {
78                         sound-dai = <&spdifout_a>;
79
80                         codec-0 {
81                                 sound-dai = <&spdif_dit>;
82                         };
83
84                         codec-1 {
85                                 sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_A>;
86                         };
87                 };
88
89                 /* spdif hdmi interface */
90                 dai-link-5 {
91                         sound-dai = <&spdifout_b>;
92
93                         codec {
94                                 sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_B>;
95                         };
96                 };
97
98                 /* hdmi glue */
99                 dai-link-6 {
100                         sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
101
102                         codec {
103                                 sound-dai = <&hdmi_tx>;
104                         };
105                 };
106         };
107 };
108
109 &arb {
110         status = "okay";
111 };
112
113 &clkc_audio {
114         status = "okay";
115 };
116
117 &frddr_a {
118         status = "okay";
119 };
120
121 &frddr_b {
122         status = "okay";
123 };
124
125 &frddr_c {
126         status = "okay";
127 };
128
129
130 &i2c3 {
131         status = "okay";
132         pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>;
133         pinctrl-names = "default";
134
135         rtc: rtc@51 {
136                 compatible = "nxp,pcf8563";
137                 reg = <0x51>;
138                 wakeup-source;
139         };
140 };
141
142 &spdifout_a {
143         pinctrl-0 = <&spdif_out_h_pins>;
144         pinctrl-names = "default";
145         status = "okay";
146 };
147
148 &spdifout_b {
149         status = "okay";
150 };
151
152 &tdmif_b {
153         status = "okay";
154 };
155
156 &tdmout_b {
157         status = "okay";
158 };
159
160 &tohdmitx {
161         status = "okay";
162 };