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