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 { 199285d2d64SNeil 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 349*2b901e9eSNeil Armstrong pinctrl_aobus: pinctrl@14 { 350724ba675SRob Herring compatible = "amlogic,meson8-aobus-pinctrl"; 351724ba675SRob Herring #address-cells = <1>; 352724ba675SRob Herring #size-cells = <1>; 353*2b901e9eSNeil Armstrong ranges = <0x0 0x14 0x1c>; 354724ba675SRob Herring 355*2b901e9eSNeil Armstrong gpio_ao: bank@0 { 356*2b901e9eSNeil Armstrong reg = <0x0 0x4>, 357*2b901e9eSNeil Armstrong <0x18 0x4>, 358*2b901e9eSNeil Armstrong <0x10 0x8>; 359724ba675SRob Herring reg-names = "mux", "pull", "gpio"; 360724ba675SRob Herring gpio-controller; 361724ba675SRob Herring #gpio-cells = <2>; 362724ba675SRob Herring gpio-ranges = <&pinctrl_aobus 0 0 16>; 363724ba675SRob Herring }; 364724ba675SRob Herring 365724ba675SRob Herring i2s_am_clk_pins: i2s-am-clk-out { 366724ba675SRob Herring mux { 367724ba675SRob Herring groups = "i2s_am_clk_out_ao"; 368724ba675SRob Herring function = "i2s_ao"; 369724ba675SRob Herring bias-disable; 370724ba675SRob Herring }; 371724ba675SRob Herring }; 372724ba675SRob Herring 373724ba675SRob Herring i2s_out_ao_clk_pins: i2s-ao-clk-out { 374724ba675SRob Herring mux { 375724ba675SRob Herring groups = "i2s_ao_clk_out_ao"; 376724ba675SRob Herring function = "i2s_ao"; 377724ba675SRob Herring bias-disable; 378724ba675SRob Herring }; 379724ba675SRob Herring }; 380724ba675SRob Herring 381724ba675SRob Herring i2s_out_lr_clk_pins: i2s-lr-clk-out { 382724ba675SRob Herring mux { 383724ba675SRob Herring groups = "i2s_lr_clk_out_ao"; 384724ba675SRob Herring function = "i2s_ao"; 385724ba675SRob Herring bias-disable; 386724ba675SRob Herring }; 387724ba675SRob Herring }; 388724ba675SRob Herring 389724ba675SRob Herring i2s_out_ch01_ao_pins: i2s-out-ch01 { 390724ba675SRob Herring mux { 391724ba675SRob Herring groups = "i2s_out_ch01_ao"; 392724ba675SRob Herring function = "i2s_ao"; 393724ba675SRob Herring bias-disable; 394724ba675SRob Herring }; 395724ba675SRob Herring }; 396724ba675SRob Herring 397724ba675SRob Herring uart_ao_a_pins: uart_ao_a { 398724ba675SRob Herring mux { 399724ba675SRob Herring groups = "uart_tx_ao_a", "uart_rx_ao_a"; 400724ba675SRob Herring function = "uart_ao"; 401724ba675SRob Herring bias-disable; 402724ba675SRob Herring }; 403724ba675SRob Herring }; 404724ba675SRob Herring 405724ba675SRob Herring i2c_ao_pins: i2c_mst_ao { 406724ba675SRob Herring mux { 407724ba675SRob Herring groups = "i2c_mst_sck_ao", "i2c_mst_sda_ao"; 408724ba675SRob Herring function = "i2c_mst_ao"; 409724ba675SRob Herring bias-disable; 410724ba675SRob Herring }; 411724ba675SRob Herring }; 412724ba675SRob Herring 413724ba675SRob Herring ir_recv_pins: remote { 414724ba675SRob Herring mux { 415724ba675SRob Herring groups = "remote_input"; 416724ba675SRob Herring function = "remote"; 417724ba675SRob Herring bias-disable; 418724ba675SRob Herring }; 419724ba675SRob Herring }; 420724ba675SRob Herring 421724ba675SRob Herring pwm_f_ao_pins: pwm-f-ao { 422724ba675SRob Herring mux { 423724ba675SRob Herring groups = "pwm_f_ao"; 424724ba675SRob Herring function = "pwm_f_ao"; 425724ba675SRob Herring bias-disable; 426724ba675SRob Herring }; 427724ba675SRob Herring }; 428724ba675SRob Herring }; 429724ba675SRob Herring}; 430724ba675SRob Herring 431724ba675SRob Herring&ao_arc_rproc { 432724ba675SRob Herring compatible = "amlogic,meson8-ao-arc", "amlogic,meson-mx-ao-arc"; 433724ba675SRob Herring amlogic,secbus2 = <&secbus2>; 434724ba675SRob Herring sram = <&ao_arc_sram>; 435724ba675SRob Herring resets = <&reset RESET_MEDIA_CPU>; 436724ba675SRob Herring clocks = <&clkc CLKID_AO_MEDIA_CPU>; 437724ba675SRob Herring}; 438724ba675SRob Herring 439724ba675SRob Herring&cbus { 440724ba675SRob Herring reset: reset-controller@4404 { 441724ba675SRob Herring compatible = "amlogic,meson8b-reset"; 442724ba675SRob Herring reg = <0x4404 0x9c>; 443724ba675SRob Herring #reset-cells = <1>; 444724ba675SRob Herring }; 445724ba675SRob Herring 446724ba675SRob Herring analog_top: analog-top@81a8 { 447724ba675SRob Herring compatible = "amlogic,meson8-analog-top", "syscon"; 448724ba675SRob Herring reg = <0x81a8 0x14>; 449724ba675SRob Herring }; 450724ba675SRob Herring 451724ba675SRob Herring pwm_ef: pwm@86c0 { 452724ba675SRob Herring compatible = "amlogic,meson8-pwm", "amlogic,meson8b-pwm"; 453724ba675SRob Herring reg = <0x86c0 0x10>; 454724ba675SRob Herring #pwm-cells = <3>; 455724ba675SRob Herring status = "disabled"; 456724ba675SRob Herring }; 457724ba675SRob Herring 458724ba675SRob Herring clock-measure@8758 { 459724ba675SRob Herring compatible = "amlogic,meson8-clk-measure"; 460724ba675SRob Herring reg = <0x8758 0x1c>; 461724ba675SRob Herring }; 462724ba675SRob Herring 463*2b901e9eSNeil Armstrong pinctrl_cbus: pinctrl@8030 { 464724ba675SRob Herring compatible = "amlogic,meson8-cbus-pinctrl"; 465724ba675SRob Herring #address-cells = <1>; 466724ba675SRob Herring #size-cells = <1>; 467*2b901e9eSNeil Armstrong ranges = <0x0 0x8030 0x108>; 468724ba675SRob Herring 469*2b901e9eSNeil Armstrong gpio: bank@80 { 470*2b901e9eSNeil Armstrong reg = <0x80 0x28>, 471*2b901e9eSNeil Armstrong <0xb8 0x18>, 472*2b901e9eSNeil Armstrong <0xf0 0x18>, 473*2b901e9eSNeil Armstrong <0x00 0x30>; 474724ba675SRob Herring reg-names = "mux", "pull", "pull-enable", "gpio"; 475724ba675SRob Herring gpio-controller; 476724ba675SRob Herring #gpio-cells = <2>; 477724ba675SRob Herring gpio-ranges = <&pinctrl_cbus 0 0 120>; 478724ba675SRob Herring }; 479724ba675SRob Herring 480724ba675SRob Herring sd_a_pins: sd-a { 481724ba675SRob Herring mux { 482724ba675SRob Herring groups = "sd_d0_a", "sd_d1_a", "sd_d2_a", 483724ba675SRob Herring "sd_d3_a", "sd_clk_a", "sd_cmd_a"; 484724ba675SRob Herring function = "sd_a"; 485724ba675SRob Herring bias-disable; 486724ba675SRob Herring }; 487724ba675SRob Herring }; 488724ba675SRob Herring 489724ba675SRob Herring sd_b_pins: sd-b { 490724ba675SRob Herring mux { 491724ba675SRob Herring groups = "sd_d0_b", "sd_d1_b", "sd_d2_b", 492724ba675SRob Herring "sd_d3_b", "sd_clk_b", "sd_cmd_b"; 493724ba675SRob Herring function = "sd_b"; 494724ba675SRob Herring bias-disable; 495724ba675SRob Herring }; 496724ba675SRob Herring }; 497724ba675SRob Herring 498724ba675SRob Herring sd_c_pins: sd-c { 499724ba675SRob Herring mux { 500724ba675SRob Herring groups = "sd_d0_c", "sd_d1_c", "sd_d2_c", 501724ba675SRob Herring "sd_d3_c", "sd_clk_c", "sd_cmd_c"; 502724ba675SRob Herring function = "sd_c"; 503724ba675SRob Herring bias-disable; 504724ba675SRob Herring }; 505724ba675SRob Herring }; 506724ba675SRob Herring 507724ba675SRob Herring sdxc_a_pins: sdxc-a { 508724ba675SRob Herring mux { 509724ba675SRob Herring groups = "sdxc_d0_a", "sdxc_d13_a", 510724ba675SRob Herring "sdxc_clk_a", "sdxc_cmd_a"; 511724ba675SRob Herring function = "sdxc_a"; 512724ba675SRob Herring bias-pull-up; 513724ba675SRob Herring }; 514724ba675SRob Herring }; 515724ba675SRob Herring 516724ba675SRob Herring sdxc_b_pins: sdxc-b { 517724ba675SRob Herring mux { 518724ba675SRob Herring groups = "sdxc_d0_b", "sdxc_d13_b", 519724ba675SRob Herring "sdxc_clk_b", "sdxc_cmd_b"; 520724ba675SRob Herring function = "sdxc_b"; 521724ba675SRob Herring bias-pull-up; 522724ba675SRob Herring }; 523724ba675SRob Herring }; 524724ba675SRob Herring 525724ba675SRob Herring spdif_out_pins: spdif-out { 526724ba675SRob Herring mux { 527724ba675SRob Herring groups = "spdif_out"; 528724ba675SRob Herring function = "spdif"; 529724ba675SRob Herring bias-disable; 530724ba675SRob Herring }; 531724ba675SRob Herring }; 532724ba675SRob Herring 533724ba675SRob Herring spi_nor_pins: nor { 534724ba675SRob Herring mux { 535724ba675SRob Herring groups = "nor_d", "nor_q", "nor_c", "nor_cs"; 536724ba675SRob Herring function = "nor"; 537724ba675SRob Herring bias-disable; 538724ba675SRob Herring }; 539724ba675SRob Herring }; 540724ba675SRob Herring 541724ba675SRob Herring eth_pins: ethernet { 542724ba675SRob Herring mux { 543724ba675SRob Herring groups = "eth_tx_clk_50m", "eth_tx_en", 544724ba675SRob Herring "eth_txd1", "eth_txd0", 545724ba675SRob Herring "eth_rx_clk_in", "eth_rx_dv", 546724ba675SRob Herring "eth_rxd1", "eth_rxd0", "eth_mdio", 547724ba675SRob Herring "eth_mdc"; 548724ba675SRob Herring function = "ethernet"; 549724ba675SRob Herring bias-disable; 550724ba675SRob Herring }; 551724ba675SRob Herring }; 552724ba675SRob Herring 553724ba675SRob Herring pwm_e_pins: pwm-e { 554724ba675SRob Herring mux { 555724ba675SRob Herring groups = "pwm_e"; 556724ba675SRob Herring function = "pwm_e"; 557724ba675SRob Herring bias-disable; 558724ba675SRob Herring }; 559724ba675SRob Herring }; 560724ba675SRob Herring 561724ba675SRob Herring uart_a1_pins: uart-a1 { 562724ba675SRob Herring mux { 563724ba675SRob Herring groups = "uart_tx_a1", 564724ba675SRob Herring "uart_rx_a1"; 565724ba675SRob Herring function = "uart_a"; 566724ba675SRob Herring bias-disable; 567724ba675SRob Herring }; 568724ba675SRob Herring }; 569724ba675SRob Herring 570724ba675SRob Herring uart_a1_cts_rts_pins: uart-a1-cts-rts { 571724ba675SRob Herring mux { 572724ba675SRob Herring groups = "uart_cts_a1", 573724ba675SRob Herring "uart_rts_a1"; 574724ba675SRob Herring function = "uart_a"; 575724ba675SRob Herring bias-disable; 576724ba675SRob Herring }; 577724ba675SRob Herring }; 578724ba675SRob Herring 579724ba675SRob Herring xtal_32k_out_pins: xtal-32k-out { 580724ba675SRob Herring mux { 581724ba675SRob Herring groups = "xtal_32k_out"; 582724ba675SRob Herring function = "xtal"; 583724ba675SRob Herring bias-disable; 584724ba675SRob Herring }; 585724ba675SRob Herring }; 586724ba675SRob Herring }; 587724ba675SRob Herring}; 588724ba675SRob Herring 589724ba675SRob Herring&ahb_sram { 590e1d42e11SNeil Armstrong ao_arc_sram: aoarc-sram@0 { 591724ba675SRob Herring compatible = "amlogic,meson8-ao-arc-sram"; 592724ba675SRob Herring reg = <0x0 0x8000>; 593724ba675SRob Herring pool; 594724ba675SRob Herring }; 595724ba675SRob Herring 596724ba675SRob Herring smp-sram@1ff80 { 597724ba675SRob Herring compatible = "amlogic,meson8-smp-sram"; 598724ba675SRob Herring reg = <0x1ff80 0x8>; 599724ba675SRob Herring }; 600724ba675SRob Herring}; 601724ba675SRob Herring 602724ba675SRob Herring&efuse { 603724ba675SRob Herring compatible = "amlogic,meson8-efuse"; 604724ba675SRob Herring clocks = <&clkc CLKID_EFUSE>; 605724ba675SRob Herring clock-names = "core"; 606724ba675SRob Herring 607724ba675SRob Herring temperature_calib: calib@1f4 { 608724ba675SRob Herring /* only the upper two bytes are relevant */ 609724ba675SRob Herring reg = <0x1f4 0x4>; 610724ba675SRob Herring }; 611724ba675SRob Herring}; 612724ba675SRob Herring 613724ba675SRob Herringðmac { 614724ba675SRob Herring clocks = <&clkc CLKID_ETH>; 615724ba675SRob Herring clock-names = "stmmaceth"; 616724ba675SRob Herring 617724ba675SRob Herring power-domains = <&pwrc PWRC_MESON8_ETHERNET_MEM_ID>; 618724ba675SRob Herring}; 619724ba675SRob Herring 620724ba675SRob Herring&gpio_intc { 621724ba675SRob Herring compatible = "amlogic,meson8-gpio-intc", "amlogic,meson-gpio-intc"; 622724ba675SRob Herring status = "okay"; 623724ba675SRob Herring}; 624724ba675SRob Herring 625724ba675SRob Herring&hhi { 626724ba675SRob Herring clkc: clock-controller { 627724ba675SRob Herring compatible = "amlogic,meson8-clkc"; 628724ba675SRob Herring clocks = <&xtal>, <&ddr_clkc DDR_CLKID_DDR_PLL>; 629724ba675SRob Herring clock-names = "xtal", "ddr_pll"; 630724ba675SRob Herring #clock-cells = <1>; 631724ba675SRob Herring #reset-cells = <1>; 632724ba675SRob Herring }; 633724ba675SRob Herring 634724ba675SRob Herring pwrc: power-controller { 635724ba675SRob Herring compatible = "amlogic,meson8-pwrc"; 636724ba675SRob Herring #power-domain-cells = <1>; 637724ba675SRob Herring amlogic,ao-sysctrl = <&pmu>; 638724ba675SRob Herring clocks = <&clkc CLKID_VPU>; 639724ba675SRob Herring clock-names = "vpu"; 640724ba675SRob Herring assigned-clocks = <&clkc CLKID_VPU>; 641724ba675SRob Herring assigned-clock-rates = <364285714>; 642724ba675SRob Herring }; 643724ba675SRob Herring}; 644724ba675SRob Herring 645724ba675SRob Herring&hwrng { 646724ba675SRob Herring clocks = <&clkc CLKID_RNG0>; 647724ba675SRob Herring clock-names = "core"; 648724ba675SRob Herring}; 649724ba675SRob Herring 650724ba675SRob Herring&i2c_AO { 651724ba675SRob Herring clocks = <&clkc CLKID_CLK81>; 652724ba675SRob Herring}; 653724ba675SRob Herring 654724ba675SRob Herring&i2c_A { 655724ba675SRob Herring clocks = <&clkc CLKID_CLK81>; 656724ba675SRob Herring}; 657724ba675SRob Herring 658724ba675SRob Herring&i2c_B { 659724ba675SRob Herring clocks = <&clkc CLKID_CLK81>; 660724ba675SRob Herring}; 661724ba675SRob Herring 662724ba675SRob Herring&L2 { 663724ba675SRob Herring arm,data-latency = <3 3 3>; 664724ba675SRob Herring arm,tag-latency = <2 2 2>; 665724ba675SRob Herring arm,filter-ranges = <0x100000 0xc0000000>; 666724ba675SRob Herring prefetch-data = <1>; 667724ba675SRob Herring prefetch-instr = <1>; 668724ba675SRob Herring arm,prefetch-offset = <7>; 669724ba675SRob Herring arm,double-linefill = <1>; 670724ba675SRob Herring arm,prefetch-drop = <1>; 671724ba675SRob Herring arm,shared-override; 672724ba675SRob Herring}; 673724ba675SRob Herring 674724ba675SRob Herring&periph { 675724ba675SRob Herring scu@0 { 676724ba675SRob Herring compatible = "arm,cortex-a9-scu"; 677724ba675SRob Herring reg = <0x0 0x100>; 678724ba675SRob Herring }; 679724ba675SRob Herring 680724ba675SRob Herring timer@200 { 681724ba675SRob Herring compatible = "arm,cortex-a9-global-timer"; 682724ba675SRob Herring reg = <0x200 0x20>; 683724ba675SRob Herring interrupts = <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>; 684724ba675SRob Herring clocks = <&clkc CLKID_PERIPH>; 685724ba675SRob Herring 686724ba675SRob Herring /* 687724ba675SRob Herring * the arm_global_timer driver currently does not handle clock 688724ba675SRob Herring * rate changes. Keep it disabled for now. 689724ba675SRob Herring */ 690724ba675SRob Herring status = "disabled"; 691724ba675SRob Herring }; 692724ba675SRob Herring 693724ba675SRob Herring timer@600 { 694724ba675SRob Herring compatible = "arm,cortex-a9-twd-timer"; 695724ba675SRob Herring reg = <0x600 0x20>; 696724ba675SRob Herring interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>; 697724ba675SRob Herring clocks = <&clkc CLKID_PERIPH>; 698724ba675SRob Herring }; 699724ba675SRob Herring}; 700724ba675SRob Herring 701724ba675SRob Herring&pwm_ab { 702724ba675SRob Herring compatible = "amlogic,meson8-pwm", "amlogic,meson8b-pwm"; 703724ba675SRob Herring}; 704724ba675SRob Herring 705724ba675SRob Herring&pwm_cd { 706724ba675SRob Herring compatible = "amlogic,meson8-pwm", "amlogic,meson8b-pwm"; 707724ba675SRob Herring}; 708724ba675SRob Herring 709724ba675SRob Herring&rtc { 710724ba675SRob Herring compatible = "amlogic,meson8-rtc"; 711724ba675SRob Herring resets = <&reset RESET_RTC>; 712724ba675SRob Herring}; 713724ba675SRob Herring 714724ba675SRob Herring&saradc { 715724ba675SRob Herring compatible = "amlogic,meson8-saradc", "amlogic,meson-saradc"; 716724ba675SRob Herring clocks = <&xtal>, <&clkc CLKID_SAR_ADC>; 717724ba675SRob Herring clock-names = "clkin", "core"; 718724ba675SRob Herring amlogic,hhi-sysctrl = <&hhi>; 719724ba675SRob Herring nvmem-cells = <&temperature_calib>; 720724ba675SRob Herring nvmem-cell-names = "temperature_calib"; 721724ba675SRob Herring}; 722724ba675SRob Herring 723724ba675SRob Herring&sdhc { 724724ba675SRob Herring compatible = "amlogic,meson8-sdhc", "amlogic,meson-mx-sdhc"; 725724ba675SRob Herring clocks = <&xtal>, 726724ba675SRob Herring <&clkc CLKID_FCLK_DIV4>, 727724ba675SRob Herring <&clkc CLKID_FCLK_DIV3>, 728724ba675SRob Herring <&clkc CLKID_FCLK_DIV5>, 729724ba675SRob Herring <&clkc CLKID_SDHC>; 730724ba675SRob Herring clock-names = "clkin0", "clkin1", "clkin2", "clkin3", "pclk"; 731724ba675SRob Herring}; 732724ba675SRob Herring 733724ba675SRob Herring&secbus { 734724ba675SRob Herring secbus2: system-controller@4000 { 735724ba675SRob Herring compatible = "amlogic,meson8-secbus2", "syscon"; 736724ba675SRob Herring reg = <0x4000 0x2000>; 737724ba675SRob Herring }; 738724ba675SRob Herring}; 739724ba675SRob Herring 740724ba675SRob Herring&sdio { 741724ba675SRob Herring compatible = "amlogic,meson8-sdio", "amlogic,meson-mx-sdio"; 742724ba675SRob Herring clocks = <&clkc CLKID_SDIO>, <&clkc CLKID_CLK81>; 743724ba675SRob Herring clock-names = "core", "clkin"; 744724ba675SRob Herring}; 745724ba675SRob Herring 746724ba675SRob Herring&spifc { 747724ba675SRob Herring clocks = <&clkc CLKID_CLK81>; 748724ba675SRob Herring}; 749724ba675SRob Herring 750724ba675SRob Herring&timer_abcde { 751724ba675SRob Herring clocks = <&xtal>, <&clkc CLKID_CLK81>; 752724ba675SRob Herring clock-names = "xtal", "pclk"; 753724ba675SRob Herring}; 754724ba675SRob Herring 755724ba675SRob Herring&uart_AO { 756724ba675SRob Herring compatible = "amlogic,meson8-uart", "amlogic,meson-ao-uart"; 757724ba675SRob Herring clocks = <&xtal>, <&clkc CLKID_CLK81>, <&clkc CLKID_CLK81>; 758724ba675SRob Herring clock-names = "xtal", "pclk", "baud"; 759724ba675SRob Herring}; 760724ba675SRob Herring 761724ba675SRob Herring&uart_A { 762724ba675SRob Herring compatible = "amlogic,meson8-uart"; 763724ba675SRob Herring clocks = <&xtal>, <&clkc CLKID_UART0>, <&clkc CLKID_CLK81>; 764724ba675SRob Herring clock-names = "xtal", "pclk", "baud"; 765724ba675SRob Herring}; 766724ba675SRob Herring 767724ba675SRob Herring&uart_B { 768724ba675SRob Herring compatible = "amlogic,meson8-uart"; 769724ba675SRob Herring clocks = <&xtal>, <&clkc CLKID_UART1>, <&clkc CLKID_CLK81>; 770724ba675SRob Herring clock-names = "xtal", "pclk", "baud"; 771724ba675SRob Herring}; 772724ba675SRob Herring 773724ba675SRob Herring&uart_C { 774724ba675SRob Herring compatible = "amlogic,meson8-uart"; 775724ba675SRob Herring clocks = <&xtal>, <&clkc CLKID_UART2>, <&clkc CLKID_CLK81>; 776724ba675SRob Herring clock-names = "xtal", "pclk", "baud"; 777724ba675SRob Herring}; 778724ba675SRob Herring 779724ba675SRob Herring&usb0 { 780724ba675SRob Herring compatible = "amlogic,meson8-usb", "snps,dwc2"; 781724ba675SRob Herring clocks = <&clkc CLKID_USB0_DDR_BRIDGE>; 782724ba675SRob Herring clock-names = "otg"; 783724ba675SRob Herring}; 784724ba675SRob Herring 785724ba675SRob Herring&usb1 { 786724ba675SRob Herring compatible = "amlogic,meson8-usb", "snps,dwc2"; 787724ba675SRob Herring clocks = <&clkc CLKID_USB1_DDR_BRIDGE>; 788724ba675SRob Herring clock-names = "otg"; 789724ba675SRob Herring}; 790724ba675SRob Herring 791724ba675SRob Herring&usb0_phy { 792724ba675SRob Herring compatible = "amlogic,meson8-usb2-phy", "amlogic,meson-mx-usb2-phy"; 793724ba675SRob Herring clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB0>; 794724ba675SRob Herring clock-names = "usb_general", "usb"; 795724ba675SRob Herring resets = <&reset RESET_USB_OTG>; 796724ba675SRob Herring}; 797724ba675SRob Herring 798724ba675SRob Herring&usb1_phy { 799724ba675SRob Herring compatible = "amlogic,meson8-usb2-phy", "amlogic,meson-mx-usb2-phy"; 800724ba675SRob Herring clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB1>; 801724ba675SRob Herring clock-names = "usb_general", "usb"; 802724ba675SRob Herring resets = <&reset RESET_USB_OTG>; 803724ba675SRob Herring}; 804