1// SPDX-License-Identifier: GPL-2.0 OR MIT 2/* 3 * Copyright 2014 Carlo Caione <carlo@caione.org> 4 */ 5 6#include <dt-bindings/clock/meson8-ddr-clkc.h> 7#include <dt-bindings/clock/meson8b-clkc.h> 8#include <dt-bindings/gpio/meson8-gpio.h> 9#include <dt-bindings/power/meson8-power.h> 10#include <dt-bindings/reset/amlogic,meson8b-clkc-reset.h> 11#include <dt-bindings/reset/amlogic,meson8b-reset.h> 12#include <dt-bindings/thermal/thermal.h> 13#include "meson.dtsi" 14 15/ { 16 model = "Amlogic Meson8 SoC"; 17 compatible = "amlogic,meson8"; 18 19 cpus { 20 #address-cells = <1>; 21 #size-cells = <0>; 22 23 cpu0: cpu@200 { 24 device_type = "cpu"; 25 compatible = "arm,cortex-a9"; 26 next-level-cache = <&L2>; 27 reg = <0x200>; 28 enable-method = "amlogic,meson8-smp"; 29 resets = <&clkc CLKC_RESET_CPU0_SOFT_RESET>; 30 operating-points-v2 = <&cpu_opp_table>; 31 clocks = <&clkc CLKID_CPUCLK>; 32 #cooling-cells = <2>; /* min followed by max */ 33 }; 34 35 cpu1: cpu@201 { 36 device_type = "cpu"; 37 compatible = "arm,cortex-a9"; 38 next-level-cache = <&L2>; 39 reg = <0x201>; 40 enable-method = "amlogic,meson8-smp"; 41 resets = <&clkc CLKC_RESET_CPU1_SOFT_RESET>; 42 operating-points-v2 = <&cpu_opp_table>; 43 clocks = <&clkc CLKID_CPUCLK>; 44 #cooling-cells = <2>; /* min followed by max */ 45 }; 46 47 cpu2: cpu@202 { 48 device_type = "cpu"; 49 compatible = "arm,cortex-a9"; 50 next-level-cache = <&L2>; 51 reg = <0x202>; 52 enable-method = "amlogic,meson8-smp"; 53 resets = <&clkc CLKC_RESET_CPU2_SOFT_RESET>; 54 operating-points-v2 = <&cpu_opp_table>; 55 clocks = <&clkc CLKID_CPUCLK>; 56 #cooling-cells = <2>; /* min followed by max */ 57 }; 58 59 cpu3: cpu@203 { 60 device_type = "cpu"; 61 compatible = "arm,cortex-a9"; 62 next-level-cache = <&L2>; 63 reg = <0x203>; 64 enable-method = "amlogic,meson8-smp"; 65 resets = <&clkc CLKC_RESET_CPU3_SOFT_RESET>; 66 operating-points-v2 = <&cpu_opp_table>; 67 clocks = <&clkc CLKID_CPUCLK>; 68 #cooling-cells = <2>; /* min followed by max */ 69 }; 70 }; 71 72 cpu_opp_table: opp-table { 73 compatible = "operating-points-v2"; 74 opp-shared; 75 76 opp-96000000 { 77 opp-hz = /bits/ 64 <96000000>; 78 opp-microvolt = <825000>; 79 }; 80 opp-192000000 { 81 opp-hz = /bits/ 64 <192000000>; 82 opp-microvolt = <825000>; 83 }; 84 opp-312000000 { 85 opp-hz = /bits/ 64 <312000000>; 86 opp-microvolt = <825000>; 87 }; 88 opp-408000000 { 89 opp-hz = /bits/ 64 <408000000>; 90 opp-microvolt = <825000>; 91 }; 92 opp-504000000 { 93 opp-hz = /bits/ 64 <504000000>; 94 opp-microvolt = <825000>; 95 }; 96 opp-600000000 { 97 opp-hz = /bits/ 64 <600000000>; 98 opp-microvolt = <850000>; 99 }; 100 opp-720000000 { 101 opp-hz = /bits/ 64 <720000000>; 102 opp-microvolt = <850000>; 103 }; 104 opp-816000000 { 105 opp-hz = /bits/ 64 <816000000>; 106 opp-microvolt = <875000>; 107 }; 108 opp-1008000000 { 109 opp-hz = /bits/ 64 <1008000000>; 110 opp-microvolt = <925000>; 111 }; 112 opp-1200000000 { 113 opp-hz = /bits/ 64 <1200000000>; 114 opp-microvolt = <975000>; 115 }; 116 opp-1416000000 { 117 opp-hz = /bits/ 64 <1416000000>; 118 opp-microvolt = <1025000>; 119 }; 120 opp-1608000000 { 121 opp-hz = /bits/ 64 <1608000000>; 122 opp-microvolt = <1100000>; 123 }; 124 opp-1800000000 { 125 status = "disabled"; 126 opp-hz = /bits/ 64 <1800000000>; 127 opp-microvolt = <1125000>; 128 }; 129 opp-1992000000 { 130 status = "disabled"; 131 opp-hz = /bits/ 64 <1992000000>; 132 opp-microvolt = <1150000>; 133 }; 134 }; 135 136 gpu_opp_table: opp-table-gpu { 137 compatible = "operating-points-v2"; 138 139 opp-182142857 { 140 opp-hz = /bits/ 64 <182142857>; 141 opp-microvolt = <1150000>; 142 }; 143 opp-318750000 { 144 opp-hz = /bits/ 64 <318750000>; 145 opp-microvolt = <1150000>; 146 }; 147 opp-425000000 { 148 opp-hz = /bits/ 64 <425000000>; 149 opp-microvolt = <1150000>; 150 }; 151 opp-510000000 { 152 opp-hz = /bits/ 64 <510000000>; 153 opp-microvolt = <1150000>; 154 }; 155 opp-637500000 { 156 opp-hz = /bits/ 64 <637500000>; 157 opp-microvolt = <1150000>; 158 turbo-mode; 159 }; 160 }; 161 162 pmu { 163 compatible = "arm,cortex-a9-pmu"; 164 interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>, 165 <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>, 166 <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>, 167 <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>; 168 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; 169 }; 170 171 reserved-memory { 172 #address-cells = <1>; 173 #size-cells = <1>; 174 ranges; 175 176 /* 2 MiB reserved for Hardware ROM Firmware? */ 177 hwrom@0 { 178 reg = <0x0 0x200000>; 179 no-map; 180 }; 181 182 /* 183 * 1 MiB reserved for the "ARM Power Firmware": this is ARM 184 * code which is responsible for system suspend. It loads a 185 * piece of ARC code ("arc_power" in the vendor u-boot tree) 186 * into SRAM, executes that and shuts down the (last) ARM core. 187 * The arc_power firmware then checks various wakeup sources 188 * (IR remote receiver, HDMI CEC, WIFI and Bluetooth wakeup or 189 * simply the power key) and re-starts the ARM core once it 190 * detects a wakeup request. 191 */ 192 power-firmware@4f00000 { 193 reg = <0x4f00000 0x100000>; 194 no-map; 195 }; 196 }; 197 198 thermal-zones { 199 soc-thermal { 200 polling-delay-passive = <250>; /* milliseconds */ 201 polling-delay = <1000>; /* milliseconds */ 202 thermal-sensors = <&thermal_sensor>; 203 204 cooling-maps { 205 map0 { 206 trip = <&soc_passive>; 207 cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 208 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 209 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 210 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 211 <&mali THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 212 }; 213 214 map1 { 215 trip = <&soc_hot>; 216 cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 217 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 218 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 219 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 220 <&mali THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 221 }; 222 }; 223 224 trips { 225 soc_passive: soc-passive { 226 temperature = <80000>; /* millicelsius */ 227 hysteresis = <2000>; /* millicelsius */ 228 type = "passive"; 229 }; 230 231 soc_hot: soc-hot { 232 temperature = <90000>; /* millicelsius */ 233 hysteresis = <2000>; /* millicelsius */ 234 type = "hot"; 235 }; 236 237 soc_critical: soc-critical { 238 temperature = <110000>; /* millicelsius */ 239 hysteresis = <2000>; /* millicelsius */ 240 type = "critical"; 241 }; 242 }; 243 }; 244 }; 245 246 mmcbus: bus@c8000000 { 247 compatible = "simple-bus"; 248 reg = <0xc8000000 0x8000>; 249 #address-cells = <1>; 250 #size-cells = <1>; 251 ranges = <0x0 0xc8000000 0x8000>; 252 253 ddr_clkc: clock-controller@400 { 254 compatible = "amlogic,meson8-ddr-clkc"; 255 reg = <0x400 0x20>; 256 clocks = <&xtal>; 257 clock-names = "xtal"; 258 #clock-cells = <1>; 259 }; 260 261 dmcbus: bus@6000 { 262 compatible = "simple-bus"; 263 reg = <0x6000 0x400>; 264 #address-cells = <1>; 265 #size-cells = <1>; 266 ranges = <0x0 0x6000 0x400>; 267 268 canvas: video-lut@20 { 269 compatible = "amlogic,meson8-canvas", 270 "amlogic,canvas"; 271 reg = <0x20 0x14>; 272 }; 273 }; 274 }; 275 276 apb: bus@d0000000 { 277 compatible = "simple-bus"; 278 reg = <0xd0000000 0x200000>; 279 #address-cells = <1>; 280 #size-cells = <1>; 281 ranges = <0x0 0xd0000000 0x200000>; 282 283 mali: gpu@c0000 { 284 compatible = "amlogic,meson8-mali", "arm,mali-450"; 285 reg = <0xc0000 0x40000>; 286 interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, 287 <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>, 288 <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>, 289 <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>, 290 <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>, 291 <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>, 292 <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>, 293 <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>, 294 <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>, 295 <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>, 296 <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>, 297 <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>, 298 <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>, 299 <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>, 300 <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>, 301 <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>; 302 interrupt-names = "gp", "gpmmu", "pp", "pmu", 303 "pp0", "ppmmu0", "pp1", "ppmmu1", 304 "pp2", "ppmmu2", "pp4", "ppmmu4", 305 "pp5", "ppmmu5", "pp6", "ppmmu6"; 306 resets = <&reset RESET_MALI>; 307 308 clocks = <&clkc CLKID_CLK81>, <&clkc CLKID_MALI>; 309 clock-names = "bus", "core"; 310 311 assigned-clocks = <&clkc CLKID_MALI>; 312 assigned-clock-rates = <318750000>; 313 314 operating-points-v2 = <&gpu_opp_table>; 315 #cooling-cells = <2>; /* min followed by max */ 316 }; 317 }; 318}; /* end of / */ 319 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 343&aobus { 344 pmu: pmu@e0 { 345 compatible = "amlogic,meson8-pmu", "syscon"; 346 reg = <0xe0 0x18>; 347 }; 348 349 pinctrl_aobus: pinctrl@14 { 350 compatible = "amlogic,meson8-aobus-pinctrl"; 351 #address-cells = <1>; 352 #size-cells = <1>; 353 ranges = <0x0 0x14 0x1c>; 354 355 gpio_ao: bank@0 { 356 reg = <0x0 0x4>, 357 <0x18 0x4>, 358 <0x10 0x8>; 359 reg-names = "mux", "pull", "gpio"; 360 gpio-controller; 361 #gpio-cells = <2>; 362 gpio-ranges = <&pinctrl_aobus 0 0 16>; 363 }; 364 365 i2s_am_clk_pins: i2s-am-clk-out { 366 mux { 367 groups = "i2s_am_clk_out_ao"; 368 function = "i2s_ao"; 369 bias-disable; 370 }; 371 }; 372 373 i2s_out_ao_clk_pins: i2s-ao-clk-out { 374 mux { 375 groups = "i2s_ao_clk_out_ao"; 376 function = "i2s_ao"; 377 bias-disable; 378 }; 379 }; 380 381 i2s_out_lr_clk_pins: i2s-lr-clk-out { 382 mux { 383 groups = "i2s_lr_clk_out_ao"; 384 function = "i2s_ao"; 385 bias-disable; 386 }; 387 }; 388 389 i2s_out_ch01_ao_pins: i2s-out-ch01 { 390 mux { 391 groups = "i2s_out_ch01_ao"; 392 function = "i2s_ao"; 393 bias-disable; 394 }; 395 }; 396 397 uart_ao_a_pins: uart_ao_a { 398 mux { 399 groups = "uart_tx_ao_a", "uart_rx_ao_a"; 400 function = "uart_ao"; 401 bias-pull-up; 402 }; 403 }; 404 405 i2c_ao_pins: i2c_mst_ao { 406 mux { 407 groups = "i2c_mst_sck_ao", "i2c_mst_sda_ao"; 408 function = "i2c_mst_ao"; 409 bias-disable; 410 }; 411 }; 412 413 ir_recv_pins: remote { 414 mux { 415 groups = "remote_input"; 416 function = "remote"; 417 bias-disable; 418 }; 419 }; 420 421 pwm_f_ao_pins: pwm-f-ao { 422 mux { 423 groups = "pwm_f_ao"; 424 function = "pwm_f_ao"; 425 bias-disable; 426 }; 427 }; 428 }; 429}; 430 431&ao_arc_rproc { 432 compatible = "amlogic,meson8-ao-arc", "amlogic,meson-mx-ao-arc"; 433 amlogic,secbus2 = <&secbus2>; 434 sram = <&ao_arc_sram>; 435 resets = <&reset RESET_MEDIA_CPU>; 436 clocks = <&clkc CLKID_AO_MEDIA_CPU>; 437}; 438 439&cbus { 440 reset: reset-controller@4404 { 441 compatible = "amlogic,meson8b-reset"; 442 reg = <0x4404 0x9c>; 443 #reset-cells = <1>; 444 }; 445 446 analog_top: analog-top@81a8 { 447 compatible = "amlogic,meson8-analog-top", "syscon"; 448 reg = <0x81a8 0x14>; 449 }; 450 451 pwm_ef: pwm@86c0 { 452 compatible = "amlogic,meson8-pwm-v2"; 453 clocks = <&xtal>, 454 <0>, /* unknown/untested, the datasheet calls it "Video PLL" */ 455 <&clkc CLKID_FCLK_DIV4>, 456 <&clkc CLKID_FCLK_DIV3>; 457 reg = <0x86c0 0x10>; 458 #pwm-cells = <3>; 459 status = "disabled"; 460 }; 461 462 clock-measure@8758 { 463 compatible = "amlogic,meson8-clk-measure"; 464 reg = <0x8758 0x1c>; 465 }; 466 467 pinctrl_cbus: pinctrl@8030 { 468 compatible = "amlogic,meson8-cbus-pinctrl"; 469 #address-cells = <1>; 470 #size-cells = <1>; 471 ranges = <0x0 0x8030 0x108>; 472 473 gpio: bank@80 { 474 reg = <0x80 0x28>, 475 <0xb8 0x18>, 476 <0xf0 0x18>, 477 <0x00 0x30>; 478 reg-names = "mux", "pull", "pull-enable", "gpio"; 479 gpio-controller; 480 #gpio-cells = <2>; 481 gpio-ranges = <&pinctrl_cbus 0 0 120>; 482 }; 483 484 i2c_b_pins: i2c-b { 485 mux { 486 groups = "i2c_sda_b", "i2c_sck_b"; 487 function = "i2c_b"; 488 bias-disable; 489 }; 490 }; 491 492 sd_a_pins: sd-a { 493 mux { 494 groups = "sd_d0_a", "sd_d1_a", "sd_d2_a", 495 "sd_d3_a", "sd_clk_a", "sd_cmd_a"; 496 function = "sd_a"; 497 bias-disable; 498 }; 499 }; 500 501 sd_b_pins: sd-b { 502 mux { 503 groups = "sd_d0_b", "sd_d1_b", "sd_d2_b", 504 "sd_d3_b", "sd_clk_b", "sd_cmd_b"; 505 function = "sd_b"; 506 bias-disable; 507 }; 508 }; 509 510 sd_c_pins: sd-c { 511 mux { 512 groups = "sd_d0_c", "sd_d1_c", "sd_d2_c", 513 "sd_d3_c", "sd_clk_c", "sd_cmd_c"; 514 function = "sd_c"; 515 bias-disable; 516 }; 517 }; 518 519 sdxc_a_pins: sdxc-a { 520 mux { 521 groups = "sdxc_d0_a", "sdxc_d13_a", 522 "sdxc_clk_a", "sdxc_cmd_a"; 523 function = "sdxc_a"; 524 bias-pull-up; 525 }; 526 }; 527 528 sdxc_b_pins: sdxc-b { 529 mux { 530 groups = "sdxc_d0_b", "sdxc_d13_b", 531 "sdxc_clk_b", "sdxc_cmd_b"; 532 function = "sdxc_b"; 533 bias-pull-up; 534 }; 535 }; 536 537 sdxc_c_pins: sdxc-c { 538 mux { 539 groups = "sdxc_d0_c", "sdxc_d13_c", 540 "sdxc_clk_c", "sdxc_cmd_c", 541 "sdxc_d47_c"; 542 function = "sdxc_c"; 543 bias-pull-up; 544 }; 545 }; 546 547 spdif_out_pins: spdif-out { 548 mux { 549 groups = "spdif_out"; 550 function = "spdif"; 551 bias-disable; 552 }; 553 }; 554 555 spi_nor_pins: nor { 556 mux { 557 groups = "nor_d", "nor_q", "nor_c", "nor_cs"; 558 function = "nor"; 559 bias-disable; 560 }; 561 }; 562 563 eth_pins: ethernet { 564 mux { 565 groups = "eth_tx_clk_50m", "eth_tx_en", 566 "eth_txd1", "eth_txd0", 567 "eth_rx_clk_in", "eth_rx_dv", 568 "eth_rxd1", "eth_rxd0", "eth_mdio", 569 "eth_mdc"; 570 function = "ethernet"; 571 bias-disable; 572 }; 573 }; 574 575 pwm_e_pins: pwm-e { 576 mux { 577 groups = "pwm_e"; 578 function = "pwm_e"; 579 bias-disable; 580 }; 581 }; 582 583 uart_a1_pins: uart-a1 { 584 mux { 585 groups = "uart_tx_a1", 586 "uart_rx_a1"; 587 function = "uart_a"; 588 bias-pull-up; 589 }; 590 }; 591 592 uart_a1_cts_rts_pins: uart-a1-cts-rts { 593 mux { 594 groups = "uart_cts_a1", 595 "uart_rts_a1"; 596 function = "uart_a"; 597 bias-disable; 598 }; 599 }; 600 601 xtal_32k_out_pins: xtal-32k-out { 602 mux { 603 groups = "xtal_32k_out"; 604 function = "xtal"; 605 bias-disable; 606 }; 607 }; 608 }; 609}; 610 611&ahb_sram { 612 ao_arc_sram: aoarc-sram@0 { 613 compatible = "amlogic,meson8-ao-arc-sram"; 614 reg = <0x0 0x8000>; 615 pool; 616 }; 617 618 smp-sram@1ff80 { 619 compatible = "amlogic,meson8-smp-sram"; 620 reg = <0x1ff80 0x8>; 621 }; 622}; 623 624&efuse { 625 compatible = "amlogic,meson8-efuse"; 626 clocks = <&clkc CLKID_EFUSE>; 627 clock-names = "core"; 628 629 temperature_calib: calib@1f4 { 630 /* only the upper two bytes are relevant */ 631 reg = <0x1f4 0x4>; 632 }; 633}; 634 635ðmac { 636 clocks = <&clkc CLKID_ETH>; 637 clock-names = "stmmaceth"; 638 639 power-domains = <&pwrc PWRC_MESON8_ETHERNET_MEM_ID>; 640}; 641 642&gpio_intc { 643 compatible = "amlogic,meson8-gpio-intc", "amlogic,meson-gpio-intc"; 644 status = "okay"; 645}; 646 647&hhi { 648 clkc: clock-controller { 649 compatible = "amlogic,meson8-clkc"; 650 clocks = <&xtal>, <&ddr_clkc DDR_CLKID_DDR_PLL>; 651 clock-names = "xtal", "ddr_pll"; 652 #clock-cells = <1>; 653 #reset-cells = <1>; 654 }; 655 656 pwrc: power-controller { 657 compatible = "amlogic,meson8-pwrc"; 658 #power-domain-cells = <1>; 659 amlogic,ao-sysctrl = <&pmu>; 660 clocks = <&clkc CLKID_VPU>; 661 clock-names = "vpu"; 662 assigned-clocks = <&clkc CLKID_VPU>; 663 assigned-clock-rates = <364285714>; 664 }; 665}; 666 667&hwrng { 668 clocks = <&clkc CLKID_RNG0>; 669 clock-names = "core"; 670}; 671 672&i2c_AO { 673 clocks = <&clkc CLKID_CLK81>; 674}; 675 676&i2c_A { 677 clocks = <&clkc CLKID_CLK81>; 678}; 679 680&i2c_B { 681 clocks = <&clkc CLKID_CLK81>; 682}; 683 684&L2 { 685 arm,data-latency = <3 3 3>; 686 arm,tag-latency = <2 2 2>; 687 arm,filter-ranges = <0x100000 0xc0000000>; 688 prefetch-data = <1>; 689 prefetch-instr = <1>; 690 arm,prefetch-offset = <7>; 691 arm,double-linefill = <1>; 692 arm,prefetch-drop = <1>; 693 arm,shared-override; 694}; 695 696&periph { 697 scu@0 { 698 compatible = "arm,cortex-a9-scu"; 699 reg = <0x0 0x100>; 700 }; 701 702 timer@200 { 703 compatible = "arm,cortex-a9-global-timer"; 704 reg = <0x200 0x20>; 705 interrupts = <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>; 706 clocks = <&clkc CLKID_PERIPH>; 707 708 /* 709 * the arm_global_timer driver currently does not handle clock 710 * rate changes. Keep it disabled for now. 711 */ 712 status = "disabled"; 713 }; 714 715 timer@600 { 716 compatible = "arm,cortex-a9-twd-timer"; 717 reg = <0x600 0x20>; 718 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>; 719 clocks = <&clkc CLKID_PERIPH>; 720 }; 721}; 722 723&pwm_ab { 724 compatible = "amlogic,meson8-pwm-v2"; 725 clocks = <&xtal>, 726 <0>, /* unknown/untested, the datasheet calls it "Video PLL" */ 727 <&clkc CLKID_FCLK_DIV4>, 728 <&clkc CLKID_FCLK_DIV3>; 729}; 730 731&pwm_cd { 732 compatible = "amlogic,meson8-pwm-v2"; 733 clocks = <&xtal>, 734 <0>, /* unknown/untested, the datasheet calls it "Video PLL" */ 735 <&clkc CLKID_FCLK_DIV4>, 736 <&clkc CLKID_FCLK_DIV3>; 737}; 738 739&rtc { 740 compatible = "amlogic,meson8-rtc"; 741 resets = <&reset RESET_RTC>; 742}; 743 744&saradc { 745 compatible = "amlogic,meson8-saradc", "amlogic,meson-saradc"; 746 clocks = <&xtal>, <&clkc CLKID_SAR_ADC>; 747 clock-names = "clkin", "core"; 748 amlogic,hhi-sysctrl = <&hhi>; 749 nvmem-cells = <&temperature_calib>; 750 nvmem-cell-names = "temperature_calib"; 751}; 752 753&sdhc { 754 compatible = "amlogic,meson8-sdhc", "amlogic,meson-mx-sdhc"; 755 clocks = <&xtal>, 756 <&clkc CLKID_FCLK_DIV4>, 757 <&clkc CLKID_FCLK_DIV3>, 758 <&clkc CLKID_FCLK_DIV5>, 759 <&clkc CLKID_SDHC>; 760 clock-names = "clkin0", "clkin1", "clkin2", "clkin3", "pclk"; 761}; 762 763&secbus { 764 secbus2: system-controller@4000 { 765 compatible = "amlogic,meson8-secbus2", "syscon"; 766 reg = <0x4000 0x2000>; 767 }; 768}; 769 770&sdio { 771 compatible = "amlogic,meson8-sdio", "amlogic,meson-mx-sdio"; 772 clocks = <&clkc CLKID_SDIO>, <&clkc CLKID_CLK81>; 773 clock-names = "core", "clkin"; 774}; 775 776&spifc { 777 clocks = <&clkc CLKID_CLK81>; 778}; 779 780&timer_abcde { 781 clocks = <&xtal>, <&clkc CLKID_CLK81>; 782 clock-names = "xtal", "pclk"; 783}; 784 785&uart_AO { 786 compatible = "amlogic,meson8-uart", "amlogic,meson-ao-uart"; 787 clocks = <&xtal>, <&clkc CLKID_CLK81>, <&clkc CLKID_CLK81>; 788 clock-names = "xtal", "pclk", "baud"; 789}; 790 791&uart_A { 792 compatible = "amlogic,meson8-uart"; 793 clocks = <&xtal>, <&clkc CLKID_UART0>, <&clkc CLKID_CLK81>; 794 clock-names = "xtal", "pclk", "baud"; 795}; 796 797&uart_B { 798 compatible = "amlogic,meson8-uart"; 799 clocks = <&xtal>, <&clkc CLKID_UART1>, <&clkc CLKID_CLK81>; 800 clock-names = "xtal", "pclk", "baud"; 801}; 802 803&uart_C { 804 compatible = "amlogic,meson8-uart"; 805 clocks = <&xtal>, <&clkc CLKID_UART2>, <&clkc CLKID_CLK81>; 806 clock-names = "xtal", "pclk", "baud"; 807}; 808 809&usb0 { 810 compatible = "amlogic,meson8-usb", "snps,dwc2"; 811 clocks = <&clkc CLKID_USB0_DDR_BRIDGE>; 812 clock-names = "otg"; 813}; 814 815&usb1 { 816 compatible = "amlogic,meson8-usb", "snps,dwc2"; 817 clocks = <&clkc CLKID_USB1_DDR_BRIDGE>; 818 clock-names = "otg"; 819}; 820 821&usb0_phy { 822 compatible = "amlogic,meson8-usb2-phy", "amlogic,meson-mx-usb2-phy"; 823 clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB0>; 824 clock-names = "usb_general", "usb"; 825 resets = <&reset RESET_USB_OTG>; 826}; 827 828&usb1_phy { 829 compatible = "amlogic,meson8-usb2-phy", "amlogic,meson-mx-usb2-phy"; 830 clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB1>; 831 clock-names = "usb_general", "usb"; 832 resets = <&reset RESET_USB_OTG>; 833}; 834