19c8c52f7SJianxin Pan// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 29c8c52f7SJianxin Pan/* 39c8c52f7SJianxin Pan * Copyright (c) 2018 Amlogic, Inc. All rights reserved. 49c8c52f7SJianxin Pan */ 59c8c52f7SJianxin Pan 69c8c52f7SJianxin Pan#include <dt-bindings/gpio/gpio.h> 79c8c52f7SJianxin Pan#include <dt-bindings/interrupt-controller/irq.h> 89c8c52f7SJianxin Pan#include <dt-bindings/interrupt-controller/arm-gic.h> 99c8c52f7SJianxin Pan 109c8c52f7SJianxin Pan/ { 119c8c52f7SJianxin Pan compatible = "amlogic,g12a"; 129c8c52f7SJianxin Pan 139c8c52f7SJianxin Pan interrupt-parent = <&gic>; 149c8c52f7SJianxin Pan #address-cells = <2>; 159c8c52f7SJianxin Pan #size-cells = <2>; 169c8c52f7SJianxin Pan 179c8c52f7SJianxin Pan cpus { 189c8c52f7SJianxin Pan #address-cells = <0x2>; 199c8c52f7SJianxin Pan #size-cells = <0x0>; 209c8c52f7SJianxin Pan 219c8c52f7SJianxin Pan cpu0: cpu@0 { 229c8c52f7SJianxin Pan device_type = "cpu"; 239c8c52f7SJianxin Pan compatible = "arm,cortex-a53", "arm,armv8"; 249c8c52f7SJianxin Pan reg = <0x0 0x0>; 259c8c52f7SJianxin Pan enable-method = "psci"; 269c8c52f7SJianxin Pan next-level-cache = <&l2>; 279c8c52f7SJianxin Pan }; 289c8c52f7SJianxin Pan 299c8c52f7SJianxin Pan cpu1: cpu@1 { 309c8c52f7SJianxin Pan device_type = "cpu"; 319c8c52f7SJianxin Pan compatible = "arm,cortex-a53", "arm,armv8"; 329c8c52f7SJianxin Pan reg = <0x0 0x1>; 339c8c52f7SJianxin Pan enable-method = "psci"; 349c8c52f7SJianxin Pan next-level-cache = <&l2>; 359c8c52f7SJianxin Pan }; 369c8c52f7SJianxin Pan 379c8c52f7SJianxin Pan cpu2: cpu@2 { 389c8c52f7SJianxin Pan device_type = "cpu"; 399c8c52f7SJianxin Pan compatible = "arm,cortex-a53", "arm,armv8"; 409c8c52f7SJianxin Pan reg = <0x0 0x2>; 419c8c52f7SJianxin Pan enable-method = "psci"; 429c8c52f7SJianxin Pan next-level-cache = <&l2>; 439c8c52f7SJianxin Pan }; 449c8c52f7SJianxin Pan 459c8c52f7SJianxin Pan cpu3: cpu@3 { 469c8c52f7SJianxin Pan device_type = "cpu"; 479c8c52f7SJianxin Pan compatible = "arm,cortex-a53", "arm,armv8"; 489c8c52f7SJianxin Pan reg = <0x0 0x3>; 499c8c52f7SJianxin Pan enable-method = "psci"; 509c8c52f7SJianxin Pan next-level-cache = <&l2>; 519c8c52f7SJianxin Pan }; 529c8c52f7SJianxin Pan 539c8c52f7SJianxin Pan l2: l2-cache0 { 549c8c52f7SJianxin Pan compatible = "cache"; 559c8c52f7SJianxin Pan }; 569c8c52f7SJianxin Pan }; 579c8c52f7SJianxin Pan 589c8c52f7SJianxin Pan psci { 599c8c52f7SJianxin Pan compatible = "arm,psci-1.0"; 609c8c52f7SJianxin Pan method = "smc"; 619c8c52f7SJianxin Pan }; 629c8c52f7SJianxin Pan 639c8c52f7SJianxin Pan reserved-memory { 649c8c52f7SJianxin Pan #address-cells = <2>; 659c8c52f7SJianxin Pan #size-cells = <2>; 669c8c52f7SJianxin Pan ranges; 679c8c52f7SJianxin Pan 689c8c52f7SJianxin Pan /* 3 MiB reserved for ARM Trusted Firmware (BL31) */ 699c8c52f7SJianxin Pan secmon_reserved: secmon@5000000 { 709c8c52f7SJianxin Pan reg = <0x0 0x05000000 0x0 0x300000>; 719c8c52f7SJianxin Pan no-map; 729c8c52f7SJianxin Pan }; 739c8c52f7SJianxin Pan }; 749c8c52f7SJianxin Pan 759c8c52f7SJianxin Pan soc { 769c8c52f7SJianxin Pan compatible = "simple-bus"; 779c8c52f7SJianxin Pan #address-cells = <2>; 789c8c52f7SJianxin Pan #size-cells = <2>; 799c8c52f7SJianxin Pan ranges; 809c8c52f7SJianxin Pan 81503f5fedSJerome Brunet apb: bus@ff600000 { 829c8c52f7SJianxin Pan compatible = "simple-bus"; 83503f5fedSJerome Brunet reg = <0x0 0xff600000 0x0 0x200000>; 849c8c52f7SJianxin Pan #address-cells = <2>; 859c8c52f7SJianxin Pan #size-cells = <2>; 86503f5fedSJerome Brunet ranges = <0x0 0x0 0x0 0xff600000 0x0 0x200000>; 87503f5fedSJerome Brunet 88503f5fedSJerome Brunet periphs: bus@34400 { 89503f5fedSJerome Brunet compatible = "simple-bus"; 90503f5fedSJerome Brunet reg = <0x0 0x34400 0x0 0x400>; 91503f5fedSJerome Brunet #address-cells = <2>; 92503f5fedSJerome Brunet #size-cells = <2>; 93503f5fedSJerome Brunet ranges = <0x0 0x0 0x0 0x34400 0x0 0x400>; 949c8c52f7SJianxin Pan }; 959c8c52f7SJianxin Pan 96503f5fedSJerome Brunet hiu: bus@3c000 { 979c8c52f7SJianxin Pan compatible = "simple-bus"; 98503f5fedSJerome Brunet reg = <0x0 0x3c000 0x0 0x1400>; 999c8c52f7SJianxin Pan #address-cells = <2>; 1009c8c52f7SJianxin Pan #size-cells = <2>; 101503f5fedSJerome Brunet ranges = <0x0 0x0 0x0 0x3c000 0x0 0x1400>; 102503f5fedSJerome Brunet }; 1039c8c52f7SJianxin Pan }; 1049c8c52f7SJianxin Pan 1059c8c52f7SJianxin Pan aobus: bus@ff800000 { 1069c8c52f7SJianxin Pan compatible = "simple-bus"; 1079c8c52f7SJianxin Pan reg = <0x0 0xff800000 0x0 0x100000>; 1089c8c52f7SJianxin Pan #address-cells = <2>; 1099c8c52f7SJianxin Pan #size-cells = <2>; 1109c8c52f7SJianxin Pan ranges = <0x0 0x0 0x0 0xff800000 0x0 0x100000>; 1119c8c52f7SJianxin Pan 1129c8c52f7SJianxin Pan uart_AO: serial@3000 { 113503f5fedSJerome Brunet compatible = "amlogic,meson-gx-uart", 114503f5fedSJerome Brunet "amlogic,meson-ao-uart"; 1159c8c52f7SJianxin Pan reg = <0x0 0x3000 0x0 0x18>; 1169c8c52f7SJianxin Pan interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>; 1179c8c52f7SJianxin Pan clocks = <&xtal>, <&xtal>, <&xtal>; 1189c8c52f7SJianxin Pan clock-names = "xtal", "pclk", "baud"; 1199c8c52f7SJianxin Pan status = "disabled"; 1209c8c52f7SJianxin Pan }; 1219c8c52f7SJianxin Pan 1229c8c52f7SJianxin Pan uart_AO_B: serial@4000 { 123503f5fedSJerome Brunet compatible = "amlogic,meson-gx-uart", 124503f5fedSJerome Brunet "amlogic,meson-ao-uart"; 1259c8c52f7SJianxin Pan reg = <0x0 0x4000 0x0 0x18>; 1269c8c52f7SJianxin Pan interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>; 1279c8c52f7SJianxin Pan clocks = <&xtal>, <&xtal>, <&xtal>; 1289c8c52f7SJianxin Pan clock-names = "xtal", "pclk", "baud"; 1299c8c52f7SJianxin Pan status = "disabled"; 1309c8c52f7SJianxin Pan }; 1319c8c52f7SJianxin Pan }; 1329c8c52f7SJianxin Pan 1339c8c52f7SJianxin Pan gic: interrupt-controller@ffc01000 { 1349c8c52f7SJianxin Pan compatible = "arm,gic-400"; 1359c8c52f7SJianxin Pan reg = <0x0 0xffc01000 0 0x1000>, 1369c8c52f7SJianxin Pan <0x0 0xffc02000 0 0x2000>, 1379c8c52f7SJianxin Pan <0x0 0xffc04000 0 0x2000>, 1389c8c52f7SJianxin Pan <0x0 0xffc06000 0 0x2000>; 1399c8c52f7SJianxin Pan interrupt-controller; 1409c8c52f7SJianxin Pan interrupts = <GIC_PPI 9 1419c8c52f7SJianxin Pan (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>; 1429c8c52f7SJianxin Pan #interrupt-cells = <3>; 1439c8c52f7SJianxin Pan #address-cells = <0>; 1449c8c52f7SJianxin Pan }; 1459c8c52f7SJianxin Pan 1469c8c52f7SJianxin Pan cbus: bus@ffd00000 { 1479c8c52f7SJianxin Pan compatible = "simple-bus"; 148503f5fedSJerome Brunet reg = <0x0 0xffd00000 0x0 0x100000>; 1499c8c52f7SJianxin Pan #address-cells = <2>; 1509c8c52f7SJianxin Pan #size-cells = <2>; 151503f5fedSJerome Brunet ranges = <0x0 0x0 0x0 0xffd00000 0x0 0x100000>; 1529c8c52f7SJianxin Pan }; 1539c8c52f7SJianxin Pan }; 1549c8c52f7SJianxin Pan 1559c8c52f7SJianxin Pan timer { 1569c8c52f7SJianxin Pan compatible = "arm,armv8-timer"; 1579c8c52f7SJianxin Pan interrupts = <GIC_PPI 13 1589c8c52f7SJianxin Pan (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, 1599c8c52f7SJianxin Pan <GIC_PPI 14 1609c8c52f7SJianxin Pan (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, 1619c8c52f7SJianxin Pan <GIC_PPI 11 1629c8c52f7SJianxin Pan (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, 1639c8c52f7SJianxin Pan <GIC_PPI 10 1649c8c52f7SJianxin Pan (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>; 1659c8c52f7SJianxin Pan }; 1669c8c52f7SJianxin Pan 1679c8c52f7SJianxin Pan xtal: xtal-clk { 1689c8c52f7SJianxin Pan compatible = "fixed-clock"; 1699c8c52f7SJianxin Pan clock-frequency = <24000000>; 1709c8c52f7SJianxin Pan clock-output-names = "xtal"; 1719c8c52f7SJianxin Pan #clock-cells = <0>; 1729c8c52f7SJianxin Pan }; 1739c8c52f7SJianxin Pan 1749c8c52f7SJianxin Pan}; 175