1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0 OR MIT 2*4882a593Smuzhiyun/* 3*4882a593Smuzhiyun * Copyright 2015 Endless Mobile, Inc. 4*4882a593Smuzhiyun * Author: Carlo Caione <carlo@endlessm.com> 5*4882a593Smuzhiyun */ 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun#include <dt-bindings/clock/meson8-ddr-clkc.h> 8*4882a593Smuzhiyun#include <dt-bindings/clock/meson8b-clkc.h> 9*4882a593Smuzhiyun#include <dt-bindings/gpio/meson8b-gpio.h> 10*4882a593Smuzhiyun#include <dt-bindings/power/meson8-power.h> 11*4882a593Smuzhiyun#include <dt-bindings/reset/amlogic,meson8b-reset.h> 12*4882a593Smuzhiyun#include <dt-bindings/reset/amlogic,meson8b-clkc-reset.h> 13*4882a593Smuzhiyun#include "meson.dtsi" 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun/ { 16*4882a593Smuzhiyun cpus { 17*4882a593Smuzhiyun #address-cells = <1>; 18*4882a593Smuzhiyun #size-cells = <0>; 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun cpu0: cpu@200 { 21*4882a593Smuzhiyun device_type = "cpu"; 22*4882a593Smuzhiyun compatible = "arm,cortex-a5"; 23*4882a593Smuzhiyun next-level-cache = <&L2>; 24*4882a593Smuzhiyun reg = <0x200>; 25*4882a593Smuzhiyun enable-method = "amlogic,meson8b-smp"; 26*4882a593Smuzhiyun resets = <&clkc CLKC_RESET_CPU0_SOFT_RESET>; 27*4882a593Smuzhiyun operating-points-v2 = <&cpu_opp_table>; 28*4882a593Smuzhiyun clocks = <&clkc CLKID_CPUCLK>; 29*4882a593Smuzhiyun }; 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun cpu1: cpu@201 { 32*4882a593Smuzhiyun device_type = "cpu"; 33*4882a593Smuzhiyun compatible = "arm,cortex-a5"; 34*4882a593Smuzhiyun next-level-cache = <&L2>; 35*4882a593Smuzhiyun reg = <0x201>; 36*4882a593Smuzhiyun enable-method = "amlogic,meson8b-smp"; 37*4882a593Smuzhiyun resets = <&clkc CLKC_RESET_CPU1_SOFT_RESET>; 38*4882a593Smuzhiyun operating-points-v2 = <&cpu_opp_table>; 39*4882a593Smuzhiyun clocks = <&clkc CLKID_CPUCLK>; 40*4882a593Smuzhiyun }; 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun cpu2: cpu@202 { 43*4882a593Smuzhiyun device_type = "cpu"; 44*4882a593Smuzhiyun compatible = "arm,cortex-a5"; 45*4882a593Smuzhiyun next-level-cache = <&L2>; 46*4882a593Smuzhiyun reg = <0x202>; 47*4882a593Smuzhiyun enable-method = "amlogic,meson8b-smp"; 48*4882a593Smuzhiyun resets = <&clkc CLKC_RESET_CPU2_SOFT_RESET>; 49*4882a593Smuzhiyun operating-points-v2 = <&cpu_opp_table>; 50*4882a593Smuzhiyun clocks = <&clkc CLKID_CPUCLK>; 51*4882a593Smuzhiyun }; 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun cpu3: cpu@203 { 54*4882a593Smuzhiyun device_type = "cpu"; 55*4882a593Smuzhiyun compatible = "arm,cortex-a5"; 56*4882a593Smuzhiyun next-level-cache = <&L2>; 57*4882a593Smuzhiyun reg = <0x203>; 58*4882a593Smuzhiyun enable-method = "amlogic,meson8b-smp"; 59*4882a593Smuzhiyun resets = <&clkc CLKC_RESET_CPU3_SOFT_RESET>; 60*4882a593Smuzhiyun operating-points-v2 = <&cpu_opp_table>; 61*4882a593Smuzhiyun clocks = <&clkc CLKID_CPUCLK>; 62*4882a593Smuzhiyun }; 63*4882a593Smuzhiyun }; 64*4882a593Smuzhiyun 65*4882a593Smuzhiyun cpu_opp_table: opp-table { 66*4882a593Smuzhiyun compatible = "operating-points-v2"; 67*4882a593Smuzhiyun opp-shared; 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun opp-96000000 { 70*4882a593Smuzhiyun opp-hz = /bits/ 64 <96000000>; 71*4882a593Smuzhiyun opp-microvolt = <860000>; 72*4882a593Smuzhiyun }; 73*4882a593Smuzhiyun opp-192000000 { 74*4882a593Smuzhiyun opp-hz = /bits/ 64 <192000000>; 75*4882a593Smuzhiyun opp-microvolt = <860000>; 76*4882a593Smuzhiyun }; 77*4882a593Smuzhiyun opp-312000000 { 78*4882a593Smuzhiyun opp-hz = /bits/ 64 <312000000>; 79*4882a593Smuzhiyun opp-microvolt = <860000>; 80*4882a593Smuzhiyun }; 81*4882a593Smuzhiyun opp-408000000 { 82*4882a593Smuzhiyun opp-hz = /bits/ 64 <408000000>; 83*4882a593Smuzhiyun opp-microvolt = <860000>; 84*4882a593Smuzhiyun }; 85*4882a593Smuzhiyun opp-504000000 { 86*4882a593Smuzhiyun opp-hz = /bits/ 64 <504000000>; 87*4882a593Smuzhiyun opp-microvolt = <860000>; 88*4882a593Smuzhiyun }; 89*4882a593Smuzhiyun opp-600000000 { 90*4882a593Smuzhiyun opp-hz = /bits/ 64 <600000000>; 91*4882a593Smuzhiyun opp-microvolt = <860000>; 92*4882a593Smuzhiyun }; 93*4882a593Smuzhiyun opp-720000000 { 94*4882a593Smuzhiyun opp-hz = /bits/ 64 <720000000>; 95*4882a593Smuzhiyun opp-microvolt = <860000>; 96*4882a593Smuzhiyun }; 97*4882a593Smuzhiyun opp-816000000 { 98*4882a593Smuzhiyun opp-hz = /bits/ 64 <816000000>; 99*4882a593Smuzhiyun opp-microvolt = <900000>; 100*4882a593Smuzhiyun }; 101*4882a593Smuzhiyun opp-1008000000 { 102*4882a593Smuzhiyun opp-hz = /bits/ 64 <1008000000>; 103*4882a593Smuzhiyun opp-microvolt = <1140000>; 104*4882a593Smuzhiyun }; 105*4882a593Smuzhiyun opp-1200000000 { 106*4882a593Smuzhiyun opp-hz = /bits/ 64 <1200000000>; 107*4882a593Smuzhiyun opp-microvolt = <1140000>; 108*4882a593Smuzhiyun }; 109*4882a593Smuzhiyun opp-1320000000 { 110*4882a593Smuzhiyun opp-hz = /bits/ 64 <1320000000>; 111*4882a593Smuzhiyun opp-microvolt = <1140000>; 112*4882a593Smuzhiyun }; 113*4882a593Smuzhiyun opp-1488000000 { 114*4882a593Smuzhiyun opp-hz = /bits/ 64 <1488000000>; 115*4882a593Smuzhiyun opp-microvolt = <1140000>; 116*4882a593Smuzhiyun }; 117*4882a593Smuzhiyun opp-1536000000 { 118*4882a593Smuzhiyun opp-hz = /bits/ 64 <1536000000>; 119*4882a593Smuzhiyun opp-microvolt = <1140000>; 120*4882a593Smuzhiyun }; 121*4882a593Smuzhiyun }; 122*4882a593Smuzhiyun 123*4882a593Smuzhiyun gpu_opp_table: gpu-opp-table { 124*4882a593Smuzhiyun compatible = "operating-points-v2"; 125*4882a593Smuzhiyun 126*4882a593Smuzhiyun opp-255000000 { 127*4882a593Smuzhiyun opp-hz = /bits/ 64 <255000000>; 128*4882a593Smuzhiyun opp-microvolt = <1100000>; 129*4882a593Smuzhiyun }; 130*4882a593Smuzhiyun opp-364285714 { 131*4882a593Smuzhiyun opp-hz = /bits/ 64 <364285714>; 132*4882a593Smuzhiyun opp-microvolt = <1100000>; 133*4882a593Smuzhiyun }; 134*4882a593Smuzhiyun opp-425000000 { 135*4882a593Smuzhiyun opp-hz = /bits/ 64 <425000000>; 136*4882a593Smuzhiyun opp-microvolt = <1100000>; 137*4882a593Smuzhiyun }; 138*4882a593Smuzhiyun opp-510000000 { 139*4882a593Smuzhiyun opp-hz = /bits/ 64 <510000000>; 140*4882a593Smuzhiyun opp-microvolt = <1100000>; 141*4882a593Smuzhiyun }; 142*4882a593Smuzhiyun opp-637500000 { 143*4882a593Smuzhiyun opp-hz = /bits/ 64 <637500000>; 144*4882a593Smuzhiyun opp-microvolt = <1100000>; 145*4882a593Smuzhiyun turbo-mode; 146*4882a593Smuzhiyun }; 147*4882a593Smuzhiyun }; 148*4882a593Smuzhiyun 149*4882a593Smuzhiyun pmu { 150*4882a593Smuzhiyun compatible = "arm,cortex-a5-pmu"; 151*4882a593Smuzhiyun interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>, 152*4882a593Smuzhiyun <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>, 153*4882a593Smuzhiyun <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>, 154*4882a593Smuzhiyun <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>; 155*4882a593Smuzhiyun interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; 156*4882a593Smuzhiyun }; 157*4882a593Smuzhiyun 158*4882a593Smuzhiyun reserved-memory { 159*4882a593Smuzhiyun #address-cells = <1>; 160*4882a593Smuzhiyun #size-cells = <1>; 161*4882a593Smuzhiyun ranges; 162*4882a593Smuzhiyun 163*4882a593Smuzhiyun /* 2 MiB reserved for Hardware ROM Firmware? */ 164*4882a593Smuzhiyun hwrom@0 { 165*4882a593Smuzhiyun reg = <0x0 0x200000>; 166*4882a593Smuzhiyun no-map; 167*4882a593Smuzhiyun }; 168*4882a593Smuzhiyun }; 169*4882a593Smuzhiyun 170*4882a593Smuzhiyun mmcbus: bus@c8000000 { 171*4882a593Smuzhiyun compatible = "simple-bus"; 172*4882a593Smuzhiyun reg = <0xc8000000 0x8000>; 173*4882a593Smuzhiyun #address-cells = <1>; 174*4882a593Smuzhiyun #size-cells = <1>; 175*4882a593Smuzhiyun ranges = <0x0 0xc8000000 0x8000>; 176*4882a593Smuzhiyun 177*4882a593Smuzhiyun ddr_clkc: clock-controller@400 { 178*4882a593Smuzhiyun compatible = "amlogic,meson8b-ddr-clkc"; 179*4882a593Smuzhiyun reg = <0x400 0x20>; 180*4882a593Smuzhiyun clocks = <&xtal>; 181*4882a593Smuzhiyun clock-names = "xtal"; 182*4882a593Smuzhiyun #clock-cells = <1>; 183*4882a593Smuzhiyun }; 184*4882a593Smuzhiyun 185*4882a593Smuzhiyun dmcbus: bus@6000 { 186*4882a593Smuzhiyun compatible = "simple-bus"; 187*4882a593Smuzhiyun reg = <0x6000 0x400>; 188*4882a593Smuzhiyun #address-cells = <1>; 189*4882a593Smuzhiyun #size-cells = <1>; 190*4882a593Smuzhiyun ranges = <0x0 0x6000 0x400>; 191*4882a593Smuzhiyun 192*4882a593Smuzhiyun canvas: video-lut@48 { 193*4882a593Smuzhiyun compatible = "amlogic,meson8b-canvas", 194*4882a593Smuzhiyun "amlogic,canvas"; 195*4882a593Smuzhiyun reg = <0x48 0x14>; 196*4882a593Smuzhiyun }; 197*4882a593Smuzhiyun }; 198*4882a593Smuzhiyun }; 199*4882a593Smuzhiyun 200*4882a593Smuzhiyun apb: bus@d0000000 { 201*4882a593Smuzhiyun compatible = "simple-bus"; 202*4882a593Smuzhiyun reg = <0xd0000000 0x200000>; 203*4882a593Smuzhiyun #address-cells = <1>; 204*4882a593Smuzhiyun #size-cells = <1>; 205*4882a593Smuzhiyun ranges = <0x0 0xd0000000 0x200000>; 206*4882a593Smuzhiyun 207*4882a593Smuzhiyun mali: gpu@c0000 { 208*4882a593Smuzhiyun compatible = "amlogic,meson8b-mali", "arm,mali-450"; 209*4882a593Smuzhiyun reg = <0xc0000 0x40000>; 210*4882a593Smuzhiyun interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, 211*4882a593Smuzhiyun <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>, 212*4882a593Smuzhiyun <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>, 213*4882a593Smuzhiyun <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>, 214*4882a593Smuzhiyun <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>, 215*4882a593Smuzhiyun <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>, 216*4882a593Smuzhiyun <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>, 217*4882a593Smuzhiyun <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>; 218*4882a593Smuzhiyun interrupt-names = "gp", "gpmmu", "pp", "pmu", 219*4882a593Smuzhiyun "pp0", "ppmmu0", "pp1", "ppmmu1"; 220*4882a593Smuzhiyun resets = <&reset RESET_MALI>; 221*4882a593Smuzhiyun clocks = <&clkc CLKID_CLK81>, <&clkc CLKID_MALI>; 222*4882a593Smuzhiyun clock-names = "bus", "core"; 223*4882a593Smuzhiyun operating-points-v2 = <&gpu_opp_table>; 224*4882a593Smuzhiyun }; 225*4882a593Smuzhiyun }; 226*4882a593Smuzhiyun}; /* end of / */ 227*4882a593Smuzhiyun 228*4882a593Smuzhiyun&aobus { 229*4882a593Smuzhiyun pmu: pmu@e0 { 230*4882a593Smuzhiyun compatible = "amlogic,meson8b-pmu", "syscon"; 231*4882a593Smuzhiyun reg = <0xe0 0x18>; 232*4882a593Smuzhiyun }; 233*4882a593Smuzhiyun 234*4882a593Smuzhiyun pinctrl_aobus: pinctrl@84 { 235*4882a593Smuzhiyun compatible = "amlogic,meson8b-aobus-pinctrl"; 236*4882a593Smuzhiyun reg = <0x84 0xc>; 237*4882a593Smuzhiyun #address-cells = <1>; 238*4882a593Smuzhiyun #size-cells = <1>; 239*4882a593Smuzhiyun ranges; 240*4882a593Smuzhiyun 241*4882a593Smuzhiyun gpio_ao: ao-bank@14 { 242*4882a593Smuzhiyun reg = <0x14 0x4>, 243*4882a593Smuzhiyun <0x2c 0x4>, 244*4882a593Smuzhiyun <0x24 0x8>; 245*4882a593Smuzhiyun reg-names = "mux", "pull", "gpio"; 246*4882a593Smuzhiyun gpio-controller; 247*4882a593Smuzhiyun #gpio-cells = <2>; 248*4882a593Smuzhiyun gpio-ranges = <&pinctrl_aobus 0 0 16>; 249*4882a593Smuzhiyun }; 250*4882a593Smuzhiyun 251*4882a593Smuzhiyun uart_ao_a_pins: uart_ao_a { 252*4882a593Smuzhiyun mux { 253*4882a593Smuzhiyun groups = "uart_tx_ao_a", "uart_rx_ao_a"; 254*4882a593Smuzhiyun function = "uart_ao"; 255*4882a593Smuzhiyun bias-disable; 256*4882a593Smuzhiyun }; 257*4882a593Smuzhiyun }; 258*4882a593Smuzhiyun 259*4882a593Smuzhiyun ir_recv_pins: remote { 260*4882a593Smuzhiyun mux { 261*4882a593Smuzhiyun groups = "remote_input"; 262*4882a593Smuzhiyun function = "remote"; 263*4882a593Smuzhiyun bias-disable; 264*4882a593Smuzhiyun }; 265*4882a593Smuzhiyun }; 266*4882a593Smuzhiyun }; 267*4882a593Smuzhiyun}; 268*4882a593Smuzhiyun 269*4882a593Smuzhiyun&cbus { 270*4882a593Smuzhiyun reset: reset-controller@4404 { 271*4882a593Smuzhiyun compatible = "amlogic,meson8b-reset"; 272*4882a593Smuzhiyun reg = <0x4404 0x9c>; 273*4882a593Smuzhiyun #reset-cells = <1>; 274*4882a593Smuzhiyun }; 275*4882a593Smuzhiyun 276*4882a593Smuzhiyun analog_top: analog-top@81a8 { 277*4882a593Smuzhiyun compatible = "amlogic,meson8b-analog-top", "syscon"; 278*4882a593Smuzhiyun reg = <0x81a8 0x14>; 279*4882a593Smuzhiyun }; 280*4882a593Smuzhiyun 281*4882a593Smuzhiyun pwm_ef: pwm@86c0 { 282*4882a593Smuzhiyun compatible = "amlogic,meson8b-pwm"; 283*4882a593Smuzhiyun reg = <0x86c0 0x10>; 284*4882a593Smuzhiyun #pwm-cells = <3>; 285*4882a593Smuzhiyun status = "disabled"; 286*4882a593Smuzhiyun }; 287*4882a593Smuzhiyun 288*4882a593Smuzhiyun clock-measure@8758 { 289*4882a593Smuzhiyun compatible = "amlogic,meson8b-clk-measure"; 290*4882a593Smuzhiyun reg = <0x8758 0x1c>; 291*4882a593Smuzhiyun }; 292*4882a593Smuzhiyun 293*4882a593Smuzhiyun pinctrl_cbus: pinctrl@9880 { 294*4882a593Smuzhiyun compatible = "amlogic,meson8b-cbus-pinctrl"; 295*4882a593Smuzhiyun reg = <0x9880 0x10>; 296*4882a593Smuzhiyun #address-cells = <1>; 297*4882a593Smuzhiyun #size-cells = <1>; 298*4882a593Smuzhiyun ranges; 299*4882a593Smuzhiyun 300*4882a593Smuzhiyun gpio: banks@80b0 { 301*4882a593Smuzhiyun reg = <0x80b0 0x28>, 302*4882a593Smuzhiyun <0x80e8 0x18>, 303*4882a593Smuzhiyun <0x8120 0x18>, 304*4882a593Smuzhiyun <0x8030 0x38>; 305*4882a593Smuzhiyun reg-names = "mux", "pull", "pull-enable", "gpio"; 306*4882a593Smuzhiyun gpio-controller; 307*4882a593Smuzhiyun #gpio-cells = <2>; 308*4882a593Smuzhiyun gpio-ranges = <&pinctrl_cbus 0 0 83>; 309*4882a593Smuzhiyun }; 310*4882a593Smuzhiyun 311*4882a593Smuzhiyun eth_rgmii_pins: eth-rgmii { 312*4882a593Smuzhiyun mux { 313*4882a593Smuzhiyun groups = "eth_tx_clk", 314*4882a593Smuzhiyun "eth_tx_en", 315*4882a593Smuzhiyun "eth_txd1_0", 316*4882a593Smuzhiyun "eth_txd0_0", 317*4882a593Smuzhiyun "eth_rx_clk", 318*4882a593Smuzhiyun "eth_rx_dv", 319*4882a593Smuzhiyun "eth_rxd1", 320*4882a593Smuzhiyun "eth_rxd0", 321*4882a593Smuzhiyun "eth_mdio_en", 322*4882a593Smuzhiyun "eth_mdc", 323*4882a593Smuzhiyun "eth_ref_clk", 324*4882a593Smuzhiyun "eth_txd2", 325*4882a593Smuzhiyun "eth_txd3", 326*4882a593Smuzhiyun "eth_rxd3", 327*4882a593Smuzhiyun "eth_rxd2"; 328*4882a593Smuzhiyun function = "ethernet"; 329*4882a593Smuzhiyun bias-disable; 330*4882a593Smuzhiyun }; 331*4882a593Smuzhiyun }; 332*4882a593Smuzhiyun 333*4882a593Smuzhiyun eth_rmii_pins: eth-rmii { 334*4882a593Smuzhiyun mux { 335*4882a593Smuzhiyun groups = "eth_tx_en", 336*4882a593Smuzhiyun "eth_txd1_0", 337*4882a593Smuzhiyun "eth_txd0_0", 338*4882a593Smuzhiyun "eth_rx_clk", 339*4882a593Smuzhiyun "eth_rx_dv", 340*4882a593Smuzhiyun "eth_rxd1", 341*4882a593Smuzhiyun "eth_rxd0", 342*4882a593Smuzhiyun "eth_mdio_en", 343*4882a593Smuzhiyun "eth_mdc"; 344*4882a593Smuzhiyun function = "ethernet"; 345*4882a593Smuzhiyun bias-disable; 346*4882a593Smuzhiyun }; 347*4882a593Smuzhiyun }; 348*4882a593Smuzhiyun 349*4882a593Smuzhiyun i2c_a_pins: i2c-a { 350*4882a593Smuzhiyun mux { 351*4882a593Smuzhiyun groups = "i2c_sda_a", "i2c_sck_a"; 352*4882a593Smuzhiyun function = "i2c_a"; 353*4882a593Smuzhiyun bias-disable; 354*4882a593Smuzhiyun }; 355*4882a593Smuzhiyun }; 356*4882a593Smuzhiyun 357*4882a593Smuzhiyun sd_b_pins: sd-b { 358*4882a593Smuzhiyun mux { 359*4882a593Smuzhiyun groups = "sd_d0_b", "sd_d1_b", "sd_d2_b", 360*4882a593Smuzhiyun "sd_d3_b", "sd_clk_b", "sd_cmd_b"; 361*4882a593Smuzhiyun function = "sd_b"; 362*4882a593Smuzhiyun bias-disable; 363*4882a593Smuzhiyun }; 364*4882a593Smuzhiyun }; 365*4882a593Smuzhiyun 366*4882a593Smuzhiyun sdxc_c_pins: sdxc-c { 367*4882a593Smuzhiyun mux { 368*4882a593Smuzhiyun groups = "sdxc_d0_c", "sdxc_d13_c", 369*4882a593Smuzhiyun "sdxc_d47_c", "sdxc_clk_c", 370*4882a593Smuzhiyun "sdxc_cmd_c"; 371*4882a593Smuzhiyun function = "sdxc_c"; 372*4882a593Smuzhiyun bias-pull-up; 373*4882a593Smuzhiyun }; 374*4882a593Smuzhiyun }; 375*4882a593Smuzhiyun 376*4882a593Smuzhiyun pwm_c1_pins: pwm-c1 { 377*4882a593Smuzhiyun mux { 378*4882a593Smuzhiyun groups = "pwm_c1"; 379*4882a593Smuzhiyun function = "pwm_c"; 380*4882a593Smuzhiyun bias-disable; 381*4882a593Smuzhiyun }; 382*4882a593Smuzhiyun }; 383*4882a593Smuzhiyun 384*4882a593Smuzhiyun pwm_d_pins: pwm-d { 385*4882a593Smuzhiyun mux { 386*4882a593Smuzhiyun groups = "pwm_d"; 387*4882a593Smuzhiyun function = "pwm_d"; 388*4882a593Smuzhiyun bias-disable; 389*4882a593Smuzhiyun }; 390*4882a593Smuzhiyun }; 391*4882a593Smuzhiyun 392*4882a593Smuzhiyun uart_b0_pins: uart-b0 { 393*4882a593Smuzhiyun mux { 394*4882a593Smuzhiyun groups = "uart_tx_b0", 395*4882a593Smuzhiyun "uart_rx_b0"; 396*4882a593Smuzhiyun function = "uart_b"; 397*4882a593Smuzhiyun bias-disable; 398*4882a593Smuzhiyun }; 399*4882a593Smuzhiyun }; 400*4882a593Smuzhiyun 401*4882a593Smuzhiyun uart_b0_cts_rts_pins: uart-b0-cts-rts { 402*4882a593Smuzhiyun mux { 403*4882a593Smuzhiyun groups = "uart_cts_b0", 404*4882a593Smuzhiyun "uart_rts_b0"; 405*4882a593Smuzhiyun function = "uart_b"; 406*4882a593Smuzhiyun bias-disable; 407*4882a593Smuzhiyun }; 408*4882a593Smuzhiyun }; 409*4882a593Smuzhiyun }; 410*4882a593Smuzhiyun}; 411*4882a593Smuzhiyun 412*4882a593Smuzhiyun&ahb_sram { 413*4882a593Smuzhiyun smp-sram@1ff80 { 414*4882a593Smuzhiyun compatible = "amlogic,meson8b-smp-sram"; 415*4882a593Smuzhiyun reg = <0x1ff80 0x8>; 416*4882a593Smuzhiyun }; 417*4882a593Smuzhiyun}; 418*4882a593Smuzhiyun 419*4882a593Smuzhiyun 420*4882a593Smuzhiyun&efuse { 421*4882a593Smuzhiyun compatible = "amlogic,meson8b-efuse"; 422*4882a593Smuzhiyun clocks = <&clkc CLKID_EFUSE>; 423*4882a593Smuzhiyun clock-names = "core"; 424*4882a593Smuzhiyun 425*4882a593Smuzhiyun temperature_calib: calib@1f4 { 426*4882a593Smuzhiyun /* only the upper two bytes are relevant */ 427*4882a593Smuzhiyun reg = <0x1f4 0x4>; 428*4882a593Smuzhiyun }; 429*4882a593Smuzhiyun}; 430*4882a593Smuzhiyun 431*4882a593Smuzhiyunðmac { 432*4882a593Smuzhiyun compatible = "amlogic,meson8b-dwmac", "snps,dwmac-3.70a", "snps,dwmac"; 433*4882a593Smuzhiyun 434*4882a593Smuzhiyun reg = <0xc9410000 0x10000 435*4882a593Smuzhiyun 0xc1108140 0x4>; 436*4882a593Smuzhiyun 437*4882a593Smuzhiyun clocks = <&clkc CLKID_ETH>, 438*4882a593Smuzhiyun <&clkc CLKID_MPLL2>, 439*4882a593Smuzhiyun <&clkc CLKID_MPLL2>, 440*4882a593Smuzhiyun <&clkc CLKID_FCLK_DIV2>; 441*4882a593Smuzhiyun clock-names = "stmmaceth", "clkin0", "clkin1", "timing-adjustment"; 442*4882a593Smuzhiyun rx-fifo-depth = <4096>; 443*4882a593Smuzhiyun tx-fifo-depth = <2048>; 444*4882a593Smuzhiyun 445*4882a593Smuzhiyun resets = <&reset RESET_ETHERNET>; 446*4882a593Smuzhiyun reset-names = "stmmaceth"; 447*4882a593Smuzhiyun 448*4882a593Smuzhiyun power-domains = <&pwrc PWRC_MESON8_ETHERNET_MEM_ID>; 449*4882a593Smuzhiyun}; 450*4882a593Smuzhiyun 451*4882a593Smuzhiyun&gpio_intc { 452*4882a593Smuzhiyun compatible = "amlogic,meson-gpio-intc", 453*4882a593Smuzhiyun "amlogic,meson8b-gpio-intc"; 454*4882a593Smuzhiyun status = "okay"; 455*4882a593Smuzhiyun}; 456*4882a593Smuzhiyun 457*4882a593Smuzhiyun&hhi { 458*4882a593Smuzhiyun clkc: clock-controller { 459*4882a593Smuzhiyun compatible = "amlogic,meson8b-clkc"; 460*4882a593Smuzhiyun clocks = <&xtal>, <&ddr_clkc DDR_CLKID_DDR_PLL>; 461*4882a593Smuzhiyun clock-names = "xtal", "ddr_pll"; 462*4882a593Smuzhiyun #clock-cells = <1>; 463*4882a593Smuzhiyun #reset-cells = <1>; 464*4882a593Smuzhiyun }; 465*4882a593Smuzhiyun 466*4882a593Smuzhiyun pwrc: power-controller { 467*4882a593Smuzhiyun compatible = "amlogic,meson8b-pwrc"; 468*4882a593Smuzhiyun #power-domain-cells = <1>; 469*4882a593Smuzhiyun amlogic,ao-sysctrl = <&pmu>; 470*4882a593Smuzhiyun resets = <&reset RESET_DBLK>, 471*4882a593Smuzhiyun <&reset RESET_PIC_DC>, 472*4882a593Smuzhiyun <&reset RESET_HDMI_APB>, 473*4882a593Smuzhiyun <&reset RESET_HDMI_SYSTEM_RESET>, 474*4882a593Smuzhiyun <&reset RESET_VENCI>, 475*4882a593Smuzhiyun <&reset RESET_VENCP>, 476*4882a593Smuzhiyun <&reset RESET_VDAC_4>, 477*4882a593Smuzhiyun <&reset RESET_VENCL>, 478*4882a593Smuzhiyun <&reset RESET_VIU>, 479*4882a593Smuzhiyun <&reset RESET_VENC>, 480*4882a593Smuzhiyun <&reset RESET_RDMA>; 481*4882a593Smuzhiyun reset-names = "dblk", "pic_dc", "hdmi_apb", "hdmi_system", 482*4882a593Smuzhiyun "venci", "vencp", "vdac", "vencl", "viu", 483*4882a593Smuzhiyun "venc", "rdma"; 484*4882a593Smuzhiyun clocks = <&clkc CLKID_VPU>; 485*4882a593Smuzhiyun clock-names = "vpu"; 486*4882a593Smuzhiyun assigned-clocks = <&clkc CLKID_VPU>; 487*4882a593Smuzhiyun assigned-clock-rates = <182142857>; 488*4882a593Smuzhiyun }; 489*4882a593Smuzhiyun}; 490*4882a593Smuzhiyun 491*4882a593Smuzhiyun&hwrng { 492*4882a593Smuzhiyun compatible = "amlogic,meson8b-rng", "amlogic,meson-rng"; 493*4882a593Smuzhiyun clocks = <&clkc CLKID_RNG0>; 494*4882a593Smuzhiyun clock-names = "core"; 495*4882a593Smuzhiyun}; 496*4882a593Smuzhiyun 497*4882a593Smuzhiyun&i2c_AO { 498*4882a593Smuzhiyun clocks = <&clkc CLKID_CLK81>; 499*4882a593Smuzhiyun}; 500*4882a593Smuzhiyun 501*4882a593Smuzhiyun&i2c_A { 502*4882a593Smuzhiyun clocks = <&clkc CLKID_I2C>; 503*4882a593Smuzhiyun}; 504*4882a593Smuzhiyun 505*4882a593Smuzhiyun&i2c_B { 506*4882a593Smuzhiyun clocks = <&clkc CLKID_I2C>; 507*4882a593Smuzhiyun}; 508*4882a593Smuzhiyun 509*4882a593Smuzhiyun&L2 { 510*4882a593Smuzhiyun arm,data-latency = <3 3 3>; 511*4882a593Smuzhiyun arm,tag-latency = <2 2 2>; 512*4882a593Smuzhiyun arm,filter-ranges = <0x100000 0xc0000000>; 513*4882a593Smuzhiyun prefetch-data = <1>; 514*4882a593Smuzhiyun prefetch-instr = <1>; 515*4882a593Smuzhiyun arm,shared-override; 516*4882a593Smuzhiyun}; 517*4882a593Smuzhiyun 518*4882a593Smuzhiyun&periph { 519*4882a593Smuzhiyun scu@0 { 520*4882a593Smuzhiyun compatible = "arm,cortex-a5-scu"; 521*4882a593Smuzhiyun reg = <0x0 0x100>; 522*4882a593Smuzhiyun }; 523*4882a593Smuzhiyun 524*4882a593Smuzhiyun timer@200 { 525*4882a593Smuzhiyun compatible = "arm,cortex-a5-global-timer"; 526*4882a593Smuzhiyun reg = <0x200 0x20>; 527*4882a593Smuzhiyun interrupts = <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>; 528*4882a593Smuzhiyun clocks = <&clkc CLKID_PERIPH>; 529*4882a593Smuzhiyun 530*4882a593Smuzhiyun /* 531*4882a593Smuzhiyun * the arm_global_timer driver currently does not handle clock 532*4882a593Smuzhiyun * rate changes. Keep it disabled for now. 533*4882a593Smuzhiyun */ 534*4882a593Smuzhiyun status = "disabled"; 535*4882a593Smuzhiyun }; 536*4882a593Smuzhiyun 537*4882a593Smuzhiyun timer@600 { 538*4882a593Smuzhiyun compatible = "arm,cortex-a5-twd-timer"; 539*4882a593Smuzhiyun reg = <0x600 0x20>; 540*4882a593Smuzhiyun interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>; 541*4882a593Smuzhiyun clocks = <&clkc CLKID_PERIPH>; 542*4882a593Smuzhiyun }; 543*4882a593Smuzhiyun}; 544*4882a593Smuzhiyun 545*4882a593Smuzhiyun&pwm_ab { 546*4882a593Smuzhiyun compatible = "amlogic,meson8b-pwm"; 547*4882a593Smuzhiyun}; 548*4882a593Smuzhiyun 549*4882a593Smuzhiyun&pwm_cd { 550*4882a593Smuzhiyun compatible = "amlogic,meson8b-pwm"; 551*4882a593Smuzhiyun}; 552*4882a593Smuzhiyun 553*4882a593Smuzhiyun&rtc { 554*4882a593Smuzhiyun compatible = "amlogic,meson8b-rtc"; 555*4882a593Smuzhiyun resets = <&reset RESET_RTC>; 556*4882a593Smuzhiyun}; 557*4882a593Smuzhiyun 558*4882a593Smuzhiyun&saradc { 559*4882a593Smuzhiyun compatible = "amlogic,meson8b-saradc", "amlogic,meson-saradc"; 560*4882a593Smuzhiyun clocks = <&xtal>, <&clkc CLKID_SAR_ADC>; 561*4882a593Smuzhiyun clock-names = "clkin", "core"; 562*4882a593Smuzhiyun amlogic,hhi-sysctrl = <&hhi>; 563*4882a593Smuzhiyun nvmem-cells = <&temperature_calib>; 564*4882a593Smuzhiyun nvmem-cell-names = "temperature_calib"; 565*4882a593Smuzhiyun}; 566*4882a593Smuzhiyun 567*4882a593Smuzhiyun&sdhc { 568*4882a593Smuzhiyun compatible = "amlogic,meson8-sdhc", "amlogic,meson-mx-sdhc"; 569*4882a593Smuzhiyun clocks = <&xtal>, 570*4882a593Smuzhiyun <&clkc CLKID_FCLK_DIV4>, 571*4882a593Smuzhiyun <&clkc CLKID_FCLK_DIV3>, 572*4882a593Smuzhiyun <&clkc CLKID_FCLK_DIV5>, 573*4882a593Smuzhiyun <&clkc CLKID_SDHC>; 574*4882a593Smuzhiyun clock-names = "clkin0", "clkin1", "clkin2", "clkin3", "pclk"; 575*4882a593Smuzhiyun}; 576*4882a593Smuzhiyun 577*4882a593Smuzhiyun&sdio { 578*4882a593Smuzhiyun compatible = "amlogic,meson8b-sdio", "amlogic,meson-mx-sdio"; 579*4882a593Smuzhiyun clocks = <&clkc CLKID_SDIO>, <&clkc CLKID_CLK81>; 580*4882a593Smuzhiyun clock-names = "core", "clkin"; 581*4882a593Smuzhiyun}; 582*4882a593Smuzhiyun 583*4882a593Smuzhiyun&timer_abcde { 584*4882a593Smuzhiyun clocks = <&xtal>, <&clkc CLKID_CLK81>; 585*4882a593Smuzhiyun clock-names = "xtal", "pclk"; 586*4882a593Smuzhiyun}; 587*4882a593Smuzhiyun 588*4882a593Smuzhiyun&uart_AO { 589*4882a593Smuzhiyun compatible = "amlogic,meson8b-uart", "amlogic,meson-ao-uart"; 590*4882a593Smuzhiyun clocks = <&xtal>, <&clkc CLKID_CLK81>, <&clkc CLKID_CLK81>; 591*4882a593Smuzhiyun clock-names = "xtal", "pclk", "baud"; 592*4882a593Smuzhiyun}; 593*4882a593Smuzhiyun 594*4882a593Smuzhiyun&uart_A { 595*4882a593Smuzhiyun compatible = "amlogic,meson8b-uart"; 596*4882a593Smuzhiyun clocks = <&xtal>, <&clkc CLKID_UART0>, <&clkc CLKID_CLK81>; 597*4882a593Smuzhiyun clock-names = "xtal", "pclk", "baud"; 598*4882a593Smuzhiyun}; 599*4882a593Smuzhiyun 600*4882a593Smuzhiyun&uart_B { 601*4882a593Smuzhiyun compatible = "amlogic,meson8b-uart"; 602*4882a593Smuzhiyun clocks = <&xtal>, <&clkc CLKID_UART0>, <&clkc CLKID_CLK81>; 603*4882a593Smuzhiyun clock-names = "xtal", "pclk", "baud"; 604*4882a593Smuzhiyun}; 605*4882a593Smuzhiyun 606*4882a593Smuzhiyun&uart_C { 607*4882a593Smuzhiyun compatible = "amlogic,meson8b-uart"; 608*4882a593Smuzhiyun clocks = <&xtal>, <&clkc CLKID_UART0>, <&clkc CLKID_CLK81>; 609*4882a593Smuzhiyun clock-names = "xtal", "pclk", "baud"; 610*4882a593Smuzhiyun}; 611*4882a593Smuzhiyun 612*4882a593Smuzhiyun&usb0 { 613*4882a593Smuzhiyun compatible = "amlogic,meson8b-usb", "snps,dwc2"; 614*4882a593Smuzhiyun clocks = <&clkc CLKID_USB0_DDR_BRIDGE>; 615*4882a593Smuzhiyun clock-names = "otg"; 616*4882a593Smuzhiyun}; 617*4882a593Smuzhiyun 618*4882a593Smuzhiyun&usb1 { 619*4882a593Smuzhiyun compatible = "amlogic,meson8b-usb", "snps,dwc2"; 620*4882a593Smuzhiyun clocks = <&clkc CLKID_USB1_DDR_BRIDGE>; 621*4882a593Smuzhiyun clock-names = "otg"; 622*4882a593Smuzhiyun}; 623*4882a593Smuzhiyun 624*4882a593Smuzhiyun&usb0_phy { 625*4882a593Smuzhiyun compatible = "amlogic,meson8b-usb2-phy", "amlogic,meson-mx-usb2-phy"; 626*4882a593Smuzhiyun clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB0>; 627*4882a593Smuzhiyun clock-names = "usb_general", "usb"; 628*4882a593Smuzhiyun resets = <&reset RESET_USB_OTG>; 629*4882a593Smuzhiyun}; 630*4882a593Smuzhiyun 631*4882a593Smuzhiyun&usb1_phy { 632*4882a593Smuzhiyun compatible = "amlogic,meson8b-usb2-phy", "amlogic,meson-mx-usb2-phy"; 633*4882a593Smuzhiyun clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB1>; 634*4882a593Smuzhiyun clock-names = "usb_general", "usb"; 635*4882a593Smuzhiyun resets = <&reset RESET_USB_OTG>; 636*4882a593Smuzhiyun}; 637*4882a593Smuzhiyun 638*4882a593Smuzhiyun&wdt { 639*4882a593Smuzhiyun compatible = "amlogic,meson8b-wdt"; 640*4882a593Smuzhiyun}; 641