1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Copyright (c) 2019 BayLibre, SAS 4 * Author: Jerome Brunet <jbrunet@baylibre.com> 5 */ 6 7#include "meson-g12-common.dtsi" 8#include <dt-bindings/clock/axg-audio-clkc.h> 9#include <dt-bindings/power/meson-g12a-power.h> 10#include <dt-bindings/reset/amlogic,meson-axg-audio-arb.h> 11#include <dt-bindings/reset/amlogic,meson-g12a-audio-reset.h> 12 13/ { 14 tdmif_a: audio-controller-0 { 15 compatible = "amlogic,axg-tdm-iface"; 16 #sound-dai-cells = <0>; 17 sound-name-prefix = "TDM_A"; 18 clocks = <&clkc_audio AUD_CLKID_MST_A_MCLK>, 19 <&clkc_audio AUD_CLKID_MST_A_SCLK>, 20 <&clkc_audio AUD_CLKID_MST_A_LRCLK>; 21 clock-names = "mclk", "sclk", "lrclk"; 22 status = "disabled"; 23 }; 24 25 tdmif_b: audio-controller-1 { 26 compatible = "amlogic,axg-tdm-iface"; 27 #sound-dai-cells = <0>; 28 sound-name-prefix = "TDM_B"; 29 clocks = <&clkc_audio AUD_CLKID_MST_B_MCLK>, 30 <&clkc_audio AUD_CLKID_MST_B_SCLK>, 31 <&clkc_audio AUD_CLKID_MST_B_LRCLK>; 32 clock-names = "mclk", "sclk", "lrclk"; 33 status = "disabled"; 34 }; 35 36 tdmif_c: audio-controller-2 { 37 compatible = "amlogic,axg-tdm-iface"; 38 #sound-dai-cells = <0>; 39 sound-name-prefix = "TDM_C"; 40 clocks = <&clkc_audio AUD_CLKID_MST_C_MCLK>, 41 <&clkc_audio AUD_CLKID_MST_C_SCLK>, 42 <&clkc_audio AUD_CLKID_MST_C_LRCLK>; 43 clock-names = "mclk", "sclk", "lrclk"; 44 status = "disabled"; 45 }; 46}; 47 48&apb { 49 pdm: audio-controller@40000 { 50 compatible = "amlogic,g12a-pdm", 51 "amlogic,axg-pdm"; 52 reg = <0x0 0x40000 0x0 0x34>; 53 #sound-dai-cells = <0>; 54 sound-name-prefix = "PDM"; 55 clocks = <&clkc_audio AUD_CLKID_PDM>, 56 <&clkc_audio AUD_CLKID_PDM_DCLK>, 57 <&clkc_audio AUD_CLKID_PDM_SYSCLK>; 58 clock-names = "pclk", "dclk", "sysclk"; 59 status = "disabled"; 60 }; 61 62 audio: bus@42000 { 63 compatible = "simple-bus"; 64 reg = <0x0 0x42000 0x0 0x2000>; 65 #address-cells = <2>; 66 #size-cells = <2>; 67 ranges = <0x0 0x0 0x0 0x42000 0x0 0x2000>; 68 69 clkc_audio: clock-controller@0 { 70 status = "disabled"; 71 compatible = "amlogic,g12a-audio-clkc"; 72 reg = <0x0 0x0 0x0 0xb4>; 73 #clock-cells = <1>; 74 #reset-cells = <1>; 75 76 clocks = <&clkc CLKID_AUDIO>, 77 <&clkc CLKID_MPLL0>, 78 <&clkc CLKID_MPLL1>, 79 <&clkc CLKID_MPLL2>, 80 <&clkc CLKID_MPLL3>, 81 <&clkc CLKID_HIFI_PLL>, 82 <&clkc CLKID_FCLK_DIV3>, 83 <&clkc CLKID_FCLK_DIV4>, 84 <&clkc CLKID_GP0_PLL>; 85 clock-names = "pclk", 86 "mst_in0", 87 "mst_in1", 88 "mst_in2", 89 "mst_in3", 90 "mst_in4", 91 "mst_in5", 92 "mst_in6", 93 "mst_in7"; 94 95 resets = <&reset RESET_AUDIO>; 96 }; 97 98 toddr_a: audio-controller@100 { 99 compatible = "amlogic,g12a-toddr", 100 "amlogic,axg-toddr"; 101 reg = <0x0 0x100 0x0 0x2c>; 102 #sound-dai-cells = <0>; 103 sound-name-prefix = "TODDR_A"; 104 interrupts = <GIC_SPI 148 IRQ_TYPE_EDGE_RISING>; 105 clocks = <&clkc_audio AUD_CLKID_TODDR_A>; 106 resets = <&arb AXG_ARB_TODDR_A>, 107 <&clkc_audio AUD_RESET_TODDR_A>; 108 reset-names = "arb", "rst"; 109 status = "disabled"; 110 }; 111 112 toddr_b: audio-controller@140 { 113 compatible = "amlogic,g12a-toddr", 114 "amlogic,axg-toddr"; 115 reg = <0x0 0x140 0x0 0x2c>; 116 #sound-dai-cells = <0>; 117 sound-name-prefix = "TODDR_B"; 118 interrupts = <GIC_SPI 149 IRQ_TYPE_EDGE_RISING>; 119 clocks = <&clkc_audio AUD_CLKID_TODDR_B>; 120 resets = <&arb AXG_ARB_TODDR_B>, 121 <&clkc_audio AUD_RESET_TODDR_B>; 122 reset-names = "arb", "rst"; 123 status = "disabled"; 124 }; 125 126 toddr_c: audio-controller@180 { 127 compatible = "amlogic,g12a-toddr", 128 "amlogic,axg-toddr"; 129 reg = <0x0 0x180 0x0 0x2c>; 130 #sound-dai-cells = <0>; 131 sound-name-prefix = "TODDR_C"; 132 interrupts = <GIC_SPI 150 IRQ_TYPE_EDGE_RISING>; 133 clocks = <&clkc_audio AUD_CLKID_TODDR_C>; 134 resets = <&arb AXG_ARB_TODDR_C>, 135 <&clkc_audio AUD_RESET_TODDR_C>; 136 reset-names = "arb", "rst"; 137 status = "disabled"; 138 }; 139 140 frddr_a: audio-controller@1c0 { 141 compatible = "amlogic,g12a-frddr", 142 "amlogic,axg-frddr"; 143 reg = <0x0 0x1c0 0x0 0x2c>; 144 #sound-dai-cells = <0>; 145 sound-name-prefix = "FRDDR_A"; 146 interrupts = <GIC_SPI 152 IRQ_TYPE_EDGE_RISING>; 147 clocks = <&clkc_audio AUD_CLKID_FRDDR_A>; 148 resets = <&arb AXG_ARB_FRDDR_A>, 149 <&clkc_audio AUD_RESET_FRDDR_A>; 150 reset-names = "arb", "rst"; 151 status = "disabled"; 152 }; 153 154 frddr_b: audio-controller@200 { 155 compatible = "amlogic,g12a-frddr", 156 "amlogic,axg-frddr"; 157 reg = <0x0 0x200 0x0 0x2c>; 158 #sound-dai-cells = <0>; 159 sound-name-prefix = "FRDDR_B"; 160 interrupts = <GIC_SPI 153 IRQ_TYPE_EDGE_RISING>; 161 clocks = <&clkc_audio AUD_CLKID_FRDDR_B>; 162 resets = <&arb AXG_ARB_FRDDR_B>, 163 <&clkc_audio AUD_RESET_FRDDR_B>; 164 reset-names = "arb", "rst"; 165 status = "disabled"; 166 }; 167 168 frddr_c: audio-controller@240 { 169 compatible = "amlogic,g12a-frddr", 170 "amlogic,axg-frddr"; 171 reg = <0x0 0x240 0x0 0x2c>; 172 #sound-dai-cells = <0>; 173 sound-name-prefix = "FRDDR_C"; 174 interrupts = <GIC_SPI 154 IRQ_TYPE_EDGE_RISING>; 175 clocks = <&clkc_audio AUD_CLKID_FRDDR_C>; 176 resets = <&arb AXG_ARB_FRDDR_C>, 177 <&clkc_audio AUD_RESET_FRDDR_C>; 178 reset-names = "arb", "rst"; 179 status = "disabled"; 180 }; 181 182 arb: reset-controller@280 { 183 status = "disabled"; 184 compatible = "amlogic,meson-axg-audio-arb"; 185 reg = <0x0 0x280 0x0 0x4>; 186 #reset-cells = <1>; 187 clocks = <&clkc_audio AUD_CLKID_DDR_ARB>; 188 }; 189 190 tdmin_a: audio-controller@300 { 191 compatible = "amlogic,g12a-tdmin", 192 "amlogic,axg-tdmin"; 193 reg = <0x0 0x300 0x0 0x40>; 194 sound-name-prefix = "TDMIN_A"; 195 resets = <&clkc_audio AUD_RESET_TDMIN_A>; 196 clocks = <&clkc_audio AUD_CLKID_TDMIN_A>, 197 <&clkc_audio AUD_CLKID_TDMIN_A_SCLK>, 198 <&clkc_audio AUD_CLKID_TDMIN_A_SCLK_SEL>, 199 <&clkc_audio AUD_CLKID_TDMIN_A_LRCLK>, 200 <&clkc_audio AUD_CLKID_TDMIN_A_LRCLK>; 201 clock-names = "pclk", "sclk", "sclk_sel", 202 "lrclk", "lrclk_sel"; 203 status = "disabled"; 204 }; 205 206 tdmin_b: audio-controller@340 { 207 compatible = "amlogic,g12a-tdmin", 208 "amlogic,axg-tdmin"; 209 reg = <0x0 0x340 0x0 0x40>; 210 sound-name-prefix = "TDMIN_B"; 211 resets = <&clkc_audio AUD_RESET_TDMIN_B>; 212 clocks = <&clkc_audio AUD_CLKID_TDMIN_B>, 213 <&clkc_audio AUD_CLKID_TDMIN_B_SCLK>, 214 <&clkc_audio AUD_CLKID_TDMIN_B_SCLK_SEL>, 215 <&clkc_audio AUD_CLKID_TDMIN_B_LRCLK>, 216 <&clkc_audio AUD_CLKID_TDMIN_B_LRCLK>; 217 clock-names = "pclk", "sclk", "sclk_sel", 218 "lrclk", "lrclk_sel"; 219 status = "disabled"; 220 }; 221 222 tdmin_c: audio-controller@380 { 223 compatible = "amlogic,g12a-tdmin", 224 "amlogic,axg-tdmin"; 225 reg = <0x0 0x380 0x0 0x40>; 226 sound-name-prefix = "TDMIN_C"; 227 resets = <&clkc_audio AUD_RESET_TDMIN_C>; 228 clocks = <&clkc_audio AUD_CLKID_TDMIN_C>, 229 <&clkc_audio AUD_CLKID_TDMIN_C_SCLK>, 230 <&clkc_audio AUD_CLKID_TDMIN_C_SCLK_SEL>, 231 <&clkc_audio AUD_CLKID_TDMIN_C_LRCLK>, 232 <&clkc_audio AUD_CLKID_TDMIN_C_LRCLK>; 233 clock-names = "pclk", "sclk", "sclk_sel", 234 "lrclk", "lrclk_sel"; 235 status = "disabled"; 236 }; 237 238 tdmin_lb: audio-controller@3c0 { 239 compatible = "amlogic,g12a-tdmin", 240 "amlogic,axg-tdmin"; 241 reg = <0x0 0x3c0 0x0 0x40>; 242 sound-name-prefix = "TDMIN_LB"; 243 resets = <&clkc_audio AUD_RESET_TDMIN_LB>; 244 clocks = <&clkc_audio AUD_CLKID_TDMIN_LB>, 245 <&clkc_audio AUD_CLKID_TDMIN_LB_SCLK>, 246 <&clkc_audio AUD_CLKID_TDMIN_LB_SCLK_SEL>, 247 <&clkc_audio AUD_CLKID_TDMIN_LB_LRCLK>, 248 <&clkc_audio AUD_CLKID_TDMIN_LB_LRCLK>; 249 clock-names = "pclk", "sclk", "sclk_sel", 250 "lrclk", "lrclk_sel"; 251 status = "disabled"; 252 }; 253 254 spdifin: audio-controller@400 { 255 compatible = "amlogic,g12a-spdifin", 256 "amlogic,axg-spdifin"; 257 reg = <0x0 0x400 0x0 0x30>; 258 #sound-dai-cells = <0>; 259 sound-name-prefix = "SPDIFIN"; 260 interrupts = <GIC_SPI 151 IRQ_TYPE_EDGE_RISING>; 261 clocks = <&clkc_audio AUD_CLKID_SPDIFIN>, 262 <&clkc_audio AUD_CLKID_SPDIFIN_CLK>; 263 clock-names = "pclk", "refclk"; 264 resets = <&clkc_audio AUD_RESET_SPDIFIN>; 265 status = "disabled"; 266 }; 267 268 spdifout: audio-controller@480 { 269 compatible = "amlogic,g12a-spdifout", 270 "amlogic,axg-spdifout"; 271 reg = <0x0 0x480 0x0 0x50>; 272 #sound-dai-cells = <0>; 273 sound-name-prefix = "SPDIFOUT"; 274 clocks = <&clkc_audio AUD_CLKID_SPDIFOUT>, 275 <&clkc_audio AUD_CLKID_SPDIFOUT_CLK>; 276 clock-names = "pclk", "mclk"; 277 resets = <&clkc_audio AUD_RESET_SPDIFOUT>; 278 status = "disabled"; 279 }; 280 281 tdmout_a: audio-controller@500 { 282 compatible = "amlogic,g12a-tdmout"; 283 reg = <0x0 0x500 0x0 0x40>; 284 sound-name-prefix = "TDMOUT_A"; 285 resets = <&clkc_audio AUD_RESET_TDMOUT_A>; 286 clocks = <&clkc_audio AUD_CLKID_TDMOUT_A>, 287 <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK>, 288 <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK_SEL>, 289 <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>, 290 <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>; 291 clock-names = "pclk", "sclk", "sclk_sel", 292 "lrclk", "lrclk_sel"; 293 status = "disabled"; 294 }; 295 296 tdmout_b: audio-controller@540 { 297 compatible = "amlogic,g12a-tdmout"; 298 reg = <0x0 0x540 0x0 0x40>; 299 sound-name-prefix = "TDMOUT_B"; 300 resets = <&clkc_audio AUD_RESET_TDMOUT_B>; 301 clocks = <&clkc_audio AUD_CLKID_TDMOUT_B>, 302 <&clkc_audio AUD_CLKID_TDMOUT_B_SCLK>, 303 <&clkc_audio AUD_CLKID_TDMOUT_B_SCLK_SEL>, 304 <&clkc_audio AUD_CLKID_TDMOUT_B_LRCLK>, 305 <&clkc_audio AUD_CLKID_TDMOUT_B_LRCLK>; 306 clock-names = "pclk", "sclk", "sclk_sel", 307 "lrclk", "lrclk_sel"; 308 status = "disabled"; 309 }; 310 311 tdmout_c: audio-controller@580 { 312 compatible = "amlogic,g12a-tdmout"; 313 reg = <0x0 0x580 0x0 0x40>; 314 sound-name-prefix = "TDMOUT_C"; 315 resets = <&clkc_audio AUD_RESET_TDMOUT_C>; 316 clocks = <&clkc_audio AUD_CLKID_TDMOUT_C>, 317 <&clkc_audio AUD_CLKID_TDMOUT_C_SCLK>, 318 <&clkc_audio AUD_CLKID_TDMOUT_C_SCLK_SEL>, 319 <&clkc_audio AUD_CLKID_TDMOUT_C_LRCLK>, 320 <&clkc_audio AUD_CLKID_TDMOUT_C_LRCLK>; 321 clock-names = "pclk", "sclk", "sclk_sel", 322 "lrclk", "lrclk_sel"; 323 status = "disabled"; 324 }; 325 326 spdifout_b: audio-controller@680 { 327 compatible = "amlogic,g12a-spdifout", 328 "amlogic,axg-spdifout"; 329 reg = <0x0 0x680 0x0 0x50>; 330 #sound-dai-cells = <0>; 331 sound-name-prefix = "SPDIFOUT_B"; 332 clocks = <&clkc_audio AUD_CLKID_SPDIFOUT_B>, 333 <&clkc_audio AUD_CLKID_SPDIFOUT_B_CLK>; 334 clock-names = "pclk", "mclk"; 335 resets = <&clkc_audio AUD_RESET_SPDIFOUT_B>; 336 status = "disabled"; 337 }; 338 339 tohdmitx: audio-controller@744 { 340 compatible = "amlogic,g12a-tohdmitx"; 341 reg = <0x0 0x744 0x0 0x4>; 342 #sound-dai-cells = <1>; 343 sound-name-prefix = "TOHDMITX"; 344 resets = <&clkc_audio AUD_RESET_TOHDMITX>; 345 status = "disabled"; 346 }; 347 }; 348}; 349 350&cpu_thermal { 351 cooling-maps { 352 map0 { 353 trip = <&cpu_passive>; 354 cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 355 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 356 <&cpu100 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 357 <&cpu101 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 358 <&cpu102 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 359 <&cpu103 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 360 }; 361 map1 { 362 trip = <&cpu_hot>; 363 cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 364 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 365 <&cpu100 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 366 <&cpu101 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 367 <&cpu102 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 368 <&cpu103 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 369 }; 370 }; 371}; 372 373ðmac { 374 power-domains = <&pwrc PWRC_G12A_ETH_ID>; 375}; 376 377&vpu { 378 power-domains = <&pwrc PWRC_G12A_VPU_ID>; 379}; 380 381&sd_emmc_a { 382 amlogic,dram-access-quirk; 383}; 384 385&simplefb_cvbs { 386 power-domains = <&pwrc PWRC_G12A_VPU_ID>; 387}; 388 389&simplefb_hdmi { 390 power-domains = <&pwrc PWRC_G12A_VPU_ID>; 391}; 392 393