141e359edSNeil Armstrong// SPDX-License-Identifier: GPL-2.0 OR MIT 2aeff05a3SBeniamino Galvani/* 3aeff05a3SBeniamino Galvani * Copyright 2014 Carlo Caione <carlo@caione.org> 4aeff05a3SBeniamino Galvani */ 5aeff05a3SBeniamino Galvani 6c4ac5c37SMartin Blumenstingl#include <dt-bindings/clock/meson8-ddr-clkc.h> 72c323c43SMartin Blumenstingl#include <dt-bindings/clock/meson8b-clkc.h> 8d9fea88cSBeniamino Galvani#include <dt-bindings/gpio/meson8-gpio.h> 9aecc72b1SMartin Blumenstingl#include <dt-bindings/power/meson8-power.h> 104a5a2711SMartin Blumenstingl#include <dt-bindings/reset/amlogic,meson8b-clkc-reset.h> 11e3087187SMartin Blumenstingl#include <dt-bindings/reset/amlogic,meson8b-reset.h> 12ecdb744bSMartin Blumenstingl#include <dt-bindings/thermal/thermal.h> 137a16f06bSMartin Blumenstingl#include "meson.dtsi" 14aeff05a3SBeniamino Galvani 15aeff05a3SBeniamino Galvani/ { 16aeff05a3SBeniamino Galvani model = "Amlogic Meson8 SoC"; 17aeff05a3SBeniamino Galvani compatible = "amlogic,meson8"; 18aeff05a3SBeniamino Galvani 19aeff05a3SBeniamino Galvani cpus { 20aeff05a3SBeniamino Galvani #address-cells = <1>; 21aeff05a3SBeniamino Galvani #size-cells = <0>; 22aeff05a3SBeniamino Galvani 2317b66027SMartin Blumenstingl cpu0: cpu@200 { 24aeff05a3SBeniamino Galvani device_type = "cpu"; 25aeff05a3SBeniamino Galvani compatible = "arm,cortex-a9"; 26550ab390SBeniamino Galvani next-level-cache = <&L2>; 27aeff05a3SBeniamino Galvani reg = <0x200>; 284a5a2711SMartin Blumenstingl enable-method = "amlogic,meson8-smp"; 294a5a2711SMartin Blumenstingl resets = <&clkc CLKC_RESET_CPU0_SOFT_RESET>; 30622b9827SMartin Blumenstingl operating-points-v2 = <&cpu_opp_table>; 31622b9827SMartin Blumenstingl clocks = <&clkc CLKID_CPUCLK>; 32ecdb744bSMartin Blumenstingl #cooling-cells = <2>; /* min followed by max */ 33aeff05a3SBeniamino Galvani }; 34aeff05a3SBeniamino Galvani 3517b66027SMartin Blumenstingl cpu1: cpu@201 { 36aeff05a3SBeniamino Galvani device_type = "cpu"; 37aeff05a3SBeniamino Galvani compatible = "arm,cortex-a9"; 38550ab390SBeniamino Galvani next-level-cache = <&L2>; 39aeff05a3SBeniamino Galvani reg = <0x201>; 404a5a2711SMartin Blumenstingl enable-method = "amlogic,meson8-smp"; 414a5a2711SMartin Blumenstingl resets = <&clkc CLKC_RESET_CPU1_SOFT_RESET>; 42622b9827SMartin Blumenstingl operating-points-v2 = <&cpu_opp_table>; 43622b9827SMartin Blumenstingl clocks = <&clkc CLKID_CPUCLK>; 44ecdb744bSMartin Blumenstingl #cooling-cells = <2>; /* min followed by max */ 45aeff05a3SBeniamino Galvani }; 46aeff05a3SBeniamino Galvani 4717b66027SMartin Blumenstingl cpu2: cpu@202 { 48aeff05a3SBeniamino Galvani device_type = "cpu"; 49aeff05a3SBeniamino Galvani compatible = "arm,cortex-a9"; 50550ab390SBeniamino Galvani next-level-cache = <&L2>; 51aeff05a3SBeniamino Galvani reg = <0x202>; 524a5a2711SMartin Blumenstingl enable-method = "amlogic,meson8-smp"; 534a5a2711SMartin Blumenstingl resets = <&clkc CLKC_RESET_CPU2_SOFT_RESET>; 54622b9827SMartin Blumenstingl operating-points-v2 = <&cpu_opp_table>; 55622b9827SMartin Blumenstingl clocks = <&clkc CLKID_CPUCLK>; 56ecdb744bSMartin Blumenstingl #cooling-cells = <2>; /* min followed by max */ 57aeff05a3SBeniamino Galvani }; 58aeff05a3SBeniamino Galvani 5917b66027SMartin Blumenstingl cpu3: cpu@203 { 60aeff05a3SBeniamino Galvani device_type = "cpu"; 61aeff05a3SBeniamino Galvani compatible = "arm,cortex-a9"; 62550ab390SBeniamino Galvani next-level-cache = <&L2>; 63aeff05a3SBeniamino Galvani reg = <0x203>; 644a5a2711SMartin Blumenstingl enable-method = "amlogic,meson8-smp"; 654a5a2711SMartin Blumenstingl resets = <&clkc CLKC_RESET_CPU3_SOFT_RESET>; 66622b9827SMartin Blumenstingl operating-points-v2 = <&cpu_opp_table>; 67622b9827SMartin Blumenstingl clocks = <&clkc CLKID_CPUCLK>; 68ecdb744bSMartin Blumenstingl #cooling-cells = <2>; /* min followed by max */ 69622b9827SMartin Blumenstingl }; 70622b9827SMartin Blumenstingl }; 71622b9827SMartin Blumenstingl 72622b9827SMartin Blumenstingl cpu_opp_table: opp-table { 73622b9827SMartin Blumenstingl compatible = "operating-points-v2"; 74622b9827SMartin Blumenstingl opp-shared; 75622b9827SMartin Blumenstingl 76622b9827SMartin Blumenstingl opp-96000000 { 77622b9827SMartin Blumenstingl opp-hz = /bits/ 64 <96000000>; 78622b9827SMartin Blumenstingl opp-microvolt = <825000>; 79622b9827SMartin Blumenstingl }; 80622b9827SMartin Blumenstingl opp-192000000 { 81622b9827SMartin Blumenstingl opp-hz = /bits/ 64 <192000000>; 82622b9827SMartin Blumenstingl opp-microvolt = <825000>; 83622b9827SMartin Blumenstingl }; 84622b9827SMartin Blumenstingl opp-312000000 { 85622b9827SMartin Blumenstingl opp-hz = /bits/ 64 <312000000>; 86622b9827SMartin Blumenstingl opp-microvolt = <825000>; 87622b9827SMartin Blumenstingl }; 88622b9827SMartin Blumenstingl opp-408000000 { 89622b9827SMartin Blumenstingl opp-hz = /bits/ 64 <408000000>; 90622b9827SMartin Blumenstingl opp-microvolt = <825000>; 91622b9827SMartin Blumenstingl }; 92622b9827SMartin Blumenstingl opp-504000000 { 93622b9827SMartin Blumenstingl opp-hz = /bits/ 64 <504000000>; 94622b9827SMartin Blumenstingl opp-microvolt = <825000>; 95622b9827SMartin Blumenstingl }; 96622b9827SMartin Blumenstingl opp-600000000 { 97622b9827SMartin Blumenstingl opp-hz = /bits/ 64 <600000000>; 98622b9827SMartin Blumenstingl opp-microvolt = <850000>; 99622b9827SMartin Blumenstingl }; 100622b9827SMartin Blumenstingl opp-720000000 { 101622b9827SMartin Blumenstingl opp-hz = /bits/ 64 <720000000>; 102622b9827SMartin Blumenstingl opp-microvolt = <850000>; 103622b9827SMartin Blumenstingl }; 104622b9827SMartin Blumenstingl opp-816000000 { 105622b9827SMartin Blumenstingl opp-hz = /bits/ 64 <816000000>; 106622b9827SMartin Blumenstingl opp-microvolt = <875000>; 107622b9827SMartin Blumenstingl }; 108622b9827SMartin Blumenstingl opp-1008000000 { 109622b9827SMartin Blumenstingl opp-hz = /bits/ 64 <1008000000>; 110622b9827SMartin Blumenstingl opp-microvolt = <925000>; 111622b9827SMartin Blumenstingl }; 112622b9827SMartin Blumenstingl opp-1200000000 { 113622b9827SMartin Blumenstingl opp-hz = /bits/ 64 <1200000000>; 114622b9827SMartin Blumenstingl opp-microvolt = <975000>; 115622b9827SMartin Blumenstingl }; 116622b9827SMartin Blumenstingl opp-1416000000 { 117622b9827SMartin Blumenstingl opp-hz = /bits/ 64 <1416000000>; 118622b9827SMartin Blumenstingl opp-microvolt = <1025000>; 119622b9827SMartin Blumenstingl }; 120622b9827SMartin Blumenstingl opp-1608000000 { 121622b9827SMartin Blumenstingl opp-hz = /bits/ 64 <1608000000>; 122622b9827SMartin Blumenstingl opp-microvolt = <1100000>; 123622b9827SMartin Blumenstingl }; 124622b9827SMartin Blumenstingl opp-1800000000 { 125622b9827SMartin Blumenstingl status = "disabled"; 126622b9827SMartin Blumenstingl opp-hz = /bits/ 64 <1800000000>; 127622b9827SMartin Blumenstingl opp-microvolt = <1125000>; 128622b9827SMartin Blumenstingl }; 129622b9827SMartin Blumenstingl opp-1992000000 { 130622b9827SMartin Blumenstingl status = "disabled"; 131622b9827SMartin Blumenstingl opp-hz = /bits/ 64 <1992000000>; 132622b9827SMartin Blumenstingl opp-microvolt = <1150000>; 133aeff05a3SBeniamino Galvani }; 134aeff05a3SBeniamino Galvani }; 1358a7f0c52SMartin Blumenstingl 1365f441684SKrzysztof Kozlowski gpu_opp_table: opp-table-gpu { 1377d3f6b53SMartin Blumenstingl compatible = "operating-points-v2"; 1387d3f6b53SMartin Blumenstingl 139fe634a7aSMartin Blumenstingl opp-182142857 { 140fe634a7aSMartin Blumenstingl opp-hz = /bits/ 64 <182142857>; 1417d3f6b53SMartin Blumenstingl opp-microvolt = <1150000>; 1427d3f6b53SMartin Blumenstingl }; 1437d3f6b53SMartin Blumenstingl opp-318750000 { 1447d3f6b53SMartin Blumenstingl opp-hz = /bits/ 64 <318750000>; 1457d3f6b53SMartin Blumenstingl opp-microvolt = <1150000>; 1467d3f6b53SMartin Blumenstingl }; 1477d3f6b53SMartin Blumenstingl opp-425000000 { 1487d3f6b53SMartin Blumenstingl opp-hz = /bits/ 64 <425000000>; 1497d3f6b53SMartin Blumenstingl opp-microvolt = <1150000>; 1507d3f6b53SMartin Blumenstingl }; 1517d3f6b53SMartin Blumenstingl opp-510000000 { 1527d3f6b53SMartin Blumenstingl opp-hz = /bits/ 64 <510000000>; 1537d3f6b53SMartin Blumenstingl opp-microvolt = <1150000>; 1547d3f6b53SMartin Blumenstingl }; 1557d3f6b53SMartin Blumenstingl opp-637500000 { 1567d3f6b53SMartin Blumenstingl opp-hz = /bits/ 64 <637500000>; 1577d3f6b53SMartin Blumenstingl opp-microvolt = <1150000>; 1587d3f6b53SMartin Blumenstingl turbo-mode; 1597d3f6b53SMartin Blumenstingl }; 1607d3f6b53SMartin Blumenstingl }; 1617d3f6b53SMartin Blumenstingl 16217b66027SMartin Blumenstingl pmu { 16317b66027SMartin Blumenstingl compatible = "arm,cortex-a9-pmu"; 16417b66027SMartin Blumenstingl interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>, 16517b66027SMartin Blumenstingl <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>, 16617b66027SMartin Blumenstingl <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>, 16717b66027SMartin Blumenstingl <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>; 16817b66027SMartin Blumenstingl interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; 16917b66027SMartin Blumenstingl }; 17017b66027SMartin Blumenstingl 1718a7f0c52SMartin Blumenstingl reserved-memory { 1728a7f0c52SMartin Blumenstingl #address-cells = <1>; 1738a7f0c52SMartin Blumenstingl #size-cells = <1>; 1748a7f0c52SMartin Blumenstingl ranges; 1758a7f0c52SMartin Blumenstingl 1768a7f0c52SMartin Blumenstingl /* 2 MiB reserved for Hardware ROM Firmware? */ 1778a7f0c52SMartin Blumenstingl hwrom@0 { 1788a7f0c52SMartin Blumenstingl reg = <0x0 0x200000>; 1798a7f0c52SMartin Blumenstingl no-map; 1808a7f0c52SMartin Blumenstingl }; 1818a7f0c52SMartin Blumenstingl 1828a7f0c52SMartin Blumenstingl /* 1838a7f0c52SMartin Blumenstingl * 1 MiB reserved for the "ARM Power Firmware": this is ARM 1848a7f0c52SMartin Blumenstingl * code which is responsible for system suspend. It loads a 1858a7f0c52SMartin Blumenstingl * piece of ARC code ("arc_power" in the vendor u-boot tree) 1868a7f0c52SMartin Blumenstingl * into SRAM, executes that and shuts down the (last) ARM core. 1878a7f0c52SMartin Blumenstingl * The arc_power firmware then checks various wakeup sources 1888a7f0c52SMartin Blumenstingl * (IR remote receiver, HDMI CEC, WIFI and Bluetooth wakeup or 1898a7f0c52SMartin Blumenstingl * simply the power key) and re-starts the ARM core once it 1908a7f0c52SMartin Blumenstingl * detects a wakeup request. 1918a7f0c52SMartin Blumenstingl */ 1928a7f0c52SMartin Blumenstingl power-firmware@4f00000 { 1938a7f0c52SMartin Blumenstingl reg = <0x4f00000 0x100000>; 1948a7f0c52SMartin Blumenstingl no-map; 1958a7f0c52SMartin Blumenstingl }; 1968a7f0c52SMartin Blumenstingl }; 1977e22d728SMartin Blumenstingl 198ecdb744bSMartin Blumenstingl thermal-zones { 199285d2d64SNeil Armstrong soc-thermal { 200ecdb744bSMartin Blumenstingl polling-delay-passive = <250>; /* milliseconds */ 201ecdb744bSMartin Blumenstingl polling-delay = <1000>; /* milliseconds */ 202ecdb744bSMartin Blumenstingl thermal-sensors = <&thermal_sensor>; 203ecdb744bSMartin Blumenstingl 204ecdb744bSMartin Blumenstingl cooling-maps { 205ecdb744bSMartin Blumenstingl map0 { 206ecdb744bSMartin Blumenstingl trip = <&soc_passive>; 207ecdb744bSMartin Blumenstingl cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 208ecdb744bSMartin Blumenstingl <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 209ecdb744bSMartin Blumenstingl <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 210ecdb744bSMartin Blumenstingl <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 211ecdb744bSMartin Blumenstingl <&mali THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 212ecdb744bSMartin Blumenstingl }; 213ecdb744bSMartin Blumenstingl 214ecdb744bSMartin Blumenstingl map1 { 215ecdb744bSMartin Blumenstingl trip = <&soc_hot>; 216ecdb744bSMartin Blumenstingl cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 217ecdb744bSMartin Blumenstingl <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 218ecdb744bSMartin Blumenstingl <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 219ecdb744bSMartin Blumenstingl <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 220ecdb744bSMartin Blumenstingl <&mali THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 221ecdb744bSMartin Blumenstingl }; 222ecdb744bSMartin Blumenstingl }; 223ecdb744bSMartin Blumenstingl 224ecdb744bSMartin Blumenstingl trips { 225ecdb744bSMartin Blumenstingl soc_passive: soc-passive { 226ecdb744bSMartin Blumenstingl temperature = <80000>; /* millicelsius */ 227ecdb744bSMartin Blumenstingl hysteresis = <2000>; /* millicelsius */ 228ecdb744bSMartin Blumenstingl type = "passive"; 229ecdb744bSMartin Blumenstingl }; 230ecdb744bSMartin Blumenstingl 231ecdb744bSMartin Blumenstingl soc_hot: soc-hot { 232ecdb744bSMartin Blumenstingl temperature = <90000>; /* millicelsius */ 233ecdb744bSMartin Blumenstingl hysteresis = <2000>; /* millicelsius */ 234ecdb744bSMartin Blumenstingl type = "hot"; 235ecdb744bSMartin Blumenstingl }; 236ecdb744bSMartin Blumenstingl 237ecdb744bSMartin Blumenstingl soc_critical: soc-critical { 238ecdb744bSMartin Blumenstingl temperature = <110000>; /* millicelsius */ 239ecdb744bSMartin Blumenstingl hysteresis = <2000>; /* millicelsius */ 240ecdb744bSMartin Blumenstingl type = "critical"; 241ecdb744bSMartin Blumenstingl }; 242ecdb744bSMartin Blumenstingl }; 243ecdb744bSMartin Blumenstingl }; 244ecdb744bSMartin Blumenstingl }; 245ecdb744bSMartin Blumenstingl 24647b58182SMartin Blumenstingl mmcbus: bus@c8000000 { 24747b58182SMartin Blumenstingl compatible = "simple-bus"; 24847b58182SMartin Blumenstingl reg = <0xc8000000 0x8000>; 24947b58182SMartin Blumenstingl #address-cells = <1>; 25047b58182SMartin Blumenstingl #size-cells = <1>; 25147b58182SMartin Blumenstingl ranges = <0x0 0xc8000000 0x8000>; 25247b58182SMartin Blumenstingl 253c4ac5c37SMartin Blumenstingl ddr_clkc: clock-controller@400 { 254c4ac5c37SMartin Blumenstingl compatible = "amlogic,meson8-ddr-clkc"; 255c4ac5c37SMartin Blumenstingl reg = <0x400 0x20>; 256c4ac5c37SMartin Blumenstingl clocks = <&xtal>; 257c4ac5c37SMartin Blumenstingl clock-names = "xtal"; 258c4ac5c37SMartin Blumenstingl #clock-cells = <1>; 259c4ac5c37SMartin Blumenstingl }; 260c4ac5c37SMartin Blumenstingl 26147b58182SMartin Blumenstingl dmcbus: bus@6000 { 26247b58182SMartin Blumenstingl compatible = "simple-bus"; 26347b58182SMartin Blumenstingl reg = <0x6000 0x400>; 26447b58182SMartin Blumenstingl #address-cells = <1>; 26547b58182SMartin Blumenstingl #size-cells = <1>; 26647b58182SMartin Blumenstingl ranges = <0x0 0x6000 0x400>; 26747b58182SMartin Blumenstingl 26847b58182SMartin Blumenstingl canvas: video-lut@20 { 26947b58182SMartin Blumenstingl compatible = "amlogic,meson8-canvas", 27047b58182SMartin Blumenstingl "amlogic,canvas"; 27147b58182SMartin Blumenstingl reg = <0x20 0x14>; 27247b58182SMartin Blumenstingl }; 27347b58182SMartin Blumenstingl }; 27447b58182SMartin Blumenstingl }; 27547b58182SMartin Blumenstingl 2767e22d728SMartin Blumenstingl apb: bus@d0000000 { 2777e22d728SMartin Blumenstingl compatible = "simple-bus"; 2787e22d728SMartin Blumenstingl reg = <0xd0000000 0x200000>; 2797e22d728SMartin Blumenstingl #address-cells = <1>; 2807e22d728SMartin Blumenstingl #size-cells = <1>; 2817e22d728SMartin Blumenstingl ranges = <0x0 0xd0000000 0x200000>; 2827d3f6b53SMartin Blumenstingl 2837d3f6b53SMartin Blumenstingl mali: gpu@c0000 { 2847d3f6b53SMartin Blumenstingl compatible = "amlogic,meson8-mali", "arm,mali-450"; 2857d3f6b53SMartin Blumenstingl reg = <0xc0000 0x40000>; 2867d3f6b53SMartin Blumenstingl interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, 2877d3f6b53SMartin Blumenstingl <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>, 2887d3f6b53SMartin Blumenstingl <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>, 2897d3f6b53SMartin Blumenstingl <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>, 2907d3f6b53SMartin Blumenstingl <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>, 2917d3f6b53SMartin Blumenstingl <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>, 2927d3f6b53SMartin Blumenstingl <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>, 2937d3f6b53SMartin Blumenstingl <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>, 2947d3f6b53SMartin Blumenstingl <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>, 2957d3f6b53SMartin Blumenstingl <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>, 2967d3f6b53SMartin Blumenstingl <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>, 2977d3f6b53SMartin Blumenstingl <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>, 2987d3f6b53SMartin Blumenstingl <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>, 2997d3f6b53SMartin Blumenstingl <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>, 3007d3f6b53SMartin Blumenstingl <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>, 3017d3f6b53SMartin Blumenstingl <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>; 3027d3f6b53SMartin Blumenstingl interrupt-names = "gp", "gpmmu", "pp", "pmu", 3037d3f6b53SMartin Blumenstingl "pp0", "ppmmu0", "pp1", "ppmmu1", 3047d3f6b53SMartin Blumenstingl "pp2", "ppmmu2", "pp4", "ppmmu4", 3057d3f6b53SMartin Blumenstingl "pp5", "ppmmu5", "pp6", "ppmmu6"; 3067d3f6b53SMartin Blumenstingl resets = <&reset RESET_MALI>; 30744cf630bSMartin Blumenstingl 3087d3f6b53SMartin Blumenstingl clocks = <&clkc CLKID_CLK81>, <&clkc CLKID_MALI>; 3097d3f6b53SMartin Blumenstingl clock-names = "bus", "core"; 31044cf630bSMartin Blumenstingl 31144cf630bSMartin Blumenstingl assigned-clocks = <&clkc CLKID_MALI>; 31244cf630bSMartin Blumenstingl assigned-clock-rates = <318750000>; 31344cf630bSMartin Blumenstingl 3147d3f6b53SMartin Blumenstingl operating-points-v2 = <&gpu_opp_table>; 315ecdb744bSMartin Blumenstingl #cooling-cells = <2>; /* min followed by max */ 3167d3f6b53SMartin Blumenstingl }; 3177e22d728SMartin Blumenstingl }; 318200a575bSMartin Blumenstingl}; /* end of / */ 319200a575bSMartin Blumenstingl 3204f8ca13dSMartin Blumenstingl&aiu { 3214f8ca13dSMartin Blumenstingl compatible = "amlogic,aiu-meson8", "amlogic,aiu"; 3224f8ca13dSMartin Blumenstingl clocks = <&clkc CLKID_AIU_GLUE>, 3234f8ca13dSMartin Blumenstingl <&clkc CLKID_I2S_OUT>, 3244f8ca13dSMartin Blumenstingl <&clkc CLKID_AOCLK_GATE>, 3254f8ca13dSMartin Blumenstingl <&clkc CLKID_CTS_AMCLK>, 3264f8ca13dSMartin Blumenstingl <&clkc CLKID_MIXER_IFACE>, 3274f8ca13dSMartin Blumenstingl <&clkc CLKID_IEC958>, 3284f8ca13dSMartin Blumenstingl <&clkc CLKID_IEC958_GATE>, 3294f8ca13dSMartin Blumenstingl <&clkc CLKID_CTS_MCLK_I958>, 3304f8ca13dSMartin Blumenstingl <&clkc CLKID_CTS_I958>; 3314f8ca13dSMartin Blumenstingl clock-names = "pclk", 3324f8ca13dSMartin Blumenstingl "i2s_pclk", 3334f8ca13dSMartin Blumenstingl "i2s_aoclk", 3344f8ca13dSMartin Blumenstingl "i2s_mclk", 3354f8ca13dSMartin Blumenstingl "i2s_mixer", 3364f8ca13dSMartin Blumenstingl "spdif_pclk", 3374f8ca13dSMartin Blumenstingl "spdif_aoclk", 3384f8ca13dSMartin Blumenstingl "spdif_mclk", 3394f8ca13dSMartin Blumenstingl "spdif_mclk_sel"; 3404f8ca13dSMartin Blumenstingl resets = <&reset RESET_AIU>; 3414f8ca13dSMartin Blumenstingl}; 3424f8ca13dSMartin Blumenstingl 343200a575bSMartin Blumenstingl&aobus { 3444a5a2711SMartin Blumenstingl pmu: pmu@e0 { 3454a5a2711SMartin Blumenstingl compatible = "amlogic,meson8-pmu", "syscon"; 34646c9585eSMartin Blumenstingl reg = <0xe0 0x18>; 3474a5a2711SMartin Blumenstingl }; 3484a5a2711SMartin Blumenstingl 3492b901e9eSNeil Armstrong pinctrl_aobus: pinctrl@14 { 350200a575bSMartin Blumenstingl compatible = "amlogic,meson8-aobus-pinctrl"; 351d9fea88cSBeniamino Galvani #address-cells = <1>; 352d9fea88cSBeniamino Galvani #size-cells = <1>; 3532b901e9eSNeil Armstrong ranges = <0x0 0x14 0x1c>; 354d9fea88cSBeniamino Galvani 3552b901e9eSNeil Armstrong gpio_ao: bank@0 { 3562b901e9eSNeil Armstrong reg = <0x0 0x4>, 3572b901e9eSNeil Armstrong <0x18 0x4>, 3582b901e9eSNeil Armstrong <0x10 0x8>; 359200a575bSMartin Blumenstingl reg-names = "mux", "pull", "gpio"; 360200a575bSMartin Blumenstingl gpio-controller; 361200a575bSMartin Blumenstingl #gpio-cells = <2>; 362677c432cSJerome Brunet gpio-ranges = <&pinctrl_aobus 0 0 16>; 363200a575bSMartin Blumenstingl }; 364200a575bSMartin Blumenstingl 3654f8ca13dSMartin Blumenstingl i2s_am_clk_pins: i2s-am-clk-out { 3664f8ca13dSMartin Blumenstingl mux { 3674f8ca13dSMartin Blumenstingl groups = "i2s_am_clk_out_ao"; 3684f8ca13dSMartin Blumenstingl function = "i2s_ao"; 3694f8ca13dSMartin Blumenstingl bias-disable; 3704f8ca13dSMartin Blumenstingl }; 3714f8ca13dSMartin Blumenstingl }; 3724f8ca13dSMartin Blumenstingl 3734f8ca13dSMartin Blumenstingl i2s_out_ao_clk_pins: i2s-ao-clk-out { 3744f8ca13dSMartin Blumenstingl mux { 3754f8ca13dSMartin Blumenstingl groups = "i2s_ao_clk_out_ao"; 3764f8ca13dSMartin Blumenstingl function = "i2s_ao"; 3774f8ca13dSMartin Blumenstingl bias-disable; 3784f8ca13dSMartin Blumenstingl }; 3794f8ca13dSMartin Blumenstingl }; 3804f8ca13dSMartin Blumenstingl 3814f8ca13dSMartin Blumenstingl i2s_out_lr_clk_pins: i2s-lr-clk-out { 3824f8ca13dSMartin Blumenstingl mux { 3834f8ca13dSMartin Blumenstingl groups = "i2s_lr_clk_out_ao"; 3844f8ca13dSMartin Blumenstingl function = "i2s_ao"; 3854f8ca13dSMartin Blumenstingl bias-disable; 3864f8ca13dSMartin Blumenstingl }; 3874f8ca13dSMartin Blumenstingl }; 3884f8ca13dSMartin Blumenstingl 3894f8ca13dSMartin Blumenstingl i2s_out_ch01_ao_pins: i2s-out-ch01 { 3904f8ca13dSMartin Blumenstingl mux { 3914f8ca13dSMartin Blumenstingl groups = "i2s_out_ch01_ao"; 3924f8ca13dSMartin Blumenstingl function = "i2s_ao"; 3934f8ca13dSMartin Blumenstingl bias-disable; 3944f8ca13dSMartin Blumenstingl }; 3954f8ca13dSMartin Blumenstingl }; 3964f8ca13dSMartin Blumenstingl 397200a575bSMartin Blumenstingl uart_ao_a_pins: uart_ao_a { 398200a575bSMartin Blumenstingl mux { 399200a575bSMartin Blumenstingl groups = "uart_tx_ao_a", "uart_rx_ao_a"; 400200a575bSMartin Blumenstingl function = "uart_ao"; 4013fa57cb0SMartin Blumenstingl bias-pull-up; 402200a575bSMartin Blumenstingl }; 403200a575bSMartin Blumenstingl }; 404200a575bSMartin Blumenstingl 405200a575bSMartin Blumenstingl i2c_ao_pins: i2c_mst_ao { 406200a575bSMartin Blumenstingl mux { 407200a575bSMartin Blumenstingl groups = "i2c_mst_sck_ao", "i2c_mst_sda_ao"; 408200a575bSMartin Blumenstingl function = "i2c_mst_ao"; 4097e26335bSJerome Brunet bias-disable; 410200a575bSMartin Blumenstingl }; 411200a575bSMartin Blumenstingl }; 41279eb80b7SMartin Blumenstingl 41379eb80b7SMartin Blumenstingl ir_recv_pins: remote { 41479eb80b7SMartin Blumenstingl mux { 41579eb80b7SMartin Blumenstingl groups = "remote_input"; 41679eb80b7SMartin Blumenstingl function = "remote"; 4177e26335bSJerome Brunet bias-disable; 41879eb80b7SMartin Blumenstingl }; 41979eb80b7SMartin Blumenstingl }; 420192ec775SMartin Blumenstingl 421192ec775SMartin Blumenstingl pwm_f_ao_pins: pwm-f-ao { 422192ec775SMartin Blumenstingl mux { 423192ec775SMartin Blumenstingl groups = "pwm_f_ao"; 424192ec775SMartin Blumenstingl function = "pwm_f_ao"; 4257e26335bSJerome Brunet bias-disable; 426192ec775SMartin Blumenstingl }; 427192ec775SMartin Blumenstingl }; 428200a575bSMartin Blumenstingl }; 429200a575bSMartin Blumenstingl}; 430200a575bSMartin Blumenstingl 431fb606cdaSMartin Blumenstingl&ao_arc_rproc { 432fb606cdaSMartin Blumenstingl compatible = "amlogic,meson8-ao-arc", "amlogic,meson-mx-ao-arc"; 433fb606cdaSMartin Blumenstingl amlogic,secbus2 = <&secbus2>; 434fb606cdaSMartin Blumenstingl sram = <&ao_arc_sram>; 435fb606cdaSMartin Blumenstingl resets = <&reset RESET_MEDIA_CPU>; 436fb606cdaSMartin Blumenstingl clocks = <&clkc CLKID_AO_MEDIA_CPU>; 437fb606cdaSMartin Blumenstingl}; 438fb606cdaSMartin Blumenstingl 439200a575bSMartin Blumenstingl&cbus { 440e3087187SMartin Blumenstingl reset: reset-controller@4404 { 441e3087187SMartin Blumenstingl compatible = "amlogic,meson8b-reset"; 442e3087187SMartin Blumenstingl reg = <0x4404 0x9c>; 443e3087187SMartin Blumenstingl #reset-cells = <1>; 444e3087187SMartin Blumenstingl }; 445e3087187SMartin Blumenstingl 446bd835d53SMartin Blumenstingl analog_top: analog-top@81a8 { 447bd835d53SMartin Blumenstingl compatible = "amlogic,meson8-analog-top", "syscon"; 448bd835d53SMartin Blumenstingl reg = <0x81a8 0x14>; 449bd835d53SMartin Blumenstingl }; 450bd835d53SMartin Blumenstingl 45143d91c58SMartin Blumenstingl pwm_ef: pwm@86c0 { 452802cff46SMartin Blumenstingl compatible = "amlogic,meson8-pwm-v2"; 453802cff46SMartin Blumenstingl clocks = <&xtal>, 4543409f843SMartin Blumenstingl <0>, /* unknown/untested, the datasheet calls it "Video PLL" */ 455802cff46SMartin Blumenstingl <&clkc CLKID_FCLK_DIV4>, 456802cff46SMartin Blumenstingl <&clkc CLKID_FCLK_DIV3>; 45743d91c58SMartin Blumenstingl reg = <0x86c0 0x10>; 45843d91c58SMartin Blumenstingl #pwm-cells = <3>; 45943d91c58SMartin Blumenstingl status = "disabled"; 46043d91c58SMartin Blumenstingl }; 46143d91c58SMartin Blumenstingl 462b6eac0d0SMartin Blumenstingl clock-measure@8758 { 463b6eac0d0SMartin Blumenstingl compatible = "amlogic,meson8-clk-measure"; 464b6eac0d0SMartin Blumenstingl reg = <0x8758 0x1c>; 465b6eac0d0SMartin Blumenstingl }; 466b6eac0d0SMartin Blumenstingl 4672b901e9eSNeil Armstrong pinctrl_cbus: pinctrl@8030 { 468200a575bSMartin Blumenstingl compatible = "amlogic,meson8-cbus-pinctrl"; 469200a575bSMartin Blumenstingl #address-cells = <1>; 470200a575bSMartin Blumenstingl #size-cells = <1>; 4712b901e9eSNeil Armstrong ranges = <0x0 0x8030 0x108>; 472200a575bSMartin Blumenstingl 4732b901e9eSNeil Armstrong gpio: bank@80 { 4742b901e9eSNeil Armstrong reg = <0x80 0x28>, 4752b901e9eSNeil Armstrong <0xb8 0x18>, 4762b901e9eSNeil Armstrong <0xf0 0x18>, 4772b901e9eSNeil Armstrong <0x00 0x30>; 478d9fea88cSBeniamino Galvani reg-names = "mux", "pull", "pull-enable", "gpio"; 479d9fea88cSBeniamino Galvani gpio-controller; 480d9fea88cSBeniamino Galvani #gpio-cells = <2>; 48190f349adSNeil Armstrong gpio-ranges = <&pinctrl_cbus 0 0 120>; 482d9fea88cSBeniamino Galvani }; 483d9fea88cSBeniamino Galvani 484*dac92875SJ. Neuschäfer i2c_b_pins: i2c-b { 485*dac92875SJ. Neuschäfer mux { 486*dac92875SJ. Neuschäfer groups = "i2c_sda_b", "i2c_sck_b"; 487*dac92875SJ. Neuschäfer function = "i2c_b"; 488*dac92875SJ. Neuschäfer bias-disable; 489*dac92875SJ. Neuschäfer }; 490*dac92875SJ. Neuschäfer }; 491*dac92875SJ. Neuschäfer 492d42ce5a9SMartin Blumenstingl sd_a_pins: sd-a { 493d42ce5a9SMartin Blumenstingl mux { 494d42ce5a9SMartin Blumenstingl groups = "sd_d0_a", "sd_d1_a", "sd_d2_a", 495d42ce5a9SMartin Blumenstingl "sd_d3_a", "sd_clk_a", "sd_cmd_a"; 496d42ce5a9SMartin Blumenstingl function = "sd_a"; 4977e26335bSJerome Brunet bias-disable; 498d42ce5a9SMartin Blumenstingl }; 499d42ce5a9SMartin Blumenstingl }; 500d42ce5a9SMartin Blumenstingl 501d42ce5a9SMartin Blumenstingl sd_b_pins: sd-b { 502d42ce5a9SMartin Blumenstingl mux { 503d42ce5a9SMartin Blumenstingl groups = "sd_d0_b", "sd_d1_b", "sd_d2_b", 504d42ce5a9SMartin Blumenstingl "sd_d3_b", "sd_clk_b", "sd_cmd_b"; 505d42ce5a9SMartin Blumenstingl function = "sd_b"; 5067e26335bSJerome Brunet bias-disable; 507d42ce5a9SMartin Blumenstingl }; 508d42ce5a9SMartin Blumenstingl }; 509d42ce5a9SMartin Blumenstingl 510d42ce5a9SMartin Blumenstingl sd_c_pins: sd-c { 511d42ce5a9SMartin Blumenstingl mux { 512d42ce5a9SMartin Blumenstingl groups = "sd_d0_c", "sd_d1_c", "sd_d2_c", 513d42ce5a9SMartin Blumenstingl "sd_d3_c", "sd_clk_c", "sd_cmd_c"; 514d42ce5a9SMartin Blumenstingl function = "sd_c"; 5157e26335bSJerome Brunet bias-disable; 516d42ce5a9SMartin Blumenstingl }; 517d42ce5a9SMartin Blumenstingl }; 518d42ce5a9SMartin Blumenstingl 519ef8474d5SMartin Blumenstingl sdxc_a_pins: sdxc-a { 520ef8474d5SMartin Blumenstingl mux { 521ef8474d5SMartin Blumenstingl groups = "sdxc_d0_a", "sdxc_d13_a", 522ef8474d5SMartin Blumenstingl "sdxc_clk_a", "sdxc_cmd_a"; 523ef8474d5SMartin Blumenstingl function = "sdxc_a"; 524ef8474d5SMartin Blumenstingl bias-pull-up; 525ef8474d5SMartin Blumenstingl }; 526ef8474d5SMartin Blumenstingl }; 527ef8474d5SMartin Blumenstingl 52873106f75SMartin Blumenstingl sdxc_b_pins: sdxc-b { 52973106f75SMartin Blumenstingl mux { 53073106f75SMartin Blumenstingl groups = "sdxc_d0_b", "sdxc_d13_b", 53173106f75SMartin Blumenstingl "sdxc_clk_b", "sdxc_cmd_b"; 53273106f75SMartin Blumenstingl function = "sdxc_b"; 53373106f75SMartin Blumenstingl bias-pull-up; 53473106f75SMartin Blumenstingl }; 53573106f75SMartin Blumenstingl }; 53673106f75SMartin Blumenstingl 537*dac92875SJ. Neuschäfer sdxc_c_pins: sdxc-c { 538*dac92875SJ. Neuschäfer mux { 539*dac92875SJ. Neuschäfer groups = "sdxc_d0_c", "sdxc_d13_c", 540*dac92875SJ. Neuschäfer "sdxc_clk_c", "sdxc_cmd_c", 541*dac92875SJ. Neuschäfer "sdxc_d47_c"; 542*dac92875SJ. Neuschäfer function = "sdxc_c"; 543*dac92875SJ. Neuschäfer bias-pull-up; 544*dac92875SJ. Neuschäfer }; 545*dac92875SJ. Neuschäfer }; 546*dac92875SJ. Neuschäfer 5474f8ca13dSMartin Blumenstingl spdif_out_pins: spdif-out { 5484f8ca13dSMartin Blumenstingl mux { 5494f8ca13dSMartin Blumenstingl groups = "spdif_out"; 5504f8ca13dSMartin Blumenstingl function = "spdif"; 5514f8ca13dSMartin Blumenstingl bias-disable; 5524f8ca13dSMartin Blumenstingl }; 5534f8ca13dSMartin Blumenstingl }; 5544f8ca13dSMartin Blumenstingl 555d9fea88cSBeniamino Galvani spi_nor_pins: nor { 556d9fea88cSBeniamino Galvani mux { 557d9fea88cSBeniamino Galvani groups = "nor_d", "nor_q", "nor_c", "nor_cs"; 558d9fea88cSBeniamino Galvani function = "nor"; 5597e26335bSJerome Brunet bias-disable; 560d9fea88cSBeniamino Galvani }; 561d9fea88cSBeniamino Galvani }; 562d9fea88cSBeniamino Galvani 563d9fea88cSBeniamino Galvani eth_pins: ethernet { 564d9fea88cSBeniamino Galvani mux { 565d9fea88cSBeniamino Galvani groups = "eth_tx_clk_50m", "eth_tx_en", 566d9fea88cSBeniamino Galvani "eth_txd1", "eth_txd0", 567d9fea88cSBeniamino Galvani "eth_rx_clk_in", "eth_rx_dv", 568d9fea88cSBeniamino Galvani "eth_rxd1", "eth_rxd0", "eth_mdio", 569d9fea88cSBeniamino Galvani "eth_mdc"; 570d9fea88cSBeniamino Galvani function = "ethernet"; 5717e26335bSJerome Brunet bias-disable; 572d9fea88cSBeniamino Galvani }; 573d9fea88cSBeniamino Galvani }; 574192ec775SMartin Blumenstingl 575192ec775SMartin Blumenstingl pwm_e_pins: pwm-e { 576192ec775SMartin Blumenstingl mux { 577192ec775SMartin Blumenstingl groups = "pwm_e"; 578192ec775SMartin Blumenstingl function = "pwm_e"; 5797e26335bSJerome Brunet bias-disable; 580192ec775SMartin Blumenstingl }; 581192ec775SMartin Blumenstingl }; 582e981e459SMartin Blumenstingl 583e981e459SMartin Blumenstingl uart_a1_pins: uart-a1 { 584e981e459SMartin Blumenstingl mux { 585e981e459SMartin Blumenstingl groups = "uart_tx_a1", 586e981e459SMartin Blumenstingl "uart_rx_a1"; 587e981e459SMartin Blumenstingl function = "uart_a"; 5883fa57cb0SMartin Blumenstingl bias-pull-up; 589e981e459SMartin Blumenstingl }; 590e981e459SMartin Blumenstingl }; 591e981e459SMartin Blumenstingl 592e981e459SMartin Blumenstingl uart_a1_cts_rts_pins: uart-a1-cts-rts { 593e981e459SMartin Blumenstingl mux { 594e981e459SMartin Blumenstingl groups = "uart_cts_a1", 595e981e459SMartin Blumenstingl "uart_rts_a1"; 596e981e459SMartin Blumenstingl function = "uart_a"; 5977e26335bSJerome Brunet bias-disable; 598e981e459SMartin Blumenstingl }; 599e981e459SMartin Blumenstingl }; 6004ca4a633SMartin Blumenstingl 6014ca4a633SMartin Blumenstingl xtal_32k_out_pins: xtal-32k-out { 6024ca4a633SMartin Blumenstingl mux { 6034ca4a633SMartin Blumenstingl groups = "xtal_32k_out"; 6044ca4a633SMartin Blumenstingl function = "xtal"; 6054ca4a633SMartin Blumenstingl bias-disable; 6064ca4a633SMartin Blumenstingl }; 6074ca4a633SMartin Blumenstingl }; 608d9fea88cSBeniamino Galvani }; 609b60e1157SCarlo Caione}; 610b60e1157SCarlo Caione 6114a5a2711SMartin Blumenstingl&ahb_sram { 612e1d42e11SNeil Armstrong ao_arc_sram: aoarc-sram@0 { 613fb606cdaSMartin Blumenstingl compatible = "amlogic,meson8-ao-arc-sram"; 614fb606cdaSMartin Blumenstingl reg = <0x0 0x8000>; 615fb606cdaSMartin Blumenstingl pool; 616fb606cdaSMartin Blumenstingl }; 617fb606cdaSMartin Blumenstingl 6184a5a2711SMartin Blumenstingl smp-sram@1ff80 { 6194a5a2711SMartin Blumenstingl compatible = "amlogic,meson8-smp-sram"; 6204a5a2711SMartin Blumenstingl reg = <0x1ff80 0x8>; 6214a5a2711SMartin Blumenstingl }; 6224a5a2711SMartin Blumenstingl}; 6234a5a2711SMartin Blumenstingl 6242cb51a8dSMartin Blumenstingl&efuse { 6252cb51a8dSMartin Blumenstingl compatible = "amlogic,meson8-efuse"; 6262cb51a8dSMartin Blumenstingl clocks = <&clkc CLKID_EFUSE>; 6272cb51a8dSMartin Blumenstingl clock-names = "core"; 628f4c6e8e2SMartin Blumenstingl 629f4c6e8e2SMartin Blumenstingl temperature_calib: calib@1f4 { 630f4c6e8e2SMartin Blumenstingl /* only the upper two bytes are relevant */ 631f4c6e8e2SMartin Blumenstingl reg = <0x1f4 0x4>; 632f4c6e8e2SMartin Blumenstingl }; 6332cb51a8dSMartin Blumenstingl}; 6342cb51a8dSMartin Blumenstingl 635200a575bSMartin Blumenstinglðmac { 636f28d4bdbSMartin Blumenstingl clocks = <&clkc CLKID_ETH>; 637200a575bSMartin Blumenstingl clock-names = "stmmaceth"; 638aecc72b1SMartin Blumenstingl 639aecc72b1SMartin Blumenstingl power-domains = <&pwrc PWRC_MESON8_ETHERNET_MEM_ID>; 640b60e1157SCarlo Caione}; 641b60e1157SCarlo Caione 64259e45c69SMartin Blumenstingl&gpio_intc { 64359e45c69SMartin Blumenstingl compatible = "amlogic,meson8-gpio-intc", "amlogic,meson-gpio-intc"; 64459e45c69SMartin Blumenstingl status = "okay"; 64559e45c69SMartin Blumenstingl}; 64659e45c69SMartin Blumenstingl 647b6db3936SMartin Blumenstingl&hhi { 648b6db3936SMartin Blumenstingl clkc: clock-controller { 649b6db3936SMartin Blumenstingl compatible = "amlogic,meson8-clkc"; 650c4ac5c37SMartin Blumenstingl clocks = <&xtal>, <&ddr_clkc DDR_CLKID_DDR_PLL>; 651c4ac5c37SMartin Blumenstingl clock-names = "xtal", "ddr_pll"; 652b6db3936SMartin Blumenstingl #clock-cells = <1>; 653b6db3936SMartin Blumenstingl #reset-cells = <1>; 654b6db3936SMartin Blumenstingl }; 655aecc72b1SMartin Blumenstingl 656aecc72b1SMartin Blumenstingl pwrc: power-controller { 657aecc72b1SMartin Blumenstingl compatible = "amlogic,meson8-pwrc"; 658aecc72b1SMartin Blumenstingl #power-domain-cells = <1>; 659aecc72b1SMartin Blumenstingl amlogic,ao-sysctrl = <&pmu>; 660aecc72b1SMartin Blumenstingl clocks = <&clkc CLKID_VPU>; 661aecc72b1SMartin Blumenstingl clock-names = "vpu"; 662aecc72b1SMartin Blumenstingl assigned-clocks = <&clkc CLKID_VPU>; 663aecc72b1SMartin Blumenstingl assigned-clock-rates = <364285714>; 664aecc72b1SMartin Blumenstingl }; 665b6db3936SMartin Blumenstingl}; 666b6db3936SMartin Blumenstingl 667a35910d3SMartin Blumenstingl&hwrng { 668a35910d3SMartin Blumenstingl clocks = <&clkc CLKID_RNG0>; 669a35910d3SMartin Blumenstingl clock-names = "core"; 670a35910d3SMartin Blumenstingl}; 671a35910d3SMartin Blumenstingl 672200a575bSMartin Blumenstingl&i2c_AO { 6732c323c43SMartin Blumenstingl clocks = <&clkc CLKID_CLK81>; 674b60e1157SCarlo Caione}; 675200a575bSMartin Blumenstingl 676200a575bSMartin Blumenstingl&i2c_A { 6772c323c43SMartin Blumenstingl clocks = <&clkc CLKID_CLK81>; 678b60e1157SCarlo Caione}; 679200a575bSMartin Blumenstingl 680200a575bSMartin Blumenstingl&i2c_B { 6812c323c43SMartin Blumenstingl clocks = <&clkc CLKID_CLK81>; 682b60e1157SCarlo Caione}; 683200a575bSMartin Blumenstingl 684bbe5b23dSCarlo Caione&L2 { 685bbe5b23dSCarlo Caione arm,data-latency = <3 3 3>; 686bbe5b23dSCarlo Caione arm,tag-latency = <2 2 2>; 687bbe5b23dSCarlo Caione arm,filter-ranges = <0x100000 0xc0000000>; 6886844e968SMartin Blumenstingl prefetch-data = <1>; 6896844e968SMartin Blumenstingl prefetch-instr = <1>; 69012cdc236SMartin Blumenstingl arm,prefetch-offset = <7>; 69112cdc236SMartin Blumenstingl arm,double-linefill = <1>; 69212cdc236SMartin Blumenstingl arm,prefetch-drop = <1>; 6936844e968SMartin Blumenstingl arm,shared-override; 694bbe5b23dSCarlo Caione}; 695bbe5b23dSCarlo Caione 696e8c276d9SMartin Blumenstingl&periph { 697e8c276d9SMartin Blumenstingl scu@0 { 698e8c276d9SMartin Blumenstingl compatible = "arm,cortex-a9-scu"; 699e8c276d9SMartin Blumenstingl reg = <0x0 0x100>; 700e8c276d9SMartin Blumenstingl }; 7011124d790SMartin Blumenstingl 7022710e8d2SMartin Blumenstingl timer@200 { 7032710e8d2SMartin Blumenstingl compatible = "arm,cortex-a9-global-timer"; 7042710e8d2SMartin Blumenstingl reg = <0x200 0x20>; 7052710e8d2SMartin Blumenstingl interrupts = <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>; 7062710e8d2SMartin Blumenstingl clocks = <&clkc CLKID_PERIPH>; 7072710e8d2SMartin Blumenstingl 7082710e8d2SMartin Blumenstingl /* 7092710e8d2SMartin Blumenstingl * the arm_global_timer driver currently does not handle clock 7102710e8d2SMartin Blumenstingl * rate changes. Keep it disabled for now. 7112710e8d2SMartin Blumenstingl */ 7122710e8d2SMartin Blumenstingl status = "disabled"; 7132710e8d2SMartin Blumenstingl }; 7142710e8d2SMartin Blumenstingl 7151124d790SMartin Blumenstingl timer@600 { 7161124d790SMartin Blumenstingl compatible = "arm,cortex-a9-twd-timer"; 7171124d790SMartin Blumenstingl reg = <0x600 0x20>; 7181124d790SMartin Blumenstingl interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>; 7191124d790SMartin Blumenstingl clocks = <&clkc CLKID_PERIPH>; 7201124d790SMartin Blumenstingl }; 721e8c276d9SMartin Blumenstingl}; 722e8c276d9SMartin Blumenstingl 72343d91c58SMartin Blumenstingl&pwm_ab { 724802cff46SMartin Blumenstingl compatible = "amlogic,meson8-pwm-v2"; 725802cff46SMartin Blumenstingl clocks = <&xtal>, 7263409f843SMartin Blumenstingl <0>, /* unknown/untested, the datasheet calls it "Video PLL" */ 727802cff46SMartin Blumenstingl <&clkc CLKID_FCLK_DIV4>, 728802cff46SMartin Blumenstingl <&clkc CLKID_FCLK_DIV3>; 72943d91c58SMartin Blumenstingl}; 73043d91c58SMartin Blumenstingl 73143d91c58SMartin Blumenstingl&pwm_cd { 732802cff46SMartin Blumenstingl compatible = "amlogic,meson8-pwm-v2"; 733802cff46SMartin Blumenstingl clocks = <&xtal>, 7343409f843SMartin Blumenstingl <0>, /* unknown/untested, the datasheet calls it "Video PLL" */ 735802cff46SMartin Blumenstingl <&clkc CLKID_FCLK_DIV4>, 736802cff46SMartin Blumenstingl <&clkc CLKID_FCLK_DIV3>; 73743d91c58SMartin Blumenstingl}; 73843d91c58SMartin Blumenstingl 739f6eb973dSMartin Blumenstingl&rtc { 740f6eb973dSMartin Blumenstingl compatible = "amlogic,meson8-rtc"; 741f6eb973dSMartin Blumenstingl resets = <&reset RESET_RTC>; 742f6eb973dSMartin Blumenstingl}; 743f6eb973dSMartin Blumenstingl 744a39a3b9fSMartin Blumenstingl&saradc { 745a39a3b9fSMartin Blumenstingl compatible = "amlogic,meson8-saradc", "amlogic,meson-saradc"; 746630ea310SMartin Blumenstingl clocks = <&xtal>, <&clkc CLKID_SAR_ADC>; 747b9b9db02SXingyu Chen clock-names = "clkin", "core"; 748f4c6e8e2SMartin Blumenstingl amlogic,hhi-sysctrl = <&hhi>; 749f4c6e8e2SMartin Blumenstingl nvmem-cells = <&temperature_calib>; 750f4c6e8e2SMartin Blumenstingl nvmem-cell-names = "temperature_calib"; 751a39a3b9fSMartin Blumenstingl}; 752a39a3b9fSMartin Blumenstingl 75373106f75SMartin Blumenstingl&sdhc { 75473106f75SMartin Blumenstingl compatible = "amlogic,meson8-sdhc", "amlogic,meson-mx-sdhc"; 75573106f75SMartin Blumenstingl clocks = <&xtal>, 75673106f75SMartin Blumenstingl <&clkc CLKID_FCLK_DIV4>, 75773106f75SMartin Blumenstingl <&clkc CLKID_FCLK_DIV3>, 75873106f75SMartin Blumenstingl <&clkc CLKID_FCLK_DIV5>, 75973106f75SMartin Blumenstingl <&clkc CLKID_SDHC>; 76073106f75SMartin Blumenstingl clock-names = "clkin0", "clkin1", "clkin2", "clkin3", "pclk"; 76173106f75SMartin Blumenstingl}; 76273106f75SMartin Blumenstingl 763fb606cdaSMartin Blumenstingl&secbus { 764fb606cdaSMartin Blumenstingl secbus2: system-controller@4000 { 765fb606cdaSMartin Blumenstingl compatible = "amlogic,meson8-secbus2", "syscon"; 766fb606cdaSMartin Blumenstingl reg = <0x4000 0x2000>; 767fb606cdaSMartin Blumenstingl }; 768fb606cdaSMartin Blumenstingl}; 769fb606cdaSMartin Blumenstingl 77088b1b18fSMartin Blumenstingl&sdio { 77188b1b18fSMartin Blumenstingl compatible = "amlogic,meson8-sdio", "amlogic,meson-mx-sdio"; 77288b1b18fSMartin Blumenstingl clocks = <&clkc CLKID_SDIO>, <&clkc CLKID_CLK81>; 77388b1b18fSMartin Blumenstingl clock-names = "core", "clkin"; 77488b1b18fSMartin Blumenstingl}; 77588b1b18fSMartin Blumenstingl 776200a575bSMartin Blumenstingl&spifc { 7772c323c43SMartin Blumenstingl clocks = <&clkc CLKID_CLK81>; 778200a575bSMartin Blumenstingl}; 779200a575bSMartin Blumenstingl 7807b141abeSMartin Blumenstingl&timer_abcde { 781630ea310SMartin Blumenstingl clocks = <&xtal>, <&clkc CLKID_CLK81>; 7827b141abeSMartin Blumenstingl clock-names = "xtal", "pclk"; 7837b141abeSMartin Blumenstingl}; 7847b141abeSMartin Blumenstingl 785200a575bSMartin Blumenstingl&uart_AO { 78657007bfbSMartin Blumenstingl compatible = "amlogic,meson8-uart", "amlogic,meson-ao-uart"; 78757007bfbSMartin Blumenstingl clocks = <&xtal>, <&clkc CLKID_CLK81>, <&clkc CLKID_CLK81>; 78857007bfbSMartin Blumenstingl clock-names = "xtal", "pclk", "baud"; 789200a575bSMartin Blumenstingl}; 790200a575bSMartin Blumenstingl 791200a575bSMartin Blumenstingl&uart_A { 79257007bfbSMartin Blumenstingl compatible = "amlogic,meson8-uart"; 79357007bfbSMartin Blumenstingl clocks = <&xtal>, <&clkc CLKID_UART0>, <&clkc CLKID_CLK81>; 79457007bfbSMartin Blumenstingl clock-names = "xtal", "pclk", "baud"; 795200a575bSMartin Blumenstingl}; 796200a575bSMartin Blumenstingl 797200a575bSMartin Blumenstingl&uart_B { 79857007bfbSMartin Blumenstingl compatible = "amlogic,meson8-uart"; 79998b503c7SMartin Blumenstingl clocks = <&xtal>, <&clkc CLKID_UART1>, <&clkc CLKID_CLK81>; 80057007bfbSMartin Blumenstingl clock-names = "xtal", "pclk", "baud"; 801200a575bSMartin Blumenstingl}; 802200a575bSMartin Blumenstingl 803200a575bSMartin Blumenstingl&uart_C { 80457007bfbSMartin Blumenstingl compatible = "amlogic,meson8-uart"; 80598b503c7SMartin Blumenstingl clocks = <&xtal>, <&clkc CLKID_UART2>, <&clkc CLKID_CLK81>; 80657007bfbSMartin Blumenstingl clock-names = "xtal", "pclk", "baud"; 807200a575bSMartin Blumenstingl}; 808e29b1cf8SMartin Blumenstingl 809e29b1cf8SMartin Blumenstingl&usb0 { 810e29b1cf8SMartin Blumenstingl compatible = "amlogic,meson8-usb", "snps,dwc2"; 811e29b1cf8SMartin Blumenstingl clocks = <&clkc CLKID_USB0_DDR_BRIDGE>; 812e29b1cf8SMartin Blumenstingl clock-names = "otg"; 813e29b1cf8SMartin Blumenstingl}; 814e29b1cf8SMartin Blumenstingl 815e29b1cf8SMartin Blumenstingl&usb1 { 816e29b1cf8SMartin Blumenstingl compatible = "amlogic,meson8-usb", "snps,dwc2"; 817e29b1cf8SMartin Blumenstingl clocks = <&clkc CLKID_USB1_DDR_BRIDGE>; 818e29b1cf8SMartin Blumenstingl clock-names = "otg"; 819e29b1cf8SMartin Blumenstingl}; 820e29b1cf8SMartin Blumenstingl 821e29b1cf8SMartin Blumenstingl&usb0_phy { 822e29b1cf8SMartin Blumenstingl compatible = "amlogic,meson8-usb2-phy", "amlogic,meson-mx-usb2-phy"; 823e29b1cf8SMartin Blumenstingl clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB0>; 824e29b1cf8SMartin Blumenstingl clock-names = "usb_general", "usb"; 825e1fa57dfSMartin Blumenstingl resets = <&reset RESET_USB_OTG>; 826e29b1cf8SMartin Blumenstingl}; 827e29b1cf8SMartin Blumenstingl 828e29b1cf8SMartin Blumenstingl&usb1_phy { 829e29b1cf8SMartin Blumenstingl compatible = "amlogic,meson8-usb2-phy", "amlogic,meson-mx-usb2-phy"; 830e29b1cf8SMartin Blumenstingl clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB1>; 831e29b1cf8SMartin Blumenstingl clock-names = "usb_general", "usb"; 832e1fa57dfSMartin Blumenstingl resets = <&reset RESET_USB_OTG>; 833e29b1cf8SMartin Blumenstingl}; 834