1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Copyright (c) 2019 BayLibre, SAS 4 * Author: Neil Armstrong <narmstrong@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-sm1-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 compatible = "amlogic,sm1"; 15 16 tdmif_a: audio-controller-0 { 17 compatible = "amlogic,axg-tdm-iface"; 18 #sound-dai-cells = <0>; 19 sound-name-prefix = "TDM_A"; 20 clocks = <&clkc_audio AUD_CLKID_MST_A_SCLK>, 21 <&clkc_audio AUD_CLKID_MST_A_LRCLK>, 22 <&clkc_audio AUD_CLKID_MST_A_MCLK>; 23 clock-names = "sclk", "lrclk", "mclk"; 24 status = "disabled"; 25 }; 26 27 tdmif_b: audio-controller-1 { 28 compatible = "amlogic,axg-tdm-iface"; 29 #sound-dai-cells = <0>; 30 sound-name-prefix = "TDM_B"; 31 clocks = <&clkc_audio AUD_CLKID_MST_B_SCLK>, 32 <&clkc_audio AUD_CLKID_MST_B_LRCLK>, 33 <&clkc_audio AUD_CLKID_MST_B_MCLK>; 34 clock-names = "sclk", "lrclk", "mclk"; 35 status = "disabled"; 36 }; 37 38 tdmif_c: audio-controller-2 { 39 compatible = "amlogic,axg-tdm-iface"; 40 #sound-dai-cells = <0>; 41 sound-name-prefix = "TDM_C"; 42 clocks = <&clkc_audio AUD_CLKID_MST_C_SCLK>, 43 <&clkc_audio AUD_CLKID_MST_C_LRCLK>, 44 <&clkc_audio AUD_CLKID_MST_C_MCLK>; 45 clock-names = "sclk", "lrclk", "mclk"; 46 status = "disabled"; 47 }; 48 49 cpus { 50 #address-cells = <0x2>; 51 #size-cells = <0x0>; 52 53 cpu0: cpu@0 { 54 device_type = "cpu"; 55 compatible = "arm,cortex-a55"; 56 reg = <0x0 0x0>; 57 enable-method = "psci"; 58 next-level-cache = <&l2>; 59 #cooling-cells = <2>; 60 }; 61 62 cpu1: cpu@1 { 63 device_type = "cpu"; 64 compatible = "arm,cortex-a55"; 65 reg = <0x0 0x1>; 66 enable-method = "psci"; 67 next-level-cache = <&l2>; 68 #cooling-cells = <2>; 69 }; 70 71 cpu2: cpu@2 { 72 device_type = "cpu"; 73 compatible = "arm,cortex-a55"; 74 reg = <0x0 0x2>; 75 enable-method = "psci"; 76 next-level-cache = <&l2>; 77 #cooling-cells = <2>; 78 }; 79 80 cpu3: cpu@3 { 81 device_type = "cpu"; 82 compatible = "arm,cortex-a55"; 83 reg = <0x0 0x3>; 84 enable-method = "psci"; 85 next-level-cache = <&l2>; 86 #cooling-cells = <2>; 87 }; 88 89 l2: l2-cache0 { 90 compatible = "cache"; 91 cache-level = <2>; 92 cache-unified; 93 }; 94 }; 95 96 cpu_opp_table: opp-table { 97 compatible = "operating-points-v2"; 98 opp-shared; 99 100 opp-1000000000 { 101 opp-hz = /bits/ 64 <1000000000>; 102 opp-microvolt = <770000>; 103 clock-latency-ns = <50000>; 104 }; 105 106 opp-1200000000 { 107 opp-hz = /bits/ 64 <1200000000>; 108 opp-microvolt = <780000>; 109 }; 110 111 opp-1404000000 { 112 opp-hz = /bits/ 64 <1404000000>; 113 opp-microvolt = <790000>; 114 }; 115 116 opp-1500000000 { 117 opp-hz = /bits/ 64 <1500000000>; 118 opp-microvolt = <800000>; 119 }; 120 121 opp-1608000000 { 122 opp-hz = /bits/ 64 <1608000000>; 123 opp-microvolt = <810000>; 124 }; 125 126 opp-1704000000 { 127 opp-hz = /bits/ 64 <1704000000>; 128 opp-microvolt = <850000>; 129 }; 130 131 opp-1800000000 { 132 opp-hz = /bits/ 64 <1800000000>; 133 opp-microvolt = <900000>; 134 }; 135 136 opp-1908000000 { 137 opp-hz = /bits/ 64 <1908000000>; 138 opp-microvolt = <950000>; 139 }; 140 }; 141}; 142 143&apb { 144 audio: bus@60000 { 145 compatible = "simple-bus"; 146 reg = <0x0 0x60000 0x0 0x1000>; 147 #address-cells = <2>; 148 #size-cells = <2>; 149 ranges = <0x0 0x0 0x0 0x60000 0x0 0x1000>; 150 151 clkc_audio: clock-controller@0 { 152 status = "disabled"; 153 compatible = "amlogic,sm1-audio-clkc"; 154 reg = <0x0 0x0 0x0 0xb4>; 155 #clock-cells = <1>; 156 #reset-cells = <1>; 157 158 clocks = <&clkc CLKID_AUDIO>, 159 <&clkc CLKID_MPLL0>, 160 <&clkc CLKID_MPLL1>, 161 <&clkc CLKID_MPLL2>, 162 <&clkc CLKID_MPLL3>, 163 <&clkc CLKID_HIFI_PLL>, 164 <&clkc CLKID_FCLK_DIV3>, 165 <&clkc CLKID_FCLK_DIV4>, 166 <&clkc CLKID_FCLK_DIV5>; 167 clock-names = "pclk", 168 "mst_in0", 169 "mst_in1", 170 "mst_in2", 171 "mst_in3", 172 "mst_in4", 173 "mst_in5", 174 "mst_in6", 175 "mst_in7"; 176 177 resets = <&reset RESET_AUDIO>; 178 }; 179 180 toddr_a: audio-controller@100 { 181 compatible = "amlogic,sm1-toddr", 182 "amlogic,axg-toddr"; 183 reg = <0x0 0x100 0x0 0x2c>; 184 #sound-dai-cells = <0>; 185 sound-name-prefix = "TODDR_A"; 186 interrupts = <GIC_SPI 148 IRQ_TYPE_EDGE_RISING>; 187 clocks = <&clkc_audio AUD_CLKID_TODDR_A>; 188 resets = <&arb AXG_ARB_TODDR_A>, 189 <&clkc_audio AUD_RESET_TODDR_A>; 190 reset-names = "arb", "rst"; 191 amlogic,fifo-depth = <8192>; 192 status = "disabled"; 193 }; 194 195 toddr_b: audio-controller@140 { 196 compatible = "amlogic,sm1-toddr", 197 "amlogic,axg-toddr"; 198 reg = <0x0 0x140 0x0 0x2c>; 199 #sound-dai-cells = <0>; 200 sound-name-prefix = "TODDR_B"; 201 interrupts = <GIC_SPI 149 IRQ_TYPE_EDGE_RISING>; 202 clocks = <&clkc_audio AUD_CLKID_TODDR_B>; 203 resets = <&arb AXG_ARB_TODDR_B>, 204 <&clkc_audio AUD_RESET_TODDR_B>; 205 reset-names = "arb", "rst"; 206 amlogic,fifo-depth = <256>; 207 status = "disabled"; 208 }; 209 210 toddr_c: audio-controller@180 { 211 compatible = "amlogic,sm1-toddr", 212 "amlogic,axg-toddr"; 213 reg = <0x0 0x180 0x0 0x2c>; 214 #sound-dai-cells = <0>; 215 sound-name-prefix = "TODDR_C"; 216 interrupts = <GIC_SPI 150 IRQ_TYPE_EDGE_RISING>; 217 clocks = <&clkc_audio AUD_CLKID_TODDR_C>; 218 resets = <&arb AXG_ARB_TODDR_C>, 219 <&clkc_audio AUD_RESET_TODDR_C>; 220 reset-names = "arb", "rst"; 221 amlogic,fifo-depth = <256>; 222 status = "disabled"; 223 }; 224 225 frddr_a: audio-controller@1c0 { 226 compatible = "amlogic,sm1-frddr", 227 "amlogic,axg-frddr"; 228 reg = <0x0 0x1c0 0x0 0x2c>; 229 #sound-dai-cells = <0>; 230 sound-name-prefix = "FRDDR_A"; 231 interrupts = <GIC_SPI 152 IRQ_TYPE_EDGE_RISING>; 232 clocks = <&clkc_audio AUD_CLKID_FRDDR_A>; 233 resets = <&arb AXG_ARB_FRDDR_A>, 234 <&clkc_audio AUD_RESET_FRDDR_A>; 235 reset-names = "arb", "rst"; 236 amlogic,fifo-depth = <512>; 237 status = "disabled"; 238 }; 239 240 frddr_b: audio-controller@200 { 241 compatible = "amlogic,sm1-frddr", 242 "amlogic,axg-frddr"; 243 reg = <0x0 0x200 0x0 0x2c>; 244 #sound-dai-cells = <0>; 245 sound-name-prefix = "FRDDR_B"; 246 interrupts = <GIC_SPI 153 IRQ_TYPE_EDGE_RISING>; 247 clocks = <&clkc_audio AUD_CLKID_FRDDR_B>; 248 resets = <&arb AXG_ARB_FRDDR_B>, 249 <&clkc_audio AUD_RESET_FRDDR_B>; 250 reset-names = "arb", "rst"; 251 amlogic,fifo-depth = <256>; 252 status = "disabled"; 253 }; 254 255 frddr_c: audio-controller@240 { 256 compatible = "amlogic,sm1-frddr", 257 "amlogic,axg-frddr"; 258 reg = <0x0 0x240 0x0 0x2c>; 259 #sound-dai-cells = <0>; 260 sound-name-prefix = "FRDDR_C"; 261 interrupts = <GIC_SPI 154 IRQ_TYPE_EDGE_RISING>; 262 clocks = <&clkc_audio AUD_CLKID_FRDDR_C>; 263 resets = <&arb AXG_ARB_FRDDR_C>, 264 <&clkc_audio AUD_RESET_FRDDR_C>; 265 reset-names = "arb", "rst"; 266 amlogic,fifo-depth = <256>; 267 status = "disabled"; 268 }; 269 270 arb: reset-controller@280 { 271 status = "disabled"; 272 compatible = "amlogic,meson-sm1-audio-arb"; 273 reg = <0x0 0x280 0x0 0x4>; 274 #reset-cells = <1>; 275 clocks = <&clkc_audio AUD_CLKID_DDR_ARB>; 276 }; 277 278 tdmin_a: audio-controller@300 { 279 compatible = "amlogic,sm1-tdmin"; 280 reg = <0x0 0x300 0x0 0x40>; 281 sound-name-prefix = "TDMIN_A"; 282 resets = <&clkc_audio AUD_RESET_TDMIN_A>; 283 clocks = <&clkc_audio AUD_CLKID_TDMIN_A>, 284 <&clkc_audio AUD_CLKID_TDMIN_A_SCLK>, 285 <&clkc_audio AUD_CLKID_TDMIN_A_SCLK_SEL>, 286 <&clkc_audio AUD_CLKID_TDMIN_A_LRCLK>, 287 <&clkc_audio AUD_CLKID_TDMIN_A_LRCLK>; 288 clock-names = "pclk", "sclk", "sclk_sel", 289 "lrclk", "lrclk_sel"; 290 status = "disabled"; 291 }; 292 293 tdmin_b: audio-controller@340 { 294 compatible = "amlogic,sm1-tdmin"; 295 reg = <0x0 0x340 0x0 0x40>; 296 sound-name-prefix = "TDMIN_B"; 297 resets = <&clkc_audio AUD_RESET_TDMIN_B>; 298 clocks = <&clkc_audio AUD_CLKID_TDMIN_B>, 299 <&clkc_audio AUD_CLKID_TDMIN_B_SCLK>, 300 <&clkc_audio AUD_CLKID_TDMIN_B_SCLK_SEL>, 301 <&clkc_audio AUD_CLKID_TDMIN_B_LRCLK>, 302 <&clkc_audio AUD_CLKID_TDMIN_B_LRCLK>; 303 clock-names = "pclk", "sclk", "sclk_sel", 304 "lrclk", "lrclk_sel"; 305 status = "disabled"; 306 }; 307 308 tdmin_c: audio-controller@380 { 309 compatible = "amlogic,sm1-tdmin"; 310 reg = <0x0 0x380 0x0 0x40>; 311 sound-name-prefix = "TDMIN_C"; 312 resets = <&clkc_audio AUD_RESET_TDMIN_C>; 313 clocks = <&clkc_audio AUD_CLKID_TDMIN_C>, 314 <&clkc_audio AUD_CLKID_TDMIN_C_SCLK>, 315 <&clkc_audio AUD_CLKID_TDMIN_C_SCLK_SEL>, 316 <&clkc_audio AUD_CLKID_TDMIN_C_LRCLK>, 317 <&clkc_audio AUD_CLKID_TDMIN_C_LRCLK>; 318 clock-names = "pclk", "sclk", "sclk_sel", 319 "lrclk", "lrclk_sel"; 320 status = "disabled"; 321 }; 322 323 tdmin_lb: audio-controller@3c0 { 324 compatible = "amlogic,sm1-tdmin"; 325 reg = <0x0 0x3c0 0x0 0x40>; 326 sound-name-prefix = "TDMIN_LB"; 327 resets = <&clkc_audio AUD_RESET_TDMIN_LB>; 328 clocks = <&clkc_audio AUD_CLKID_TDMIN_LB>, 329 <&clkc_audio AUD_CLKID_TDMIN_LB_SCLK>, 330 <&clkc_audio AUD_CLKID_TDMIN_LB_SCLK_SEL>, 331 <&clkc_audio AUD_CLKID_TDMIN_LB_LRCLK>, 332 <&clkc_audio AUD_CLKID_TDMIN_LB_LRCLK>; 333 clock-names = "pclk", "sclk", "sclk_sel", 334 "lrclk", "lrclk_sel"; 335 status = "disabled"; 336 }; 337 338 spdifin: audio-controller@400 { 339 compatible = "amlogic,sm1-spdifin", 340 "amlogic,axg-spdifin"; 341 reg = <0x0 0x400 0x0 0x30>; 342 #sound-dai-cells = <0>; 343 sound-name-prefix = "SPDIFIN"; 344 interrupts = <GIC_SPI 151 IRQ_TYPE_EDGE_RISING>; 345 clocks = <&clkc_audio AUD_CLKID_SPDIFIN>, 346 <&clkc_audio AUD_CLKID_SPDIFIN_CLK>; 347 clock-names = "pclk", "refclk"; 348 resets = <&clkc_audio AUD_RESET_SPDIFIN>; 349 status = "disabled"; 350 }; 351 352 spdifout_a: audio-controller@480 { 353 compatible = "amlogic,sm1-spdifout", 354 "amlogic,axg-spdifout"; 355 reg = <0x0 0x480 0x0 0x50>; 356 #sound-dai-cells = <0>; 357 sound-name-prefix = "SPDIFOUT_A"; 358 clocks = <&clkc_audio AUD_CLKID_SPDIFOUT>, 359 <&clkc_audio AUD_CLKID_SPDIFOUT_CLK>; 360 clock-names = "pclk", "mclk"; 361 resets = <&clkc_audio AUD_RESET_SPDIFOUT>; 362 status = "disabled"; 363 }; 364 365 tdmout_a: audio-controller@500 { 366 compatible = "amlogic,sm1-tdmout"; 367 reg = <0x0 0x500 0x0 0x40>; 368 sound-name-prefix = "TDMOUT_A"; 369 resets = <&clkc_audio AUD_RESET_TDMOUT_A>; 370 clocks = <&clkc_audio AUD_CLKID_TDMOUT_A>, 371 <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK>, 372 <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK_SEL>, 373 <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>, 374 <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>; 375 clock-names = "pclk", "sclk", "sclk_sel", 376 "lrclk", "lrclk_sel"; 377 status = "disabled"; 378 }; 379 380 tdmout_b: audio-controller@540 { 381 compatible = "amlogic,sm1-tdmout"; 382 reg = <0x0 0x540 0x0 0x40>; 383 sound-name-prefix = "TDMOUT_B"; 384 resets = <&clkc_audio AUD_RESET_TDMOUT_B>; 385 clocks = <&clkc_audio AUD_CLKID_TDMOUT_B>, 386 <&clkc_audio AUD_CLKID_TDMOUT_B_SCLK>, 387 <&clkc_audio AUD_CLKID_TDMOUT_B_SCLK_SEL>, 388 <&clkc_audio AUD_CLKID_TDMOUT_B_LRCLK>, 389 <&clkc_audio AUD_CLKID_TDMOUT_B_LRCLK>; 390 clock-names = "pclk", "sclk", "sclk_sel", 391 "lrclk", "lrclk_sel"; 392 status = "disabled"; 393 }; 394 395 tdmout_c: audio-controller@580 { 396 compatible = "amlogic,sm1-tdmout"; 397 reg = <0x0 0x580 0x0 0x40>; 398 sound-name-prefix = "TDMOUT_C"; 399 resets = <&clkc_audio AUD_RESET_TDMOUT_C>; 400 clocks = <&clkc_audio AUD_CLKID_TDMOUT_C>, 401 <&clkc_audio AUD_CLKID_TDMOUT_C_SCLK>, 402 <&clkc_audio AUD_CLKID_TDMOUT_C_SCLK_SEL>, 403 <&clkc_audio AUD_CLKID_TDMOUT_C_LRCLK>, 404 <&clkc_audio AUD_CLKID_TDMOUT_C_LRCLK>; 405 clock-names = "pclk", "sclk", "sclk_sel", 406 "lrclk", "lrclk_sel"; 407 status = "disabled"; 408 }; 409 410 toacodec: audio-controller@740 { 411 compatible = "amlogic,sm1-toacodec", 412 "amlogic,g12a-toacodec"; 413 reg = <0x0 0x740 0x0 0x4>; 414 #sound-dai-cells = <1>; 415 sound-name-prefix = "TOACODEC"; 416 resets = <&clkc_audio AUD_RESET_TOACODEC>; 417 status = "disabled"; 418 }; 419 420 tohdmitx: audio-controller@744 { 421 compatible = "amlogic,sm1-tohdmitx", 422 "amlogic,g12a-tohdmitx"; 423 reg = <0x0 0x744 0x0 0x4>; 424 #sound-dai-cells = <1>; 425 sound-name-prefix = "TOHDMITX"; 426 resets = <&clkc_audio AUD_RESET_TOHDMITX>; 427 status = "disabled"; 428 }; 429 430 toddr_d: audio-controller@840 { 431 compatible = "amlogic,sm1-toddr", 432 "amlogic,axg-toddr"; 433 reg = <0x0 0x840 0x0 0x2c>; 434 #sound-dai-cells = <0>; 435 sound-name-prefix = "TODDR_D"; 436 interrupts = <GIC_SPI 49 IRQ_TYPE_EDGE_RISING>; 437 clocks = <&clkc_audio AUD_CLKID_TODDR_D>; 438 resets = <&arb AXG_ARB_TODDR_D>, 439 <&clkc_audio AUD_RESET_TODDR_D>; 440 reset-names = "arb", "rst"; 441 amlogic,fifo-depth = <256>; 442 status = "disabled"; 443 }; 444 445 frddr_d: audio-controller@880 { 446 compatible = "amlogic,sm1-frddr", 447 "amlogic,axg-frddr"; 448 reg = <0x0 0x880 0x0 0x2c>; 449 #sound-dai-cells = <0>; 450 sound-name-prefix = "FRDDR_D"; 451 interrupts = <GIC_SPI 50 IRQ_TYPE_EDGE_RISING>; 452 clocks = <&clkc_audio AUD_CLKID_FRDDR_D>; 453 resets = <&arb AXG_ARB_FRDDR_D>, 454 <&clkc_audio AUD_RESET_FRDDR_D>; 455 reset-names = "arb", "rst"; 456 amlogic,fifo-depth = <256>; 457 status = "disabled"; 458 }; 459 }; 460 461 pdm: audio-controller@61000 { 462 compatible = "amlogic,sm1-pdm", 463 "amlogic,axg-pdm"; 464 reg = <0x0 0x61000 0x0 0x34>; 465 #sound-dai-cells = <0>; 466 sound-name-prefix = "PDM"; 467 clocks = <&clkc_audio AUD_CLKID_PDM>, 468 <&clkc_audio AUD_CLKID_PDM_DCLK>, 469 <&clkc_audio AUD_CLKID_PDM_SYSCLK>; 470 clock-names = "pclk", "dclk", "sysclk"; 471 resets = <&clkc_audio AUD_RESET_PDM>; 472 status = "disabled"; 473 }; 474}; 475 476&cecb_AO { 477 compatible = "amlogic,meson-sm1-ao-cec"; 478}; 479 480&clk_msr { 481 compatible = "amlogic,meson-sm1-clk-measure"; 482}; 483 484 485&clkc { 486 compatible = "amlogic,sm1-clkc"; 487}; 488 489&cpu_thermal { 490 cooling-maps { 491 map0 { 492 trip = <&cpu_passive>; 493 cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 494 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 495 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 496 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 497 }; 498 499 map1 { 500 trip = <&cpu_hot>; 501 cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 502 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 503 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 504 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 505 }; 506 }; 507}; 508 509ðmac { 510 power-domains = <&pwrc PWRC_SM1_ETH_ID>; 511}; 512 513&gpio_intc { 514 compatible = "amlogic,meson-sm1-gpio-intc", 515 "amlogic,meson-gpio-intc"; 516}; 517 518&hdmi_tx { 519 power-domains = <&pwrc PWRC_SM1_VPU_ID>; 520}; 521 522&pcie { 523 power-domains = <&pwrc PWRC_SM1_PCIE_ID>; 524}; 525 526&pmu { 527 compatible = "amlogic,sm1-ddr-pmu"; 528}; 529 530&pwrc { 531 compatible = "amlogic,meson-sm1-pwrc"; 532}; 533 534&simplefb_cvbs { 535 power-domains = <&pwrc PWRC_SM1_VPU_ID>; 536}; 537 538&simplefb_hdmi { 539 power-domains = <&pwrc PWRC_SM1_VPU_ID>; 540}; 541 542&vdec { 543 compatible = "amlogic,sm1-vdec"; 544}; 545 546&vpu { 547 power-domains = <&pwrc PWRC_SM1_VPU_ID>; 548}; 549 550&usb { 551 power-domains = <&pwrc PWRC_SM1_USB_ID>; 552}; 553 554&npu { 555 power-domains = <&pwrc PWRC_SM1_NNA_ID>; 556}; 557