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"; 67c328666dSNeil Armstrong }; 68c328666dSNeil Armstrong 69c328666dSNeil Armstrong cpu1: cpu@1 { 70c328666dSNeil Armstrong device_type = "cpu"; 71c328666dSNeil Armstrong compatible = "arm,cortex-a53", "arm,armv8"; 72c328666dSNeil Armstrong reg = <0x0 0x1>; 73c328666dSNeil Armstrong enable-method = "psci"; 74c328666dSNeil Armstrong }; 75c328666dSNeil Armstrong 76c328666dSNeil Armstrong cpu2: cpu@2 { 77c328666dSNeil Armstrong device_type = "cpu"; 78c328666dSNeil Armstrong compatible = "arm,cortex-a53", "arm,armv8"; 79c328666dSNeil Armstrong reg = <0x0 0x2>; 80c328666dSNeil Armstrong enable-method = "psci"; 81c328666dSNeil Armstrong }; 82c328666dSNeil Armstrong 83c328666dSNeil Armstrong cpu3: cpu@3 { 84c328666dSNeil Armstrong device_type = "cpu"; 85c328666dSNeil Armstrong compatible = "arm,cortex-a53", "arm,armv8"; 86c328666dSNeil Armstrong reg = <0x0 0x3>; 87c328666dSNeil Armstrong enable-method = "psci"; 88c328666dSNeil Armstrong }; 89c328666dSNeil Armstrong }; 90c328666dSNeil Armstrong 91c328666dSNeil Armstrong arm-pmu { 92c328666dSNeil Armstrong compatible = "arm,cortex-a53-pmu"; 93c328666dSNeil Armstrong interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>, 94c328666dSNeil Armstrong <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>, 95c328666dSNeil Armstrong <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>, 96c328666dSNeil Armstrong <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>; 97c328666dSNeil Armstrong interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; 98c328666dSNeil Armstrong }; 99c328666dSNeil Armstrong 100c328666dSNeil Armstrong psci { 101c328666dSNeil Armstrong compatible = "arm,psci-0.2"; 102c328666dSNeil Armstrong method = "smc"; 103c328666dSNeil Armstrong }; 104c328666dSNeil Armstrong 105c328666dSNeil Armstrong timer { 106c328666dSNeil Armstrong compatible = "arm,armv8-timer"; 107c328666dSNeil Armstrong interrupts = <GIC_PPI 13 108c328666dSNeil Armstrong (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, 109c328666dSNeil Armstrong <GIC_PPI 14 110c328666dSNeil Armstrong (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, 111c328666dSNeil Armstrong <GIC_PPI 11 112c328666dSNeil Armstrong (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, 113c328666dSNeil Armstrong <GIC_PPI 10 114c328666dSNeil Armstrong (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>; 115c328666dSNeil Armstrong }; 116c328666dSNeil Armstrong 117c328666dSNeil Armstrong xtal: xtal-clk { 118c328666dSNeil Armstrong compatible = "fixed-clock"; 119c328666dSNeil Armstrong clock-frequency = <24000000>; 120c328666dSNeil Armstrong clock-output-names = "xtal"; 121c328666dSNeil Armstrong #clock-cells = <0>; 122c328666dSNeil Armstrong }; 123c328666dSNeil Armstrong 124c328666dSNeil Armstrong soc { 125c328666dSNeil Armstrong compatible = "simple-bus"; 126c328666dSNeil Armstrong #address-cells = <2>; 127c328666dSNeil Armstrong #size-cells = <2>; 128c328666dSNeil Armstrong ranges; 129c328666dSNeil Armstrong 130c328666dSNeil Armstrong cbus: cbus@c1100000 { 131c328666dSNeil Armstrong compatible = "simple-bus"; 132c328666dSNeil Armstrong reg = <0x0 0xc1100000 0x0 0x100000>; 133c328666dSNeil Armstrong #address-cells = <2>; 134c328666dSNeil Armstrong #size-cells = <2>; 135c328666dSNeil Armstrong ranges = <0x0 0x0 0x0 0xc1100000 0x0 0x100000>; 136c328666dSNeil Armstrong 137c328666dSNeil Armstrong uart_A: serial@84c0 { 138c328666dSNeil Armstrong compatible = "amlogic,meson-uart"; 139c328666dSNeil Armstrong reg = <0x0 0x84c0 0x0 0x14>; 140c328666dSNeil Armstrong interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>; 141c328666dSNeil Armstrong clocks = <&xtal>; 142c328666dSNeil Armstrong status = "disabled"; 143c328666dSNeil Armstrong }; 144c328666dSNeil Armstrong }; 145c328666dSNeil Armstrong 146c328666dSNeil Armstrong gic: interrupt-controller@c4301000 { 147c328666dSNeil Armstrong compatible = "arm,gic-400"; 148c328666dSNeil Armstrong reg = <0x0 0xc4301000 0 0x1000>, 149c328666dSNeil Armstrong <0x0 0xc4302000 0 0x2000>, 150c328666dSNeil Armstrong <0x0 0xc4304000 0 0x2000>, 151c328666dSNeil Armstrong <0x0 0xc4306000 0 0x2000>; 152c328666dSNeil Armstrong interrupt-controller; 153c328666dSNeil Armstrong interrupts = <GIC_PPI 9 154c328666dSNeil Armstrong (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>; 155c328666dSNeil Armstrong #interrupt-cells = <3>; 156c328666dSNeil Armstrong #address-cells = <0>; 157c328666dSNeil Armstrong }; 158c328666dSNeil Armstrong 159c328666dSNeil Armstrong aobus: aobus@c8100000 { 160c328666dSNeil Armstrong compatible = "simple-bus"; 161c328666dSNeil Armstrong reg = <0x0 0xc8100000 0x0 0x100000>; 162c328666dSNeil Armstrong #address-cells = <2>; 163c328666dSNeil Armstrong #size-cells = <2>; 164c328666dSNeil Armstrong ranges = <0x0 0x0 0x0 0xc8100000 0x0 0x100000>; 165c328666dSNeil Armstrong 166c328666dSNeil Armstrong uart_AO: serial@4c0 { 167c328666dSNeil Armstrong compatible = "amlogic,meson-uart"; 168c328666dSNeil Armstrong reg = <0x0 0x004c0 0x0 0x14>; 169c328666dSNeil Armstrong interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>; 170c328666dSNeil Armstrong clocks = <&xtal>; 171c328666dSNeil Armstrong status = "disabled"; 172c328666dSNeil Armstrong }; 173c328666dSNeil Armstrong }; 174c328666dSNeil Armstrong 175c328666dSNeil Armstrong periphs: periphs@c8834000 { 176c328666dSNeil Armstrong compatible = "simple-bus"; 177c328666dSNeil Armstrong reg = <0x0 0xc8834000 0x0 0x2000>; 178c328666dSNeil Armstrong #address-cells = <2>; 179c328666dSNeil Armstrong #size-cells = <2>; 180c328666dSNeil Armstrong ranges = <0x0 0x0 0x0 0xc8834000 0x0 0x2000>; 181c328666dSNeil Armstrong }; 182c328666dSNeil Armstrong 183c328666dSNeil Armstrong 184c328666dSNeil Armstrong hiubus: hiubus@c883c000 { 185c328666dSNeil Armstrong compatible = "simple-bus"; 186c328666dSNeil Armstrong reg = <0x0 0xc883c000 0x0 0x2000>; 187c328666dSNeil Armstrong #address-cells = <2>; 188c328666dSNeil Armstrong #size-cells = <2>; 189c328666dSNeil Armstrong ranges = <0x0 0x0 0x0 0xc883c000 0x0 0x2000>; 190c328666dSNeil Armstrong }; 191c328666dSNeil Armstrong 192c328666dSNeil Armstrong apb: apb@d0000000 { 193c328666dSNeil Armstrong compatible = "simple-bus"; 194c328666dSNeil Armstrong reg = <0x0 0xd0000000 0x0 0x200000>; 195c328666dSNeil Armstrong #address-cells = <2>; 196c328666dSNeil Armstrong #size-cells = <2>; 197c328666dSNeil Armstrong ranges = <0x0 0x0 0x0 0xd0000000 0x0 0x200000>; 198c328666dSNeil Armstrong }; 199c328666dSNeil Armstrong }; 200c328666dSNeil Armstrong}; 201