1724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0 OR MIT 2724ba675SRob Herring/* 3724ba675SRob Herring * Copyright 2014 Carlo Caione <carlo@caione.org> 4724ba675SRob Herring */ 5724ba675SRob Herring 6724ba675SRob Herring#include <dt-bindings/clock/meson8-ddr-clkc.h> 7724ba675SRob Herring#include <dt-bindings/clock/meson8b-clkc.h> 8724ba675SRob Herring#include <dt-bindings/gpio/meson8-gpio.h> 9724ba675SRob Herring#include <dt-bindings/power/meson8-power.h> 10724ba675SRob Herring#include <dt-bindings/reset/amlogic,meson8b-clkc-reset.h> 11724ba675SRob Herring#include <dt-bindings/reset/amlogic,meson8b-reset.h> 12724ba675SRob Herring#include <dt-bindings/thermal/thermal.h> 13724ba675SRob Herring#include "meson.dtsi" 14724ba675SRob Herring 15724ba675SRob Herring/ { 16724ba675SRob Herring model = "Amlogic Meson8 SoC"; 17724ba675SRob Herring compatible = "amlogic,meson8"; 18724ba675SRob Herring 19724ba675SRob Herring cpus { 20724ba675SRob Herring #address-cells = <1>; 21724ba675SRob Herring #size-cells = <0>; 22724ba675SRob Herring 23724ba675SRob Herring cpu0: cpu@200 { 24724ba675SRob Herring device_type = "cpu"; 25724ba675SRob Herring compatible = "arm,cortex-a9"; 26724ba675SRob Herring next-level-cache = <&L2>; 27724ba675SRob Herring reg = <0x200>; 28724ba675SRob Herring enable-method = "amlogic,meson8-smp"; 29724ba675SRob Herring resets = <&clkc CLKC_RESET_CPU0_SOFT_RESET>; 30724ba675SRob Herring operating-points-v2 = <&cpu_opp_table>; 31724ba675SRob Herring clocks = <&clkc CLKID_CPUCLK>; 32724ba675SRob Herring #cooling-cells = <2>; /* min followed by max */ 33724ba675SRob Herring }; 34724ba675SRob Herring 35724ba675SRob Herring cpu1: cpu@201 { 36724ba675SRob Herring device_type = "cpu"; 37724ba675SRob Herring compatible = "arm,cortex-a9"; 38724ba675SRob Herring next-level-cache = <&L2>; 39724ba675SRob Herring reg = <0x201>; 40724ba675SRob Herring enable-method = "amlogic,meson8-smp"; 41724ba675SRob Herring resets = <&clkc CLKC_RESET_CPU1_SOFT_RESET>; 42724ba675SRob Herring operating-points-v2 = <&cpu_opp_table>; 43724ba675SRob Herring clocks = <&clkc CLKID_CPUCLK>; 44724ba675SRob Herring #cooling-cells = <2>; /* min followed by max */ 45724ba675SRob Herring }; 46724ba675SRob Herring 47724ba675SRob Herring cpu2: cpu@202 { 48724ba675SRob Herring device_type = "cpu"; 49724ba675SRob Herring compatible = "arm,cortex-a9"; 50724ba675SRob Herring next-level-cache = <&L2>; 51724ba675SRob Herring reg = <0x202>; 52724ba675SRob Herring enable-method = "amlogic,meson8-smp"; 53724ba675SRob Herring resets = <&clkc CLKC_RESET_CPU2_SOFT_RESET>; 54724ba675SRob Herring operating-points-v2 = <&cpu_opp_table>; 55724ba675SRob Herring clocks = <&clkc CLKID_CPUCLK>; 56724ba675SRob Herring #cooling-cells = <2>; /* min followed by max */ 57724ba675SRob Herring }; 58724ba675SRob Herring 59724ba675SRob Herring cpu3: cpu@203 { 60724ba675SRob Herring device_type = "cpu"; 61724ba675SRob Herring compatible = "arm,cortex-a9"; 62724ba675SRob Herring next-level-cache = <&L2>; 63724ba675SRob Herring reg = <0x203>; 64724ba675SRob Herring enable-method = "amlogic,meson8-smp"; 65724ba675SRob Herring resets = <&clkc CLKC_RESET_CPU3_SOFT_RESET>; 66724ba675SRob Herring operating-points-v2 = <&cpu_opp_table>; 67724ba675SRob Herring clocks = <&clkc CLKID_CPUCLK>; 68724ba675SRob Herring #cooling-cells = <2>; /* min followed by max */ 69724ba675SRob Herring }; 70724ba675SRob Herring }; 71724ba675SRob Herring 72724ba675SRob Herring cpu_opp_table: opp-table { 73724ba675SRob Herring compatible = "operating-points-v2"; 74724ba675SRob Herring opp-shared; 75724ba675SRob Herring 76724ba675SRob Herring opp-96000000 { 77724ba675SRob Herring opp-hz = /bits/ 64 <96000000>; 78724ba675SRob Herring opp-microvolt = <825000>; 79724ba675SRob Herring }; 80724ba675SRob Herring opp-192000000 { 81724ba675SRob Herring opp-hz = /bits/ 64 <192000000>; 82724ba675SRob Herring opp-microvolt = <825000>; 83724ba675SRob Herring }; 84724ba675SRob Herring opp-312000000 { 85724ba675SRob Herring opp-hz = /bits/ 64 <312000000>; 86724ba675SRob Herring opp-microvolt = <825000>; 87724ba675SRob Herring }; 88724ba675SRob Herring opp-408000000 { 89724ba675SRob Herring opp-hz = /bits/ 64 <408000000>; 90724ba675SRob Herring opp-microvolt = <825000>; 91724ba675SRob Herring }; 92724ba675SRob Herring opp-504000000 { 93724ba675SRob Herring opp-hz = /bits/ 64 <504000000>; 94724ba675SRob Herring opp-microvolt = <825000>; 95724ba675SRob Herring }; 96724ba675SRob Herring opp-600000000 { 97724ba675SRob Herring opp-hz = /bits/ 64 <600000000>; 98724ba675SRob Herring opp-microvolt = <850000>; 99724ba675SRob Herring }; 100724ba675SRob Herring opp-720000000 { 101724ba675SRob Herring opp-hz = /bits/ 64 <720000000>; 102724ba675SRob Herring opp-microvolt = <850000>; 103724ba675SRob Herring }; 104724ba675SRob Herring opp-816000000 { 105724ba675SRob Herring opp-hz = /bits/ 64 <816000000>; 106724ba675SRob Herring opp-microvolt = <875000>; 107724ba675SRob Herring }; 108724ba675SRob Herring opp-1008000000 { 109724ba675SRob Herring opp-hz = /bits/ 64 <1008000000>; 110724ba675SRob Herring opp-microvolt = <925000>; 111724ba675SRob Herring }; 112724ba675SRob Herring opp-1200000000 { 113724ba675SRob Herring opp-hz = /bits/ 64 <1200000000>; 114724ba675SRob Herring opp-microvolt = <975000>; 115724ba675SRob Herring }; 116724ba675SRob Herring opp-1416000000 { 117724ba675SRob Herring opp-hz = /bits/ 64 <1416000000>; 118724ba675SRob Herring opp-microvolt = <1025000>; 119724ba675SRob Herring }; 120724ba675SRob Herring opp-1608000000 { 121724ba675SRob Herring opp-hz = /bits/ 64 <1608000000>; 122724ba675SRob Herring opp-microvolt = <1100000>; 123724ba675SRob Herring }; 124724ba675SRob Herring opp-1800000000 { 125724ba675SRob Herring status = "disabled"; 126724ba675SRob Herring opp-hz = /bits/ 64 <1800000000>; 127724ba675SRob Herring opp-microvolt = <1125000>; 128724ba675SRob Herring }; 129724ba675SRob Herring opp-1992000000 { 130724ba675SRob Herring status = "disabled"; 131724ba675SRob Herring opp-hz = /bits/ 64 <1992000000>; 132724ba675SRob Herring opp-microvolt = <1150000>; 133724ba675SRob Herring }; 134724ba675SRob Herring }; 135724ba675SRob Herring 136724ba675SRob Herring gpu_opp_table: opp-table-gpu { 137724ba675SRob Herring compatible = "operating-points-v2"; 138724ba675SRob Herring 139724ba675SRob Herring opp-182142857 { 140724ba675SRob Herring opp-hz = /bits/ 64 <182142857>; 141724ba675SRob Herring opp-microvolt = <1150000>; 142724ba675SRob Herring }; 143724ba675SRob Herring opp-318750000 { 144724ba675SRob Herring opp-hz = /bits/ 64 <318750000>; 145724ba675SRob Herring opp-microvolt = <1150000>; 146724ba675SRob Herring }; 147724ba675SRob Herring opp-425000000 { 148724ba675SRob Herring opp-hz = /bits/ 64 <425000000>; 149724ba675SRob Herring opp-microvolt = <1150000>; 150724ba675SRob Herring }; 151724ba675SRob Herring opp-510000000 { 152724ba675SRob Herring opp-hz = /bits/ 64 <510000000>; 153724ba675SRob Herring opp-microvolt = <1150000>; 154724ba675SRob Herring }; 155724ba675SRob Herring opp-637500000 { 156724ba675SRob Herring opp-hz = /bits/ 64 <637500000>; 157724ba675SRob Herring opp-microvolt = <1150000>; 158724ba675SRob Herring turbo-mode; 159724ba675SRob Herring }; 160724ba675SRob Herring }; 161724ba675SRob Herring 162724ba675SRob Herring pmu { 163724ba675SRob Herring compatible = "arm,cortex-a9-pmu"; 164724ba675SRob Herring interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>, 165724ba675SRob Herring <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>, 166724ba675SRob Herring <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>, 167724ba675SRob Herring <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>; 168724ba675SRob Herring interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; 169724ba675SRob Herring }; 170724ba675SRob Herring 171724ba675SRob Herring reserved-memory { 172724ba675SRob Herring #address-cells = <1>; 173724ba675SRob Herring #size-cells = <1>; 174724ba675SRob Herring ranges; 175724ba675SRob Herring 176724ba675SRob Herring /* 2 MiB reserved for Hardware ROM Firmware? */ 177724ba675SRob Herring hwrom@0 { 178724ba675SRob Herring reg = <0x0 0x200000>; 179724ba675SRob Herring no-map; 180724ba675SRob Herring }; 181724ba675SRob Herring 182724ba675SRob Herring /* 183724ba675SRob Herring * 1 MiB reserved for the "ARM Power Firmware": this is ARM 184724ba675SRob Herring * code which is responsible for system suspend. It loads a 185724ba675SRob Herring * piece of ARC code ("arc_power" in the vendor u-boot tree) 186724ba675SRob Herring * into SRAM, executes that and shuts down the (last) ARM core. 187724ba675SRob Herring * The arc_power firmware then checks various wakeup sources 188724ba675SRob Herring * (IR remote receiver, HDMI CEC, WIFI and Bluetooth wakeup or 189724ba675SRob Herring * simply the power key) and re-starts the ARM core once it 190724ba675SRob Herring * detects a wakeup request. 191724ba675SRob Herring */ 192724ba675SRob Herring power-firmware@4f00000 { 193724ba675SRob Herring reg = <0x4f00000 0x100000>; 194724ba675SRob Herring no-map; 195724ba675SRob Herring }; 196724ba675SRob Herring }; 197724ba675SRob Herring 198724ba675SRob Herring thermal-zones { 199*285d2d64SNeil Armstrong soc-thermal { 200724ba675SRob Herring polling-delay-passive = <250>; /* milliseconds */ 201724ba675SRob Herring polling-delay = <1000>; /* milliseconds */ 202724ba675SRob Herring thermal-sensors = <&thermal_sensor>; 203724ba675SRob Herring 204724ba675SRob Herring cooling-maps { 205724ba675SRob Herring map0 { 206724ba675SRob Herring trip = <&soc_passive>; 207724ba675SRob Herring cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 208724ba675SRob Herring <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 209724ba675SRob Herring <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 210724ba675SRob Herring <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 211724ba675SRob Herring <&mali THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 212724ba675SRob Herring }; 213724ba675SRob Herring 214724ba675SRob Herring map1 { 215724ba675SRob Herring trip = <&soc_hot>; 216724ba675SRob Herring cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 217724ba675SRob Herring <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 218724ba675SRob Herring <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 219724ba675SRob Herring <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 220724ba675SRob Herring <&mali THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 221724ba675SRob Herring }; 222724ba675SRob Herring }; 223724ba675SRob Herring 224724ba675SRob Herring trips { 225724ba675SRob Herring soc_passive: soc-passive { 226724ba675SRob Herring temperature = <80000>; /* millicelsius */ 227724ba675SRob Herring hysteresis = <2000>; /* millicelsius */ 228724ba675SRob Herring type = "passive"; 229724ba675SRob Herring }; 230724ba675SRob Herring 231724ba675SRob Herring soc_hot: soc-hot { 232724ba675SRob Herring temperature = <90000>; /* millicelsius */ 233724ba675SRob Herring hysteresis = <2000>; /* millicelsius */ 234724ba675SRob Herring type = "hot"; 235724ba675SRob Herring }; 236724ba675SRob Herring 237724ba675SRob Herring soc_critical: soc-critical { 238724ba675SRob Herring temperature = <110000>; /* millicelsius */ 239724ba675SRob Herring hysteresis = <2000>; /* millicelsius */ 240724ba675SRob Herring type = "critical"; 241724ba675SRob Herring }; 242724ba675SRob Herring }; 243724ba675SRob Herring }; 244724ba675SRob Herring }; 245724ba675SRob Herring 246724ba675SRob Herring mmcbus: bus@c8000000 { 247724ba675SRob Herring compatible = "simple-bus"; 248724ba675SRob Herring reg = <0xc8000000 0x8000>; 249724ba675SRob Herring #address-cells = <1>; 250724ba675SRob Herring #size-cells = <1>; 251724ba675SRob Herring ranges = <0x0 0xc8000000 0x8000>; 252724ba675SRob Herring 253724ba675SRob Herring ddr_clkc: clock-controller@400 { 254724ba675SRob Herring compatible = "amlogic,meson8-ddr-clkc"; 255724ba675SRob Herring reg = <0x400 0x20>; 256724ba675SRob Herring clocks = <&xtal>; 257724ba675SRob Herring clock-names = "xtal"; 258724ba675SRob Herring #clock-cells = <1>; 259724ba675SRob Herring }; 260724ba675SRob Herring 261724ba675SRob Herring dmcbus: bus@6000 { 262724ba675SRob Herring compatible = "simple-bus"; 263724ba675SRob Herring reg = <0x6000 0x400>; 264724ba675SRob Herring #address-cells = <1>; 265724ba675SRob Herring #size-cells = <1>; 266724ba675SRob Herring ranges = <0x0 0x6000 0x400>; 267724ba675SRob Herring 268724ba675SRob Herring canvas: video-lut@20 { 269724ba675SRob Herring compatible = "amlogic,meson8-canvas", 270724ba675SRob Herring "amlogic,canvas"; 271724ba675SRob Herring reg = <0x20 0x14>; 272724ba675SRob Herring }; 273724ba675SRob Herring }; 274724ba675SRob Herring }; 275724ba675SRob Herring 276724ba675SRob Herring apb: bus@d0000000 { 277724ba675SRob Herring compatible = "simple-bus"; 278724ba675SRob Herring reg = <0xd0000000 0x200000>; 279724ba675SRob Herring #address-cells = <1>; 280724ba675SRob Herring #size-cells = <1>; 281724ba675SRob Herring ranges = <0x0 0xd0000000 0x200000>; 282724ba675SRob Herring 283724ba675SRob Herring mali: gpu@c0000 { 284724ba675SRob Herring compatible = "amlogic,meson8-mali", "arm,mali-450"; 285724ba675SRob Herring reg = <0xc0000 0x40000>; 286724ba675SRob Herring interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, 287724ba675SRob Herring <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>, 288724ba675SRob Herring <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>, 289724ba675SRob Herring <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>, 290724ba675SRob Herring <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>, 291724ba675SRob Herring <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>, 292724ba675SRob Herring <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>, 293724ba675SRob Herring <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>, 294724ba675SRob Herring <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>, 295724ba675SRob Herring <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>, 296724ba675SRob Herring <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>, 297724ba675SRob Herring <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>, 298724ba675SRob Herring <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>, 299724ba675SRob Herring <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>, 300724ba675SRob Herring <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>, 301724ba675SRob Herring <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>; 302724ba675SRob Herring interrupt-names = "gp", "gpmmu", "pp", "pmu", 303724ba675SRob Herring "pp0", "ppmmu0", "pp1", "ppmmu1", 304724ba675SRob Herring "pp2", "ppmmu2", "pp4", "ppmmu4", 305724ba675SRob Herring "pp5", "ppmmu5", "pp6", "ppmmu6"; 306724ba675SRob Herring resets = <&reset RESET_MALI>; 307724ba675SRob Herring 308724ba675SRob Herring clocks = <&clkc CLKID_CLK81>, <&clkc CLKID_MALI>; 309724ba675SRob Herring clock-names = "bus", "core"; 310724ba675SRob Herring 311724ba675SRob Herring assigned-clocks = <&clkc CLKID_MALI>; 312724ba675SRob Herring assigned-clock-rates = <318750000>; 313724ba675SRob Herring 314724ba675SRob Herring operating-points-v2 = <&gpu_opp_table>; 315724ba675SRob Herring #cooling-cells = <2>; /* min followed by max */ 316724ba675SRob Herring }; 317724ba675SRob Herring }; 318724ba675SRob Herring}; /* end of / */ 319724ba675SRob Herring 320724ba675SRob Herring&aiu { 321724ba675SRob Herring compatible = "amlogic,aiu-meson8", "amlogic,aiu"; 322724ba675SRob Herring clocks = <&clkc CLKID_AIU_GLUE>, 323724ba675SRob Herring <&clkc CLKID_I2S_OUT>, 324724ba675SRob Herring <&clkc CLKID_AOCLK_GATE>, 325724ba675SRob Herring <&clkc CLKID_CTS_AMCLK>, 326724ba675SRob Herring <&clkc CLKID_MIXER_IFACE>, 327724ba675SRob Herring <&clkc CLKID_IEC958>, 328724ba675SRob Herring <&clkc CLKID_IEC958_GATE>, 329724ba675SRob Herring <&clkc CLKID_CTS_MCLK_I958>, 330724ba675SRob Herring <&clkc CLKID_CTS_I958>; 331724ba675SRob Herring clock-names = "pclk", 332724ba675SRob Herring "i2s_pclk", 333724ba675SRob Herring "i2s_aoclk", 334724ba675SRob Herring "i2s_mclk", 335724ba675SRob Herring "i2s_mixer", 336724ba675SRob Herring "spdif_pclk", 337724ba675SRob Herring "spdif_aoclk", 338724ba675SRob Herring "spdif_mclk", 339724ba675SRob Herring "spdif_mclk_sel"; 340724ba675SRob Herring resets = <&reset RESET_AIU>; 341724ba675SRob Herring}; 342724ba675SRob Herring 343724ba675SRob Herring&aobus { 344724ba675SRob Herring pmu: pmu@e0 { 345724ba675SRob Herring compatible = "amlogic,meson8-pmu", "syscon"; 346724ba675SRob Herring reg = <0xe0 0x18>; 347724ba675SRob Herring }; 348724ba675SRob Herring 349724ba675SRob Herring pinctrl_aobus: pinctrl@84 { 350724ba675SRob Herring compatible = "amlogic,meson8-aobus-pinctrl"; 351724ba675SRob Herring reg = <0x84 0xc>; 352724ba675SRob Herring #address-cells = <1>; 353724ba675SRob Herring #size-cells = <1>; 354724ba675SRob Herring ranges; 355724ba675SRob Herring 356724ba675SRob Herring gpio_ao: ao-bank@14 { 357724ba675SRob Herring reg = <0x14 0x4>, 358724ba675SRob Herring <0x2c 0x4>, 359724ba675SRob Herring <0x24 0x8>; 360724ba675SRob Herring reg-names = "mux", "pull", "gpio"; 361724ba675SRob Herring gpio-controller; 362724ba675SRob Herring #gpio-cells = <2>; 363724ba675SRob Herring gpio-ranges = <&pinctrl_aobus 0 0 16>; 364724ba675SRob Herring }; 365724ba675SRob Herring 366724ba675SRob Herring i2s_am_clk_pins: i2s-am-clk-out { 367724ba675SRob Herring mux { 368724ba675SRob Herring groups = "i2s_am_clk_out_ao"; 369724ba675SRob Herring function = "i2s_ao"; 370724ba675SRob Herring bias-disable; 371724ba675SRob Herring }; 372724ba675SRob Herring }; 373724ba675SRob Herring 374724ba675SRob Herring i2s_out_ao_clk_pins: i2s-ao-clk-out { 375724ba675SRob Herring mux { 376724ba675SRob Herring groups = "i2s_ao_clk_out_ao"; 377724ba675SRob Herring function = "i2s_ao"; 378724ba675SRob Herring bias-disable; 379724ba675SRob Herring }; 380724ba675SRob Herring }; 381724ba675SRob Herring 382724ba675SRob Herring i2s_out_lr_clk_pins: i2s-lr-clk-out { 383724ba675SRob Herring mux { 384724ba675SRob Herring groups = "i2s_lr_clk_out_ao"; 385724ba675SRob Herring function = "i2s_ao"; 386724ba675SRob Herring bias-disable; 387724ba675SRob Herring }; 388724ba675SRob Herring }; 389724ba675SRob Herring 390724ba675SRob Herring i2s_out_ch01_ao_pins: i2s-out-ch01 { 391724ba675SRob Herring mux { 392724ba675SRob Herring groups = "i2s_out_ch01_ao"; 393724ba675SRob Herring function = "i2s_ao"; 394724ba675SRob Herring bias-disable; 395724ba675SRob Herring }; 396724ba675SRob Herring }; 397724ba675SRob Herring 398724ba675SRob Herring uart_ao_a_pins: uart_ao_a { 399724ba675SRob Herring mux { 400724ba675SRob Herring groups = "uart_tx_ao_a", "uart_rx_ao_a"; 401724ba675SRob Herring function = "uart_ao"; 402724ba675SRob Herring bias-disable; 403724ba675SRob Herring }; 404724ba675SRob Herring }; 405724ba675SRob Herring 406724ba675SRob Herring i2c_ao_pins: i2c_mst_ao { 407724ba675SRob Herring mux { 408724ba675SRob Herring groups = "i2c_mst_sck_ao", "i2c_mst_sda_ao"; 409724ba675SRob Herring function = "i2c_mst_ao"; 410724ba675SRob Herring bias-disable; 411724ba675SRob Herring }; 412724ba675SRob Herring }; 413724ba675SRob Herring 414724ba675SRob Herring ir_recv_pins: remote { 415724ba675SRob Herring mux { 416724ba675SRob Herring groups = "remote_input"; 417724ba675SRob Herring function = "remote"; 418724ba675SRob Herring bias-disable; 419724ba675SRob Herring }; 420724ba675SRob Herring }; 421724ba675SRob Herring 422724ba675SRob Herring pwm_f_ao_pins: pwm-f-ao { 423724ba675SRob Herring mux { 424724ba675SRob Herring groups = "pwm_f_ao"; 425724ba675SRob Herring function = "pwm_f_ao"; 426724ba675SRob Herring bias-disable; 427724ba675SRob Herring }; 428724ba675SRob Herring }; 429724ba675SRob Herring }; 430724ba675SRob Herring}; 431724ba675SRob Herring 432724ba675SRob Herring&ao_arc_rproc { 433724ba675SRob Herring compatible = "amlogic,meson8-ao-arc", "amlogic,meson-mx-ao-arc"; 434724ba675SRob Herring amlogic,secbus2 = <&secbus2>; 435724ba675SRob Herring sram = <&ao_arc_sram>; 436724ba675SRob Herring resets = <&reset RESET_MEDIA_CPU>; 437724ba675SRob Herring clocks = <&clkc CLKID_AO_MEDIA_CPU>; 438724ba675SRob Herring}; 439724ba675SRob Herring 440724ba675SRob Herring&cbus { 441724ba675SRob Herring reset: reset-controller@4404 { 442724ba675SRob Herring compatible = "amlogic,meson8b-reset"; 443724ba675SRob Herring reg = <0x4404 0x9c>; 444724ba675SRob Herring #reset-cells = <1>; 445724ba675SRob Herring }; 446724ba675SRob Herring 447724ba675SRob Herring analog_top: analog-top@81a8 { 448724ba675SRob Herring compatible = "amlogic,meson8-analog-top", "syscon"; 449724ba675SRob Herring reg = <0x81a8 0x14>; 450724ba675SRob Herring }; 451724ba675SRob Herring 452724ba675SRob Herring pwm_ef: pwm@86c0 { 453724ba675SRob Herring compatible = "amlogic,meson8-pwm", "amlogic,meson8b-pwm"; 454724ba675SRob Herring reg = <0x86c0 0x10>; 455724ba675SRob Herring #pwm-cells = <3>; 456724ba675SRob Herring status = "disabled"; 457724ba675SRob Herring }; 458724ba675SRob Herring 459724ba675SRob Herring clock-measure@8758 { 460724ba675SRob Herring compatible = "amlogic,meson8-clk-measure"; 461724ba675SRob Herring reg = <0x8758 0x1c>; 462724ba675SRob Herring }; 463724ba675SRob Herring 464724ba675SRob Herring pinctrl_cbus: pinctrl@9880 { 465724ba675SRob Herring compatible = "amlogic,meson8-cbus-pinctrl"; 466724ba675SRob Herring reg = <0x9880 0x10>; 467724ba675SRob Herring #address-cells = <1>; 468724ba675SRob Herring #size-cells = <1>; 469724ba675SRob Herring ranges; 470724ba675SRob Herring 471724ba675SRob Herring gpio: banks@80b0 { 472724ba675SRob Herring reg = <0x80b0 0x28>, 473724ba675SRob Herring <0x80e8 0x18>, 474724ba675SRob Herring <0x8120 0x18>, 475724ba675SRob Herring <0x8030 0x30>; 476724ba675SRob Herring reg-names = "mux", "pull", "pull-enable", "gpio"; 477724ba675SRob Herring gpio-controller; 478724ba675SRob Herring #gpio-cells = <2>; 479724ba675SRob Herring gpio-ranges = <&pinctrl_cbus 0 0 120>; 480724ba675SRob Herring }; 481724ba675SRob Herring 482724ba675SRob Herring sd_a_pins: sd-a { 483724ba675SRob Herring mux { 484724ba675SRob Herring groups = "sd_d0_a", "sd_d1_a", "sd_d2_a", 485724ba675SRob Herring "sd_d3_a", "sd_clk_a", "sd_cmd_a"; 486724ba675SRob Herring function = "sd_a"; 487724ba675SRob Herring bias-disable; 488724ba675SRob Herring }; 489724ba675SRob Herring }; 490724ba675SRob Herring 491724ba675SRob Herring sd_b_pins: sd-b { 492724ba675SRob Herring mux { 493724ba675SRob Herring groups = "sd_d0_b", "sd_d1_b", "sd_d2_b", 494724ba675SRob Herring "sd_d3_b", "sd_clk_b", "sd_cmd_b"; 495724ba675SRob Herring function = "sd_b"; 496724ba675SRob Herring bias-disable; 497724ba675SRob Herring }; 498724ba675SRob Herring }; 499724ba675SRob Herring 500724ba675SRob Herring sd_c_pins: sd-c { 501724ba675SRob Herring mux { 502724ba675SRob Herring groups = "sd_d0_c", "sd_d1_c", "sd_d2_c", 503724ba675SRob Herring "sd_d3_c", "sd_clk_c", "sd_cmd_c"; 504724ba675SRob Herring function = "sd_c"; 505724ba675SRob Herring bias-disable; 506724ba675SRob Herring }; 507724ba675SRob Herring }; 508724ba675SRob Herring 509724ba675SRob Herring sdxc_a_pins: sdxc-a { 510724ba675SRob Herring mux { 511724ba675SRob Herring groups = "sdxc_d0_a", "sdxc_d13_a", 512724ba675SRob Herring "sdxc_clk_a", "sdxc_cmd_a"; 513724ba675SRob Herring function = "sdxc_a"; 514724ba675SRob Herring bias-pull-up; 515724ba675SRob Herring }; 516724ba675SRob Herring }; 517724ba675SRob Herring 518724ba675SRob Herring sdxc_b_pins: sdxc-b { 519724ba675SRob Herring mux { 520724ba675SRob Herring groups = "sdxc_d0_b", "sdxc_d13_b", 521724ba675SRob Herring "sdxc_clk_b", "sdxc_cmd_b"; 522724ba675SRob Herring function = "sdxc_b"; 523724ba675SRob Herring bias-pull-up; 524724ba675SRob Herring }; 525724ba675SRob Herring }; 526724ba675SRob Herring 527724ba675SRob Herring spdif_out_pins: spdif-out { 528724ba675SRob Herring mux { 529724ba675SRob Herring groups = "spdif_out"; 530724ba675SRob Herring function = "spdif"; 531724ba675SRob Herring bias-disable; 532724ba675SRob Herring }; 533724ba675SRob Herring }; 534724ba675SRob Herring 535724ba675SRob Herring spi_nor_pins: nor { 536724ba675SRob Herring mux { 537724ba675SRob Herring groups = "nor_d", "nor_q", "nor_c", "nor_cs"; 538724ba675SRob Herring function = "nor"; 539724ba675SRob Herring bias-disable; 540724ba675SRob Herring }; 541724ba675SRob Herring }; 542724ba675SRob Herring 543724ba675SRob Herring eth_pins: ethernet { 544724ba675SRob Herring mux { 545724ba675SRob Herring groups = "eth_tx_clk_50m", "eth_tx_en", 546724ba675SRob Herring "eth_txd1", "eth_txd0", 547724ba675SRob Herring "eth_rx_clk_in", "eth_rx_dv", 548724ba675SRob Herring "eth_rxd1", "eth_rxd0", "eth_mdio", 549724ba675SRob Herring "eth_mdc"; 550724ba675SRob Herring function = "ethernet"; 551724ba675SRob Herring bias-disable; 552724ba675SRob Herring }; 553724ba675SRob Herring }; 554724ba675SRob Herring 555724ba675SRob Herring pwm_e_pins: pwm-e { 556724ba675SRob Herring mux { 557724ba675SRob Herring groups = "pwm_e"; 558724ba675SRob Herring function = "pwm_e"; 559724ba675SRob Herring bias-disable; 560724ba675SRob Herring }; 561724ba675SRob Herring }; 562724ba675SRob Herring 563724ba675SRob Herring uart_a1_pins: uart-a1 { 564724ba675SRob Herring mux { 565724ba675SRob Herring groups = "uart_tx_a1", 566724ba675SRob Herring "uart_rx_a1"; 567724ba675SRob Herring function = "uart_a"; 568724ba675SRob Herring bias-disable; 569724ba675SRob Herring }; 570724ba675SRob Herring }; 571724ba675SRob Herring 572724ba675SRob Herring uart_a1_cts_rts_pins: uart-a1-cts-rts { 573724ba675SRob Herring mux { 574724ba675SRob Herring groups = "uart_cts_a1", 575724ba675SRob Herring "uart_rts_a1"; 576724ba675SRob Herring function = "uart_a"; 577724ba675SRob Herring bias-disable; 578724ba675SRob Herring }; 579724ba675SRob Herring }; 580724ba675SRob Herring 581724ba675SRob Herring xtal_32k_out_pins: xtal-32k-out { 582724ba675SRob Herring mux { 583724ba675SRob Herring groups = "xtal_32k_out"; 584724ba675SRob Herring function = "xtal"; 585724ba675SRob Herring bias-disable; 586724ba675SRob Herring }; 587724ba675SRob Herring }; 588724ba675SRob Herring }; 589724ba675SRob Herring}; 590724ba675SRob Herring 591724ba675SRob Herring&ahb_sram { 592724ba675SRob Herring ao_arc_sram: ao-arc-sram@0 { 593724ba675SRob Herring compatible = "amlogic,meson8-ao-arc-sram"; 594724ba675SRob Herring reg = <0x0 0x8000>; 595724ba675SRob Herring pool; 596724ba675SRob Herring }; 597724ba675SRob Herring 598724ba675SRob Herring smp-sram@1ff80 { 599724ba675SRob Herring compatible = "amlogic,meson8-smp-sram"; 600724ba675SRob Herring reg = <0x1ff80 0x8>; 601724ba675SRob Herring }; 602724ba675SRob Herring}; 603724ba675SRob Herring 604724ba675SRob Herring&efuse { 605724ba675SRob Herring compatible = "amlogic,meson8-efuse"; 606724ba675SRob Herring clocks = <&clkc CLKID_EFUSE>; 607724ba675SRob Herring clock-names = "core"; 608724ba675SRob Herring 609724ba675SRob Herring temperature_calib: calib@1f4 { 610724ba675SRob Herring /* only the upper two bytes are relevant */ 611724ba675SRob Herring reg = <0x1f4 0x4>; 612724ba675SRob Herring }; 613724ba675SRob Herring}; 614724ba675SRob Herring 615724ba675SRob Herringðmac { 616724ba675SRob Herring clocks = <&clkc CLKID_ETH>; 617724ba675SRob Herring clock-names = "stmmaceth"; 618724ba675SRob Herring 619724ba675SRob Herring power-domains = <&pwrc PWRC_MESON8_ETHERNET_MEM_ID>; 620724ba675SRob Herring}; 621724ba675SRob Herring 622724ba675SRob Herring&gpio_intc { 623724ba675SRob Herring compatible = "amlogic,meson8-gpio-intc", "amlogic,meson-gpio-intc"; 624724ba675SRob Herring status = "okay"; 625724ba675SRob Herring}; 626724ba675SRob Herring 627724ba675SRob Herring&hhi { 628724ba675SRob Herring clkc: clock-controller { 629724ba675SRob Herring compatible = "amlogic,meson8-clkc"; 630724ba675SRob Herring clocks = <&xtal>, <&ddr_clkc DDR_CLKID_DDR_PLL>; 631724ba675SRob Herring clock-names = "xtal", "ddr_pll"; 632724ba675SRob Herring #clock-cells = <1>; 633724ba675SRob Herring #reset-cells = <1>; 634724ba675SRob Herring }; 635724ba675SRob Herring 636724ba675SRob Herring pwrc: power-controller { 637724ba675SRob Herring compatible = "amlogic,meson8-pwrc"; 638724ba675SRob Herring #power-domain-cells = <1>; 639724ba675SRob Herring amlogic,ao-sysctrl = <&pmu>; 640724ba675SRob Herring clocks = <&clkc CLKID_VPU>; 641724ba675SRob Herring clock-names = "vpu"; 642724ba675SRob Herring assigned-clocks = <&clkc CLKID_VPU>; 643724ba675SRob Herring assigned-clock-rates = <364285714>; 644724ba675SRob Herring }; 645724ba675SRob Herring}; 646724ba675SRob Herring 647724ba675SRob Herring&hwrng { 648724ba675SRob Herring clocks = <&clkc CLKID_RNG0>; 649724ba675SRob Herring clock-names = "core"; 650724ba675SRob Herring}; 651724ba675SRob Herring 652724ba675SRob Herring&i2c_AO { 653724ba675SRob Herring clocks = <&clkc CLKID_CLK81>; 654724ba675SRob Herring}; 655724ba675SRob Herring 656724ba675SRob Herring&i2c_A { 657724ba675SRob Herring clocks = <&clkc CLKID_CLK81>; 658724ba675SRob Herring}; 659724ba675SRob Herring 660724ba675SRob Herring&i2c_B { 661724ba675SRob Herring clocks = <&clkc CLKID_CLK81>; 662724ba675SRob Herring}; 663724ba675SRob Herring 664724ba675SRob Herring&L2 { 665724ba675SRob Herring arm,data-latency = <3 3 3>; 666724ba675SRob Herring arm,tag-latency = <2 2 2>; 667724ba675SRob Herring arm,filter-ranges = <0x100000 0xc0000000>; 668724ba675SRob Herring prefetch-data = <1>; 669724ba675SRob Herring prefetch-instr = <1>; 670724ba675SRob Herring arm,prefetch-offset = <7>; 671724ba675SRob Herring arm,double-linefill = <1>; 672724ba675SRob Herring arm,prefetch-drop = <1>; 673724ba675SRob Herring arm,shared-override; 674724ba675SRob Herring}; 675724ba675SRob Herring 676724ba675SRob Herring&periph { 677724ba675SRob Herring scu@0 { 678724ba675SRob Herring compatible = "arm,cortex-a9-scu"; 679724ba675SRob Herring reg = <0x0 0x100>; 680724ba675SRob Herring }; 681724ba675SRob Herring 682724ba675SRob Herring timer@200 { 683724ba675SRob Herring compatible = "arm,cortex-a9-global-timer"; 684724ba675SRob Herring reg = <0x200 0x20>; 685724ba675SRob Herring interrupts = <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>; 686724ba675SRob Herring clocks = <&clkc CLKID_PERIPH>; 687724ba675SRob Herring 688724ba675SRob Herring /* 689724ba675SRob Herring * the arm_global_timer driver currently does not handle clock 690724ba675SRob Herring * rate changes. Keep it disabled for now. 691724ba675SRob Herring */ 692724ba675SRob Herring status = "disabled"; 693724ba675SRob Herring }; 694724ba675SRob Herring 695724ba675SRob Herring timer@600 { 696724ba675SRob Herring compatible = "arm,cortex-a9-twd-timer"; 697724ba675SRob Herring reg = <0x600 0x20>; 698724ba675SRob Herring interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>; 699724ba675SRob Herring clocks = <&clkc CLKID_PERIPH>; 700724ba675SRob Herring }; 701724ba675SRob Herring}; 702724ba675SRob Herring 703724ba675SRob Herring&pwm_ab { 704724ba675SRob Herring compatible = "amlogic,meson8-pwm", "amlogic,meson8b-pwm"; 705724ba675SRob Herring}; 706724ba675SRob Herring 707724ba675SRob Herring&pwm_cd { 708724ba675SRob Herring compatible = "amlogic,meson8-pwm", "amlogic,meson8b-pwm"; 709724ba675SRob Herring}; 710724ba675SRob Herring 711724ba675SRob Herring&rtc { 712724ba675SRob Herring compatible = "amlogic,meson8-rtc"; 713724ba675SRob Herring resets = <&reset RESET_RTC>; 714724ba675SRob Herring}; 715724ba675SRob Herring 716724ba675SRob Herring&saradc { 717724ba675SRob Herring compatible = "amlogic,meson8-saradc", "amlogic,meson-saradc"; 718724ba675SRob Herring clocks = <&xtal>, <&clkc CLKID_SAR_ADC>; 719724ba675SRob Herring clock-names = "clkin", "core"; 720724ba675SRob Herring amlogic,hhi-sysctrl = <&hhi>; 721724ba675SRob Herring nvmem-cells = <&temperature_calib>; 722724ba675SRob Herring nvmem-cell-names = "temperature_calib"; 723724ba675SRob Herring}; 724724ba675SRob Herring 725724ba675SRob Herring&sdhc { 726724ba675SRob Herring compatible = "amlogic,meson8-sdhc", "amlogic,meson-mx-sdhc"; 727724ba675SRob Herring clocks = <&xtal>, 728724ba675SRob Herring <&clkc CLKID_FCLK_DIV4>, 729724ba675SRob Herring <&clkc CLKID_FCLK_DIV3>, 730724ba675SRob Herring <&clkc CLKID_FCLK_DIV5>, 731724ba675SRob Herring <&clkc CLKID_SDHC>; 732724ba675SRob Herring clock-names = "clkin0", "clkin1", "clkin2", "clkin3", "pclk"; 733724ba675SRob Herring}; 734724ba675SRob Herring 735724ba675SRob Herring&secbus { 736724ba675SRob Herring secbus2: system-controller@4000 { 737724ba675SRob Herring compatible = "amlogic,meson8-secbus2", "syscon"; 738724ba675SRob Herring reg = <0x4000 0x2000>; 739724ba675SRob Herring }; 740724ba675SRob Herring}; 741724ba675SRob Herring 742724ba675SRob Herring&sdio { 743724ba675SRob Herring compatible = "amlogic,meson8-sdio", "amlogic,meson-mx-sdio"; 744724ba675SRob Herring clocks = <&clkc CLKID_SDIO>, <&clkc CLKID_CLK81>; 745724ba675SRob Herring clock-names = "core", "clkin"; 746724ba675SRob Herring}; 747724ba675SRob Herring 748724ba675SRob Herring&spifc { 749724ba675SRob Herring clocks = <&clkc CLKID_CLK81>; 750724ba675SRob Herring}; 751724ba675SRob Herring 752724ba675SRob Herring&timer_abcde { 753724ba675SRob Herring clocks = <&xtal>, <&clkc CLKID_CLK81>; 754724ba675SRob Herring clock-names = "xtal", "pclk"; 755724ba675SRob Herring}; 756724ba675SRob Herring 757724ba675SRob Herring&uart_AO { 758724ba675SRob Herring compatible = "amlogic,meson8-uart", "amlogic,meson-ao-uart"; 759724ba675SRob Herring clocks = <&xtal>, <&clkc CLKID_CLK81>, <&clkc CLKID_CLK81>; 760724ba675SRob Herring clock-names = "xtal", "pclk", "baud"; 761724ba675SRob Herring}; 762724ba675SRob Herring 763724ba675SRob Herring&uart_A { 764724ba675SRob Herring compatible = "amlogic,meson8-uart"; 765724ba675SRob Herring clocks = <&xtal>, <&clkc CLKID_UART0>, <&clkc CLKID_CLK81>; 766724ba675SRob Herring clock-names = "xtal", "pclk", "baud"; 767724ba675SRob Herring}; 768724ba675SRob Herring 769724ba675SRob Herring&uart_B { 770724ba675SRob Herring compatible = "amlogic,meson8-uart"; 771724ba675SRob Herring clocks = <&xtal>, <&clkc CLKID_UART1>, <&clkc CLKID_CLK81>; 772724ba675SRob Herring clock-names = "xtal", "pclk", "baud"; 773724ba675SRob Herring}; 774724ba675SRob Herring 775724ba675SRob Herring&uart_C { 776724ba675SRob Herring compatible = "amlogic,meson8-uart"; 777724ba675SRob Herring clocks = <&xtal>, <&clkc CLKID_UART2>, <&clkc CLKID_CLK81>; 778724ba675SRob Herring clock-names = "xtal", "pclk", "baud"; 779724ba675SRob Herring}; 780724ba675SRob Herring 781724ba675SRob Herring&usb0 { 782724ba675SRob Herring compatible = "amlogic,meson8-usb", "snps,dwc2"; 783724ba675SRob Herring clocks = <&clkc CLKID_USB0_DDR_BRIDGE>; 784724ba675SRob Herring clock-names = "otg"; 785724ba675SRob Herring}; 786724ba675SRob Herring 787724ba675SRob Herring&usb1 { 788724ba675SRob Herring compatible = "amlogic,meson8-usb", "snps,dwc2"; 789724ba675SRob Herring clocks = <&clkc CLKID_USB1_DDR_BRIDGE>; 790724ba675SRob Herring clock-names = "otg"; 791724ba675SRob Herring}; 792724ba675SRob Herring 793724ba675SRob Herring&usb0_phy { 794724ba675SRob Herring compatible = "amlogic,meson8-usb2-phy", "amlogic,meson-mx-usb2-phy"; 795724ba675SRob Herring clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB0>; 796724ba675SRob Herring clock-names = "usb_general", "usb"; 797724ba675SRob Herring resets = <&reset RESET_USB_OTG>; 798724ba675SRob Herring}; 799724ba675SRob Herring 800724ba675SRob Herring&usb1_phy { 801724ba675SRob Herring compatible = "amlogic,meson8-usb2-phy", "amlogic,meson-mx-usb2-phy"; 802724ba675SRob Herring clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB1>; 803724ba675SRob Herring clock-names = "usb_general", "usb"; 804724ba675SRob Herring resets = <&reset RESET_USB_OTG>; 805724ba675SRob Herring}; 806