Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0 OR MIT
0002 /*
0003  * Copyright 2015 Endless Mobile, Inc.
0004  * Author: Carlo Caione <carlo@endlessm.com>
0005  */
0006 
0007 #include <dt-bindings/clock/meson8-ddr-clkc.h>
0008 #include <dt-bindings/clock/meson8b-clkc.h>
0009 #include <dt-bindings/gpio/meson8b-gpio.h>
0010 #include <dt-bindings/power/meson8-power.h>
0011 #include <dt-bindings/reset/amlogic,meson8b-reset.h>
0012 #include <dt-bindings/reset/amlogic,meson8b-clkc-reset.h>
0013 #include <dt-bindings/thermal/thermal.h>
0014 #include "meson.dtsi"
0015 
0016 / {
0017         cpus {
0018                 #address-cells = <1>;
0019                 #size-cells = <0>;
0020 
0021                 cpu0: cpu@200 {
0022                         device_type = "cpu";
0023                         compatible = "arm,cortex-a5";
0024                         next-level-cache = <&L2>;
0025                         reg = <0x200>;
0026                         enable-method = "amlogic,meson8b-smp";
0027                         resets = <&clkc CLKC_RESET_CPU0_SOFT_RESET>;
0028                         operating-points-v2 = <&cpu_opp_table>;
0029                         clocks = <&clkc CLKID_CPUCLK>;
0030                         #cooling-cells = <2>; /* min followed by max */
0031                 };
0032 
0033                 cpu1: cpu@201 {
0034                         device_type = "cpu";
0035                         compatible = "arm,cortex-a5";
0036                         next-level-cache = <&L2>;
0037                         reg = <0x201>;
0038                         enable-method = "amlogic,meson8b-smp";
0039                         resets = <&clkc CLKC_RESET_CPU1_SOFT_RESET>;
0040                         operating-points-v2 = <&cpu_opp_table>;
0041                         clocks = <&clkc CLKID_CPUCLK>;
0042                         #cooling-cells = <2>; /* min followed by max */
0043                 };
0044 
0045                 cpu2: cpu@202 {
0046                         device_type = "cpu";
0047                         compatible = "arm,cortex-a5";
0048                         next-level-cache = <&L2>;
0049                         reg = <0x202>;
0050                         enable-method = "amlogic,meson8b-smp";
0051                         resets = <&clkc CLKC_RESET_CPU2_SOFT_RESET>;
0052                         operating-points-v2 = <&cpu_opp_table>;
0053                         clocks = <&clkc CLKID_CPUCLK>;
0054                         #cooling-cells = <2>; /* min followed by max */
0055                 };
0056 
0057                 cpu3: cpu@203 {
0058                         device_type = "cpu";
0059                         compatible = "arm,cortex-a5";
0060                         next-level-cache = <&L2>;
0061                         reg = <0x203>;
0062                         enable-method = "amlogic,meson8b-smp";
0063                         resets = <&clkc CLKC_RESET_CPU3_SOFT_RESET>;
0064                         operating-points-v2 = <&cpu_opp_table>;
0065                         clocks = <&clkc CLKID_CPUCLK>;
0066                         #cooling-cells = <2>; /* min followed by max */
0067                 };
0068         };
0069 
0070         cpu_opp_table: opp-table {
0071                 compatible = "operating-points-v2";
0072                 opp-shared;
0073 
0074                 opp-96000000 {
0075                         opp-hz = /bits/ 64 <96000000>;
0076                         opp-microvolt = <860000>;
0077                 };
0078                 opp-192000000 {
0079                         opp-hz = /bits/ 64 <192000000>;
0080                         opp-microvolt = <860000>;
0081                 };
0082                 opp-312000000 {
0083                         opp-hz = /bits/ 64 <312000000>;
0084                         opp-microvolt = <860000>;
0085                 };
0086                 opp-408000000 {
0087                         opp-hz = /bits/ 64 <408000000>;
0088                         opp-microvolt = <860000>;
0089                 };
0090                 opp-504000000 {
0091                         opp-hz = /bits/ 64 <504000000>;
0092                         opp-microvolt = <860000>;
0093                 };
0094                 opp-600000000 {
0095                         opp-hz = /bits/ 64 <600000000>;
0096                         opp-microvolt = <860000>;
0097                 };
0098                 opp-720000000 {
0099                         opp-hz = /bits/ 64 <720000000>;
0100                         opp-microvolt = <860000>;
0101                 };
0102                 opp-816000000 {
0103                         opp-hz = /bits/ 64 <816000000>;
0104                         opp-microvolt = <900000>;
0105                 };
0106                 opp-1008000000 {
0107                         opp-hz = /bits/ 64 <1008000000>;
0108                         opp-microvolt = <1140000>;
0109                 };
0110                 opp-1200000000 {
0111                         opp-hz = /bits/ 64 <1200000000>;
0112                         opp-microvolt = <1140000>;
0113                 };
0114                 opp-1320000000 {
0115                         opp-hz = /bits/ 64 <1320000000>;
0116                         opp-microvolt = <1140000>;
0117                 };
0118                 opp-1488000000 {
0119                         opp-hz = /bits/ 64 <1488000000>;
0120                         opp-microvolt = <1140000>;
0121                 };
0122                 opp-1536000000 {
0123                         opp-hz = /bits/ 64 <1536000000>;
0124                         opp-microvolt = <1140000>;
0125                 };
0126         };
0127 
0128         gpu_opp_table: gpu-opp-table {
0129                 compatible = "operating-points-v2";
0130 
0131                 opp-255000000 {
0132                         opp-hz = /bits/ 64 <255000000>;
0133                         opp-microvolt = <1100000>;
0134                 };
0135                 opp-364285714 {
0136                         opp-hz = /bits/ 64 <364285714>;
0137                         opp-microvolt = <1100000>;
0138                 };
0139                 opp-425000000 {
0140                         opp-hz = /bits/ 64 <425000000>;
0141                         opp-microvolt = <1100000>;
0142                 };
0143                 opp-510000000 {
0144                         opp-hz = /bits/ 64 <510000000>;
0145                         opp-microvolt = <1100000>;
0146                 };
0147                 opp-637500000 {
0148                         opp-hz = /bits/ 64 <637500000>;
0149                         opp-microvolt = <1100000>;
0150                         turbo-mode;
0151                 };
0152         };
0153 
0154         pmu {
0155                 compatible = "arm,cortex-a5-pmu";
0156                 interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
0157                              <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
0158                              <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
0159                              <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
0160                 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
0161         };
0162 
0163         reserved-memory {
0164                 #address-cells = <1>;
0165                 #size-cells = <1>;
0166                 ranges;
0167 
0168                 /* 2 MiB reserved for Hardware ROM Firmware? */
0169                 hwrom@0 {
0170                         reg = <0x0 0x200000>;
0171                         no-map;
0172                 };
0173         };
0174 
0175         thermal-zones {
0176                 soc {
0177                         polling-delay-passive = <250>; /* milliseconds */
0178                         polling-delay = <1000>; /* milliseconds */
0179                         thermal-sensors = <&thermal_sensor>;
0180 
0181                         cooling-maps {
0182                                 map0 {
0183                                         trip = <&soc_passive>;
0184                                         cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
0185                                                          <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
0186                                                          <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
0187                                                          <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
0188                                                          <&mali THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
0189                                 };
0190 
0191                                 map1 {
0192                                         trip = <&soc_hot>;
0193                                         cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
0194                                                          <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
0195                                                          <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
0196                                                          <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
0197                                                          <&mali THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
0198                                 };
0199                         };
0200 
0201                         trips {
0202                                 soc_passive: soc-passive {
0203                                         temperature = <80000>; /* millicelsius */
0204                                         hysteresis = <2000>; /* millicelsius */
0205                                         type = "passive";
0206                                 };
0207 
0208                                 soc_hot: soc-hot {
0209                                         temperature = <90000>; /* millicelsius */
0210                                         hysteresis = <2000>; /* millicelsius */
0211                                         type = "hot";
0212                                 };
0213 
0214                                 soc_critical: soc-critical {
0215                                         temperature = <110000>; /* millicelsius */
0216                                         hysteresis = <2000>; /* millicelsius */
0217                                         type = "critical";
0218                                 };
0219                         };
0220                 };
0221         };
0222 
0223         mmcbus: bus@c8000000 {
0224                 compatible = "simple-bus";
0225                 reg = <0xc8000000 0x8000>;
0226                 #address-cells = <1>;
0227                 #size-cells = <1>;
0228                 ranges = <0x0 0xc8000000 0x8000>;
0229 
0230                 ddr_clkc: clock-controller@400 {
0231                         compatible = "amlogic,meson8b-ddr-clkc";
0232                         reg = <0x400 0x20>;
0233                         clocks = <&xtal>;
0234                         clock-names = "xtal";
0235                         #clock-cells = <1>;
0236                 };
0237 
0238                 dmcbus: bus@6000 {
0239                         compatible = "simple-bus";
0240                         reg = <0x6000 0x400>;
0241                         #address-cells = <1>;
0242                         #size-cells = <1>;
0243                         ranges = <0x0 0x6000 0x400>;
0244 
0245                         canvas: video-lut@48 {
0246                                 compatible = "amlogic,meson8b-canvas",
0247                                              "amlogic,canvas";
0248                                 reg = <0x48 0x14>;
0249                         };
0250                 };
0251         };
0252 
0253         apb: bus@d0000000 {
0254                 compatible = "simple-bus";
0255                 reg = <0xd0000000 0x200000>;
0256                 #address-cells = <1>;
0257                 #size-cells = <1>;
0258                 ranges = <0x0 0xd0000000 0x200000>;
0259 
0260                 mali: gpu@c0000 {
0261                         compatible = "amlogic,meson8b-mali", "arm,mali-450";
0262                         reg = <0xc0000 0x40000>;
0263                         interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
0264                                      <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
0265                                      <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
0266                                      <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
0267                                      <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>,
0268                                      <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>,
0269                                      <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>,
0270                                      <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
0271                         interrupt-names = "gp", "gpmmu", "pp", "pmu",
0272                                           "pp0", "ppmmu0", "pp1", "ppmmu1";
0273                         resets = <&reset RESET_MALI>;
0274                         clocks = <&clkc CLKID_CLK81>, <&clkc CLKID_MALI>;
0275                         clock-names = "bus", "core";
0276                         operating-points-v2 = <&gpu_opp_table>;
0277                         #cooling-cells = <2>; /* min followed by max */
0278                 };
0279         };
0280 }; /* end of / */
0281 
0282 &aiu {
0283         compatible = "amlogic,aiu-meson8b", "amlogic,aiu";
0284         clocks = <&clkc CLKID_AIU_GLUE>,
0285                  <&clkc CLKID_I2S_OUT>,
0286                  <&clkc CLKID_AOCLK_GATE>,
0287                  <&clkc CLKID_CTS_AMCLK>,
0288                  <&clkc CLKID_MIXER_IFACE>,
0289                  <&clkc CLKID_IEC958>,
0290                  <&clkc CLKID_IEC958_GATE>,
0291                  <&clkc CLKID_CTS_MCLK_I958>,
0292                  <&clkc CLKID_CTS_I958>;
0293         clock-names = "pclk",
0294                       "i2s_pclk",
0295                       "i2s_aoclk",
0296                       "i2s_mclk",
0297                       "i2s_mixer",
0298                       "spdif_pclk",
0299                       "spdif_aoclk",
0300                       "spdif_mclk",
0301                       "spdif_mclk_sel";
0302         resets = <&reset RESET_AIU>;
0303 };
0304 
0305 &aobus {
0306         pmu: pmu@e0 {
0307                 compatible = "amlogic,meson8b-pmu", "syscon";
0308                 reg = <0xe0 0x18>;
0309         };
0310 
0311         pinctrl_aobus: pinctrl@84 {
0312                 compatible = "amlogic,meson8b-aobus-pinctrl";
0313                 reg = <0x84 0xc>;
0314                 #address-cells = <1>;
0315                 #size-cells = <1>;
0316                 ranges;
0317 
0318                 gpio_ao: ao-bank@14 {
0319                         reg = <0x14 0x4>,
0320                                 <0x2c 0x4>,
0321                                 <0x24 0x8>;
0322                         reg-names = "mux", "pull", "gpio";
0323                         gpio-controller;
0324                         #gpio-cells = <2>;
0325                         gpio-ranges = <&pinctrl_aobus 0 0 16>;
0326                 };
0327 
0328                 i2s_am_clk_pins: i2s-am-clk-out {
0329                         mux {
0330                                 groups = "i2s_am_clk_out";
0331                                 function = "i2s";
0332                                 bias-disable;
0333                         };
0334                 };
0335 
0336                 i2s_out_ao_clk_pins: i2s-ao-clk-out {
0337                         mux {
0338                                 groups = "i2s_ao_clk_out";
0339                                 function = "i2s";
0340                                 bias-disable;
0341                         };
0342                 };
0343 
0344                 i2s_out_lr_clk_pins: i2s-lr-clk-out {
0345                         mux {
0346                                 groups = "i2s_lr_clk_out";
0347                                 function = "i2s";
0348                                 bias-disable;
0349                         };
0350                 };
0351 
0352                 i2s_out_ch01_ao_pins: i2s-out-ch01 {
0353                         mux {
0354                                 groups = "i2s_out_01";
0355                                 function = "i2s";
0356                                 bias-disable;
0357                         };
0358                 };
0359 
0360                 spdif_out_1_pins: spdif-out-1 {
0361                         mux {
0362                                 groups = "spdif_out_1";
0363                                 function = "spdif_1";
0364                                 bias-disable;
0365                         };
0366                 };
0367 
0368                 uart_ao_a_pins: uart_ao_a {
0369                         mux {
0370                                 groups = "uart_tx_ao_a", "uart_rx_ao_a";
0371                                 function = "uart_ao";
0372                                 bias-disable;
0373                         };
0374                 };
0375 
0376                 ir_recv_pins: remote {
0377                         mux {
0378                                 groups = "remote_input";
0379                                 function = "remote";
0380                                 bias-disable;
0381                         };
0382                 };
0383         };
0384 };
0385 
0386 &ao_arc_rproc {
0387         compatible = "amlogic,meson8b-ao-arc", "amlogic,meson-mx-ao-arc";
0388         amlogic,secbus2 = <&secbus2>;
0389         sram = <&ao_arc_sram>;
0390         resets = <&reset RESET_MEDIA_CPU>;
0391         clocks = <&clkc CLKID_AO_MEDIA_CPU>;
0392 };
0393 
0394 &cbus {
0395         reset: reset-controller@4404 {
0396                 compatible = "amlogic,meson8b-reset";
0397                 reg = <0x4404 0x9c>;
0398                 #reset-cells = <1>;
0399         };
0400 
0401         analog_top: analog-top@81a8 {
0402                 compatible = "amlogic,meson8b-analog-top", "syscon";
0403                 reg = <0x81a8 0x14>;
0404         };
0405 
0406         pwm_ef: pwm@86c0 {
0407                 compatible = "amlogic,meson8b-pwm";
0408                 reg = <0x86c0 0x10>;
0409                 #pwm-cells = <3>;
0410                 status = "disabled";
0411         };
0412 
0413         clock-measure@8758 {
0414                 compatible = "amlogic,meson8b-clk-measure";
0415                 reg = <0x8758 0x1c>;
0416         };
0417 
0418         pinctrl_cbus: pinctrl@9880 {
0419                 compatible = "amlogic,meson8b-cbus-pinctrl";
0420                 reg = <0x9880 0x10>;
0421                 #address-cells = <1>;
0422                 #size-cells = <1>;
0423                 ranges;
0424 
0425                 gpio: banks@80b0 {
0426                         reg = <0x80b0 0x28>,
0427                                 <0x80e8 0x18>,
0428                                 <0x8120 0x18>,
0429                                 <0x8030 0x38>;
0430                         reg-names = "mux", "pull", "pull-enable", "gpio";
0431                         gpio-controller;
0432                         #gpio-cells = <2>;
0433                         gpio-ranges = <&pinctrl_cbus 0 0 83>;
0434                 };
0435 
0436                 eth_rgmii_pins: eth-rgmii {
0437                         mux {
0438                                 groups = "eth_tx_clk",
0439                                          "eth_tx_en",
0440                                          "eth_txd1_0",
0441                                          "eth_txd0_0",
0442                                          "eth_rx_clk",
0443                                          "eth_rx_dv",
0444                                          "eth_rxd1",
0445                                          "eth_rxd0",
0446                                          "eth_mdio_en",
0447                                          "eth_mdc",
0448                                          "eth_ref_clk",
0449                                          "eth_txd2",
0450                                          "eth_txd3",
0451                                          "eth_rxd3",
0452                                          "eth_rxd2";
0453                                 function = "ethernet";
0454                                 bias-disable;
0455                         };
0456                 };
0457 
0458                 eth_rmii_pins: eth-rmii {
0459                         mux {
0460                                 groups = "eth_tx_en",
0461                                          "eth_txd1_0",
0462                                          "eth_txd0_0",
0463                                          "eth_rx_clk",
0464                                          "eth_rx_dv",
0465                                          "eth_rxd1",
0466                                          "eth_rxd0",
0467                                          "eth_mdio_en",
0468                                          "eth_mdc";
0469                                 function = "ethernet";
0470                                 bias-disable;
0471                         };
0472                 };
0473 
0474                 i2c_a_pins: i2c-a {
0475                         mux {
0476                                 groups = "i2c_sda_a", "i2c_sck_a";
0477                                 function = "i2c_a";
0478                                 bias-disable;
0479                         };
0480                 };
0481 
0482                 sd_b_pins: sd-b {
0483                         mux {
0484                                 groups = "sd_d0_b", "sd_d1_b", "sd_d2_b",
0485                                         "sd_d3_b", "sd_clk_b", "sd_cmd_b";
0486                                 function = "sd_b";
0487                                 bias-disable;
0488                         };
0489                 };
0490 
0491                 sdxc_c_pins: sdxc-c {
0492                         mux {
0493                                 groups = "sdxc_d0_c", "sdxc_d13_c",
0494                                          "sdxc_d47_c", "sdxc_clk_c",
0495                                          "sdxc_cmd_c";
0496                                 function = "sdxc_c";
0497                                 bias-pull-up;
0498                         };
0499                 };
0500 
0501                 pwm_c1_pins: pwm-c1 {
0502                         mux {
0503                                 groups = "pwm_c1";
0504                                 function = "pwm_c";
0505                                 bias-disable;
0506                         };
0507                 };
0508 
0509                 pwm_d_pins: pwm-d {
0510                         mux {
0511                                 groups = "pwm_d";
0512                                 function = "pwm_d";
0513                                 bias-disable;
0514                         };
0515                 };
0516 
0517                 uart_b0_pins: uart-b0 {
0518                         mux {
0519                                 groups = "uart_tx_b0",
0520                                        "uart_rx_b0";
0521                                 function = "uart_b";
0522                                 bias-disable;
0523                         };
0524                 };
0525 
0526                 uart_b0_cts_rts_pins: uart-b0-cts-rts {
0527                         mux {
0528                                 groups = "uart_cts_b0",
0529                                        "uart_rts_b0";
0530                                 function = "uart_b";
0531                                 bias-disable;
0532                         };
0533                 };
0534         };
0535 };
0536 
0537 &ahb_sram {
0538         ao_arc_sram: ao-arc-sram@0 {
0539                 compatible = "amlogic,meson8b-ao-arc-sram";
0540                 reg = <0x0 0x8000>;
0541                 pool;
0542         };
0543 
0544         smp-sram@1ff80 {
0545                 compatible = "amlogic,meson8b-smp-sram";
0546                 reg = <0x1ff80 0x8>;
0547         };
0548 };
0549 
0550 
0551 &efuse {
0552         compatible = "amlogic,meson8b-efuse";
0553         clocks = <&clkc CLKID_EFUSE>;
0554         clock-names = "core";
0555 
0556         temperature_calib: calib@1f4 {
0557                 /* only the upper two bytes are relevant */
0558                 reg = <0x1f4 0x4>;
0559         };
0560 };
0561 
0562 &ethmac {
0563         compatible = "amlogic,meson8b-dwmac", "snps,dwmac-3.70a", "snps,dwmac";
0564 
0565         reg = <0xc9410000 0x10000
0566                0xc1108140 0x4>;
0567 
0568         clocks = <&clkc CLKID_ETH>,
0569                  <&clkc CLKID_MPLL2>,
0570                  <&clkc CLKID_MPLL2>,
0571                  <&clkc CLKID_FCLK_DIV2>;
0572         clock-names = "stmmaceth", "clkin0", "clkin1", "timing-adjustment";
0573         rx-fifo-depth = <4096>;
0574         tx-fifo-depth = <2048>;
0575 
0576         resets = <&reset RESET_ETHERNET>;
0577         reset-names = "stmmaceth";
0578 
0579         power-domains = <&pwrc PWRC_MESON8_ETHERNET_MEM_ID>;
0580 };
0581 
0582 &gpio_intc {
0583         compatible = "amlogic,meson-gpio-intc",
0584                      "amlogic,meson8b-gpio-intc";
0585         status = "okay";
0586 };
0587 
0588 &hhi {
0589         clkc: clock-controller {
0590                 compatible = "amlogic,meson8b-clkc";
0591                 clocks = <&xtal>, <&ddr_clkc DDR_CLKID_DDR_PLL>;
0592                 clock-names = "xtal", "ddr_pll";
0593                 #clock-cells = <1>;
0594                 #reset-cells = <1>;
0595         };
0596 
0597         pwrc: power-controller {
0598                 compatible = "amlogic,meson8b-pwrc";
0599                 #power-domain-cells = <1>;
0600                 amlogic,ao-sysctrl = <&pmu>;
0601                 resets = <&reset RESET_DBLK>,
0602                          <&reset RESET_PIC_DC>,
0603                          <&reset RESET_HDMI_APB>,
0604                          <&reset RESET_HDMI_SYSTEM_RESET>,
0605                          <&reset RESET_VENCI>,
0606                          <&reset RESET_VENCP>,
0607                          <&reset RESET_VDAC_4>,
0608                          <&reset RESET_VENCL>,
0609                          <&reset RESET_VIU>,
0610                          <&reset RESET_VENC>,
0611                          <&reset RESET_RDMA>;
0612                 reset-names = "dblk", "pic_dc", "hdmi_apb", "hdmi_system",
0613                               "venci", "vencp", "vdac", "vencl", "viu",
0614                               "venc", "rdma";
0615                 clocks = <&clkc CLKID_VPU>;
0616                 clock-names = "vpu";
0617                 assigned-clocks = <&clkc CLKID_VPU>;
0618                 assigned-clock-rates = <182142857>;
0619         };
0620 };
0621 
0622 &hwrng {
0623         compatible = "amlogic,meson8b-rng", "amlogic,meson-rng";
0624         clocks = <&clkc CLKID_RNG0>;
0625         clock-names = "core";
0626 };
0627 
0628 &i2c_AO {
0629         clocks = <&clkc CLKID_CLK81>;
0630 };
0631 
0632 &i2c_A {
0633         clocks = <&clkc CLKID_I2C>;
0634 };
0635 
0636 &i2c_B {
0637         clocks = <&clkc CLKID_I2C>;
0638 };
0639 
0640 &L2 {
0641         arm,data-latency = <3 3 3>;
0642         arm,tag-latency = <2 2 2>;
0643         arm,filter-ranges = <0x100000 0xc0000000>;
0644         prefetch-data = <1>;
0645         prefetch-instr = <1>;
0646         arm,shared-override;
0647 };
0648 
0649 &periph {
0650         scu@0 {
0651                 compatible = "arm,cortex-a5-scu";
0652                 reg = <0x0 0x100>;
0653         };
0654 
0655         timer@200 {
0656                 compatible = "arm,cortex-a5-global-timer";
0657                 reg = <0x200 0x20>;
0658                 interrupts = <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
0659                 clocks = <&clkc CLKID_PERIPH>;
0660 
0661                 /*
0662                  * the arm_global_timer driver currently does not handle clock
0663                  * rate changes. Keep it disabled for now.
0664                  */
0665                 status = "disabled";
0666         };
0667 
0668         timer@600 {
0669                 compatible = "arm,cortex-a5-twd-timer";
0670                 reg = <0x600 0x20>;
0671                 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
0672                 clocks = <&clkc CLKID_PERIPH>;
0673         };
0674 };
0675 
0676 &pwm_ab {
0677         compatible = "amlogic,meson8b-pwm";
0678 };
0679 
0680 &pwm_cd {
0681         compatible = "amlogic,meson8b-pwm";
0682 };
0683 
0684 &rtc {
0685         compatible = "amlogic,meson8b-rtc";
0686         resets = <&reset RESET_RTC>;
0687 };
0688 
0689 &saradc {
0690         compatible = "amlogic,meson8b-saradc", "amlogic,meson-saradc";
0691         clocks = <&xtal>, <&clkc CLKID_SAR_ADC>;
0692         clock-names = "clkin", "core";
0693         amlogic,hhi-sysctrl = <&hhi>;
0694         nvmem-cells = <&temperature_calib>;
0695         nvmem-cell-names = "temperature_calib";
0696 };
0697 
0698 &sdhc {
0699         compatible = "amlogic,meson8-sdhc", "amlogic,meson-mx-sdhc";
0700         clocks = <&xtal>,
0701                  <&clkc CLKID_FCLK_DIV4>,
0702                  <&clkc CLKID_FCLK_DIV3>,
0703                  <&clkc CLKID_FCLK_DIV5>,
0704                  <&clkc CLKID_SDHC>;
0705         clock-names = "clkin0", "clkin1", "clkin2", "clkin3", "pclk";
0706 };
0707 
0708 &secbus {
0709         secbus2: system-controller@4000 {
0710                 compatible = "amlogic,meson8b-secbus2", "syscon";
0711                 reg = <0x4000 0x2000>;
0712         };
0713 };
0714 
0715 &sdio {
0716         compatible = "amlogic,meson8b-sdio", "amlogic,meson-mx-sdio";
0717         clocks = <&clkc CLKID_SDIO>, <&clkc CLKID_CLK81>;
0718         clock-names = "core", "clkin";
0719 };
0720 
0721 &timer_abcde {
0722         clocks = <&xtal>, <&clkc CLKID_CLK81>;
0723         clock-names = "xtal", "pclk";
0724 };
0725 
0726 &uart_AO {
0727         compatible = "amlogic,meson8b-uart", "amlogic,meson-ao-uart";
0728         clocks = <&xtal>, <&clkc CLKID_CLK81>, <&clkc CLKID_CLK81>;
0729         clock-names = "xtal", "pclk", "baud";
0730 };
0731 
0732 &uart_A {
0733         compatible = "amlogic,meson8b-uart";
0734         clocks = <&xtal>, <&clkc CLKID_UART0>, <&clkc CLKID_CLK81>;
0735         clock-names = "xtal", "pclk", "baud";
0736 };
0737 
0738 &uart_B {
0739         compatible = "amlogic,meson8b-uart";
0740         clocks = <&xtal>, <&clkc CLKID_UART0>, <&clkc CLKID_CLK81>;
0741         clock-names = "xtal", "pclk", "baud";
0742 };
0743 
0744 &uart_C {
0745         compatible = "amlogic,meson8b-uart";
0746         clocks = <&xtal>, <&clkc CLKID_UART0>, <&clkc CLKID_CLK81>;
0747         clock-names = "xtal", "pclk", "baud";
0748 };
0749 
0750 &usb0 {
0751         compatible = "amlogic,meson8b-usb", "snps,dwc2";
0752         clocks = <&clkc CLKID_USB0_DDR_BRIDGE>;
0753         clock-names = "otg";
0754 };
0755 
0756 &usb1 {
0757         compatible = "amlogic,meson8b-usb", "snps,dwc2";
0758         clocks = <&clkc CLKID_USB1_DDR_BRIDGE>;
0759         clock-names = "otg";
0760 };
0761 
0762 &usb0_phy {
0763         compatible = "amlogic,meson8b-usb2-phy", "amlogic,meson-mx-usb2-phy";
0764         clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB0>;
0765         clock-names = "usb_general", "usb";
0766         resets = <&reset RESET_USB_OTG>;
0767 };
0768 
0769 &usb1_phy {
0770         compatible = "amlogic,meson8b-usb2-phy", "amlogic,meson-mx-usb2-phy";
0771         clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB1>;
0772         clock-names = "usb_general", "usb";
0773         resets = <&reset RESET_USB_OTG>;
0774 };
0775 
0776 &wdt {
0777         compatible = "amlogic,meson8b-wdt";
0778 };