1c328666dSNeil Armstrong/* 2c328666dSNeil Armstrong * Copyright (c) 2016 BayLibre, SAS. 3c328666dSNeil Armstrong * Author: Neil Armstrong <narmstrong@baylibre.com> 4c328666dSNeil Armstrong * 5c328666dSNeil Armstrong * Copyright (c) 2016 Endless Computers, Inc. 6c328666dSNeil Armstrong * Author: Carlo Caione <carlo@endlessm.com> 7c328666dSNeil Armstrong * 8c328666dSNeil Armstrong * Copyright (c) 2016 Andreas Färber 9c328666dSNeil Armstrong * 10c328666dSNeil Armstrong * This file is dual-licensed: you can use it either under the terms 11c328666dSNeil Armstrong * of the GPL or the X11 license, at your option. Note that this dual 12c328666dSNeil Armstrong * licensing only applies to this file, and not this project as a 13c328666dSNeil Armstrong * whole. 14c328666dSNeil Armstrong * 15c328666dSNeil Armstrong * a) This library is free software; you can redistribute it and/or 16c328666dSNeil Armstrong * modify it under the terms of the GNU General Public License as 17c328666dSNeil Armstrong * published by the Free Software Foundation; either version 2 of the 18c328666dSNeil Armstrong * License, or (at your option) any later version. 19c328666dSNeil Armstrong * 20c328666dSNeil Armstrong * This library is distributed in the hope that it will be useful, 21c328666dSNeil Armstrong * but WITHOUT ANY WARRANTY; without even the implied warranty of 22c328666dSNeil Armstrong * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23c328666dSNeil Armstrong * GNU General Public License for more details. 24c328666dSNeil Armstrong * 25c328666dSNeil Armstrong * Or, alternatively, 26c328666dSNeil Armstrong * 27c328666dSNeil Armstrong * b) Permission is hereby granted, free of charge, to any person 28c328666dSNeil Armstrong * obtaining a copy of this software and associated documentation 29c328666dSNeil Armstrong * files (the "Software"), to deal in the Software without 30c328666dSNeil Armstrong * restriction, including without limitation the rights to use, 31c328666dSNeil Armstrong * copy, modify, merge, publish, distribute, sublicense, and/or 32c328666dSNeil Armstrong * sell copies of the Software, and to permit persons to whom the 33c328666dSNeil Armstrong * Software is furnished to do so, subject to the following 34c328666dSNeil Armstrong * conditions: 35c328666dSNeil Armstrong * 36c328666dSNeil Armstrong * The above copyright notice and this permission notice shall be 37c328666dSNeil Armstrong * included in all copies or substantial portions of the Software. 38c328666dSNeil Armstrong * 39c328666dSNeil Armstrong * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 40c328666dSNeil Armstrong * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 41c328666dSNeil Armstrong * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 42c328666dSNeil Armstrong * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 43c328666dSNeil Armstrong * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 44c328666dSNeil Armstrong * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 45c328666dSNeil Armstrong * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 46c328666dSNeil Armstrong * OTHER DEALINGS IN THE SOFTWARE. 47c328666dSNeil Armstrong */ 48c328666dSNeil Armstrong 49c328666dSNeil Armstrong#include <dt-bindings/gpio/gpio.h> 50c328666dSNeil Armstrong#include <dt-bindings/interrupt-controller/irq.h> 51c328666dSNeil Armstrong#include <dt-bindings/interrupt-controller/arm-gic.h> 52c328666dSNeil Armstrong 53c328666dSNeil Armstrong/ { 54c328666dSNeil Armstrong interrupt-parent = <&gic>; 55c328666dSNeil Armstrong #address-cells = <2>; 56c328666dSNeil Armstrong #size-cells = <2>; 57c328666dSNeil Armstrong 58c328666dSNeil Armstrong cpus { 59c328666dSNeil Armstrong #address-cells = <0x2>; 60c328666dSNeil Armstrong #size-cells = <0x0>; 61c328666dSNeil Armstrong 62c328666dSNeil Armstrong cpu0: cpu@0 { 63c328666dSNeil Armstrong device_type = "cpu"; 64c328666dSNeil Armstrong compatible = "arm,cortex-a53", "arm,armv8"; 65c328666dSNeil Armstrong reg = <0x0 0x0>; 66c328666dSNeil Armstrong enable-method = "psci"; 67214ec523SNeil Armstrong next-level-cache = <&l2>; 68c328666dSNeil Armstrong }; 69c328666dSNeil Armstrong 70c328666dSNeil Armstrong cpu1: cpu@1 { 71c328666dSNeil Armstrong device_type = "cpu"; 72c328666dSNeil Armstrong compatible = "arm,cortex-a53", "arm,armv8"; 73c328666dSNeil Armstrong reg = <0x0 0x1>; 74c328666dSNeil Armstrong enable-method = "psci"; 75214ec523SNeil Armstrong next-level-cache = <&l2>; 76c328666dSNeil Armstrong }; 77c328666dSNeil Armstrong 78c328666dSNeil Armstrong cpu2: cpu@2 { 79c328666dSNeil Armstrong device_type = "cpu"; 80c328666dSNeil Armstrong compatible = "arm,cortex-a53", "arm,armv8"; 81c328666dSNeil Armstrong reg = <0x0 0x2>; 82c328666dSNeil Armstrong enable-method = "psci"; 83214ec523SNeil Armstrong next-level-cache = <&l2>; 84c328666dSNeil Armstrong }; 85c328666dSNeil Armstrong 86c328666dSNeil Armstrong cpu3: cpu@3 { 87c328666dSNeil Armstrong device_type = "cpu"; 88c328666dSNeil Armstrong compatible = "arm,cortex-a53", "arm,armv8"; 89c328666dSNeil Armstrong reg = <0x0 0x3>; 90c328666dSNeil Armstrong enable-method = "psci"; 91214ec523SNeil Armstrong next-level-cache = <&l2>; 92214ec523SNeil Armstrong }; 93214ec523SNeil Armstrong 94214ec523SNeil Armstrong l2: l2-cache0 { 95214ec523SNeil Armstrong compatible = "cache"; 96c328666dSNeil Armstrong }; 97c328666dSNeil Armstrong }; 98c328666dSNeil Armstrong 99c328666dSNeil Armstrong arm-pmu { 100c328666dSNeil Armstrong compatible = "arm,cortex-a53-pmu"; 101c328666dSNeil Armstrong interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>, 102c328666dSNeil Armstrong <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>, 103c328666dSNeil Armstrong <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>, 104c328666dSNeil Armstrong <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>; 105c328666dSNeil Armstrong interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; 106c328666dSNeil Armstrong }; 107c328666dSNeil Armstrong 108c328666dSNeil Armstrong psci { 109c328666dSNeil Armstrong compatible = "arm,psci-0.2"; 110c328666dSNeil Armstrong method = "smc"; 111c328666dSNeil Armstrong }; 112c328666dSNeil Armstrong 113c328666dSNeil Armstrong timer { 114c328666dSNeil Armstrong compatible = "arm,armv8-timer"; 115c328666dSNeil Armstrong interrupts = <GIC_PPI 13 116c328666dSNeil Armstrong (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, 117c328666dSNeil Armstrong <GIC_PPI 14 118c328666dSNeil Armstrong (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, 119c328666dSNeil Armstrong <GIC_PPI 11 120c328666dSNeil Armstrong (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, 121c328666dSNeil Armstrong <GIC_PPI 10 122c328666dSNeil Armstrong (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>; 123c328666dSNeil Armstrong }; 124c328666dSNeil Armstrong 125c328666dSNeil Armstrong xtal: xtal-clk { 126c328666dSNeil Armstrong compatible = "fixed-clock"; 127c328666dSNeil Armstrong clock-frequency = <24000000>; 128c328666dSNeil Armstrong clock-output-names = "xtal"; 129c328666dSNeil Armstrong #clock-cells = <0>; 130c328666dSNeil Armstrong }; 131c328666dSNeil Armstrong 132c328666dSNeil Armstrong soc { 133c328666dSNeil Armstrong compatible = "simple-bus"; 134c328666dSNeil Armstrong #address-cells = <2>; 135c328666dSNeil Armstrong #size-cells = <2>; 136c328666dSNeil Armstrong ranges; 137c328666dSNeil Armstrong 138c328666dSNeil Armstrong cbus: cbus@c1100000 { 139c328666dSNeil Armstrong compatible = "simple-bus"; 140c328666dSNeil Armstrong reg = <0x0 0xc1100000 0x0 0x100000>; 141c328666dSNeil Armstrong #address-cells = <2>; 142c328666dSNeil Armstrong #size-cells = <2>; 143c328666dSNeil Armstrong ranges = <0x0 0x0 0x0 0xc1100000 0x0 0x100000>; 144c328666dSNeil Armstrong 145c328666dSNeil Armstrong uart_A: serial@84c0 { 146c328666dSNeil Armstrong compatible = "amlogic,meson-uart"; 147c328666dSNeil Armstrong reg = <0x0 0x84c0 0x0 0x14>; 148c328666dSNeil Armstrong interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>; 149c328666dSNeil Armstrong clocks = <&xtal>; 150c328666dSNeil Armstrong status = "disabled"; 151c328666dSNeil Armstrong }; 152c328666dSNeil Armstrong }; 153c328666dSNeil Armstrong 154c328666dSNeil Armstrong gic: interrupt-controller@c4301000 { 155c328666dSNeil Armstrong compatible = "arm,gic-400"; 156c328666dSNeil Armstrong reg = <0x0 0xc4301000 0 0x1000>, 157c328666dSNeil Armstrong <0x0 0xc4302000 0 0x2000>, 158c328666dSNeil Armstrong <0x0 0xc4304000 0 0x2000>, 159c328666dSNeil Armstrong <0x0 0xc4306000 0 0x2000>; 160c328666dSNeil Armstrong interrupt-controller; 161c328666dSNeil Armstrong interrupts = <GIC_PPI 9 162c328666dSNeil Armstrong (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>; 163c328666dSNeil Armstrong #interrupt-cells = <3>; 164c328666dSNeil Armstrong #address-cells = <0>; 165c328666dSNeil Armstrong }; 166c328666dSNeil Armstrong 167c328666dSNeil Armstrong aobus: aobus@c8100000 { 168c328666dSNeil Armstrong compatible = "simple-bus"; 169c328666dSNeil Armstrong reg = <0x0 0xc8100000 0x0 0x100000>; 170c328666dSNeil Armstrong #address-cells = <2>; 171c328666dSNeil Armstrong #size-cells = <2>; 172c328666dSNeil Armstrong ranges = <0x0 0x0 0x0 0xc8100000 0x0 0x100000>; 173c328666dSNeil Armstrong 174c328666dSNeil Armstrong uart_AO: serial@4c0 { 175c328666dSNeil Armstrong compatible = "amlogic,meson-uart"; 176c328666dSNeil Armstrong reg = <0x0 0x004c0 0x0 0x14>; 177c328666dSNeil Armstrong interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>; 178c328666dSNeil Armstrong clocks = <&xtal>; 179c328666dSNeil Armstrong status = "disabled"; 180c328666dSNeil Armstrong }; 181c328666dSNeil Armstrong }; 182c328666dSNeil Armstrong 183c328666dSNeil Armstrong periphs: periphs@c8834000 { 184c328666dSNeil Armstrong compatible = "simple-bus"; 185c328666dSNeil Armstrong reg = <0x0 0xc8834000 0x0 0x2000>; 186c328666dSNeil Armstrong #address-cells = <2>; 187c328666dSNeil Armstrong #size-cells = <2>; 188c328666dSNeil Armstrong ranges = <0x0 0x0 0x0 0xc8834000 0x0 0x2000>; 189c328666dSNeil Armstrong }; 190c328666dSNeil Armstrong 191c328666dSNeil Armstrong 192c328666dSNeil Armstrong hiubus: hiubus@c883c000 { 193c328666dSNeil Armstrong compatible = "simple-bus"; 194c328666dSNeil Armstrong reg = <0x0 0xc883c000 0x0 0x2000>; 195c328666dSNeil Armstrong #address-cells = <2>; 196c328666dSNeil Armstrong #size-cells = <2>; 197c328666dSNeil Armstrong ranges = <0x0 0x0 0x0 0xc883c000 0x0 0x2000>; 198c328666dSNeil Armstrong }; 199c328666dSNeil Armstrong 200c328666dSNeil Armstrong apb: apb@d0000000 { 201c328666dSNeil Armstrong compatible = "simple-bus"; 202c328666dSNeil Armstrong reg = <0x0 0xd0000000 0x0 0x200000>; 203c328666dSNeil Armstrong #address-cells = <2>; 204c328666dSNeil Armstrong #size-cells = <2>; 205c328666dSNeil Armstrong ranges = <0x0 0x0 0x0 0xd0000000 0x0 0x200000>; 206c328666dSNeil Armstrong }; 207c328666dSNeil Armstrong }; 208c328666dSNeil Armstrong}; 209