1c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2c66ec88fSEmmanuel Vadot/* 3c66ec88fSEmmanuel Vadot * Copyright (c) 2019 Amlogic, Inc. All rights reserved. 4c66ec88fSEmmanuel Vadot */ 5c66ec88fSEmmanuel Vadot 6c66ec88fSEmmanuel Vadot#include <dt-bindings/interrupt-controller/irq.h> 7c66ec88fSEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h> 8c66ec88fSEmmanuel Vadot#include <dt-bindings/gpio/meson-a1-gpio.h> 9c66ec88fSEmmanuel Vadot 10c66ec88fSEmmanuel Vadot/ { 11c66ec88fSEmmanuel Vadot compatible = "amlogic,a1"; 12c66ec88fSEmmanuel Vadot 13c66ec88fSEmmanuel Vadot interrupt-parent = <&gic>; 14c66ec88fSEmmanuel Vadot #address-cells = <2>; 15c66ec88fSEmmanuel Vadot #size-cells = <2>; 16c66ec88fSEmmanuel Vadot 17c66ec88fSEmmanuel Vadot cpus { 18c66ec88fSEmmanuel Vadot #address-cells = <2>; 19c66ec88fSEmmanuel Vadot #size-cells = <0>; 20c66ec88fSEmmanuel Vadot 21c66ec88fSEmmanuel Vadot cpu0: cpu@0 { 22c66ec88fSEmmanuel Vadot device_type = "cpu"; 23c66ec88fSEmmanuel Vadot compatible = "arm,cortex-a35"; 24c66ec88fSEmmanuel Vadot reg = <0x0 0x0>; 25c66ec88fSEmmanuel Vadot enable-method = "psci"; 26c66ec88fSEmmanuel Vadot next-level-cache = <&l2>; 27c66ec88fSEmmanuel Vadot }; 28c66ec88fSEmmanuel Vadot 29c66ec88fSEmmanuel Vadot cpu1: cpu@1 { 30c66ec88fSEmmanuel Vadot device_type = "cpu"; 31c66ec88fSEmmanuel Vadot compatible = "arm,cortex-a35"; 32c66ec88fSEmmanuel Vadot reg = <0x0 0x1>; 33c66ec88fSEmmanuel Vadot enable-method = "psci"; 34c66ec88fSEmmanuel Vadot next-level-cache = <&l2>; 35c66ec88fSEmmanuel Vadot }; 36c66ec88fSEmmanuel Vadot 37c66ec88fSEmmanuel Vadot l2: l2-cache0 { 38c66ec88fSEmmanuel Vadot compatible = "cache"; 398bab661aSEmmanuel Vadot cache-level = <2>; 40f126890aSEmmanuel Vadot cache-unified; 41c66ec88fSEmmanuel Vadot }; 42c66ec88fSEmmanuel Vadot }; 43c66ec88fSEmmanuel Vadot 44c66ec88fSEmmanuel Vadot psci { 45c66ec88fSEmmanuel Vadot compatible = "arm,psci-1.0"; 46c66ec88fSEmmanuel Vadot method = "smc"; 47c66ec88fSEmmanuel Vadot }; 48c66ec88fSEmmanuel Vadot 49c66ec88fSEmmanuel Vadot reserved-memory { 50c66ec88fSEmmanuel Vadot #address-cells = <2>; 51c66ec88fSEmmanuel Vadot #size-cells = <2>; 52c66ec88fSEmmanuel Vadot ranges; 53c66ec88fSEmmanuel Vadot 54c66ec88fSEmmanuel Vadot linux,cma { 55c66ec88fSEmmanuel Vadot compatible = "shared-dma-pool"; 56c66ec88fSEmmanuel Vadot reusable; 57c66ec88fSEmmanuel Vadot size = <0x0 0x800000>; 58c66ec88fSEmmanuel Vadot alignment = <0x0 0x400000>; 59c66ec88fSEmmanuel Vadot linux,cma-default; 60c66ec88fSEmmanuel Vadot }; 61c66ec88fSEmmanuel Vadot }; 62c66ec88fSEmmanuel Vadot 63c66ec88fSEmmanuel Vadot sm: secure-monitor { 64c66ec88fSEmmanuel Vadot compatible = "amlogic,meson-gxbb-sm"; 65c66ec88fSEmmanuel Vadot 66c66ec88fSEmmanuel Vadot pwrc: power-controller { 67c66ec88fSEmmanuel Vadot compatible = "amlogic,meson-a1-pwrc"; 68c66ec88fSEmmanuel Vadot #power-domain-cells = <1>; 69c66ec88fSEmmanuel Vadot status = "okay"; 70c66ec88fSEmmanuel Vadot }; 71c66ec88fSEmmanuel Vadot }; 72c66ec88fSEmmanuel Vadot 73c66ec88fSEmmanuel Vadot soc { 74c66ec88fSEmmanuel Vadot compatible = "simple-bus"; 75c66ec88fSEmmanuel Vadot #address-cells = <2>; 76c66ec88fSEmmanuel Vadot #size-cells = <2>; 77c66ec88fSEmmanuel Vadot ranges; 78c66ec88fSEmmanuel Vadot 79c66ec88fSEmmanuel Vadot apb: bus@fe000000 { 80c66ec88fSEmmanuel Vadot compatible = "simple-bus"; 81c66ec88fSEmmanuel Vadot reg = <0x0 0xfe000000 0x0 0x1000000>; 82c66ec88fSEmmanuel Vadot #address-cells = <2>; 83c66ec88fSEmmanuel Vadot #size-cells = <2>; 84c66ec88fSEmmanuel Vadot ranges = <0x0 0x0 0x0 0xfe000000 0x0 0x1000000>; 85c66ec88fSEmmanuel Vadot 86c66ec88fSEmmanuel Vadot 87c66ec88fSEmmanuel Vadot reset: reset-controller@0 { 88c66ec88fSEmmanuel Vadot compatible = "amlogic,meson-a1-reset"; 89c66ec88fSEmmanuel Vadot reg = <0x0 0x0 0x0 0x8c>; 90c66ec88fSEmmanuel Vadot #reset-cells = <1>; 91c66ec88fSEmmanuel Vadot }; 92c66ec88fSEmmanuel Vadot 932eb4d8dcSEmmanuel Vadot periphs_pinctrl: pinctrl@400 { 94c66ec88fSEmmanuel Vadot compatible = "amlogic,meson-a1-periphs-pinctrl"; 95c66ec88fSEmmanuel Vadot #address-cells = <2>; 96c66ec88fSEmmanuel Vadot #size-cells = <2>; 97c66ec88fSEmmanuel Vadot ranges; 98c66ec88fSEmmanuel Vadot 992eb4d8dcSEmmanuel Vadot gpio: bank@400 { 100c66ec88fSEmmanuel Vadot reg = <0x0 0x0400 0x0 0x003c>, 101c66ec88fSEmmanuel Vadot <0x0 0x0480 0x0 0x0118>; 102c66ec88fSEmmanuel Vadot reg-names = "mux", "gpio"; 103c66ec88fSEmmanuel Vadot gpio-controller; 104c66ec88fSEmmanuel Vadot #gpio-cells = <2>; 105c66ec88fSEmmanuel Vadot gpio-ranges = <&periphs_pinctrl 0 0 62>; 106c66ec88fSEmmanuel Vadot }; 107c66ec88fSEmmanuel Vadot 108c66ec88fSEmmanuel Vadot }; 109c66ec88fSEmmanuel Vadot 110c66ec88fSEmmanuel Vadot uart_AO: serial@1c00 { 111*aa1a8ff2SEmmanuel Vadot compatible = "amlogic,meson-a1-uart", 112c66ec88fSEmmanuel Vadot "amlogic,meson-ao-uart"; 113c66ec88fSEmmanuel Vadot reg = <0x0 0x1c00 0x0 0x18>; 114c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>; 115c66ec88fSEmmanuel Vadot clocks = <&xtal>, <&xtal>, <&xtal>; 116c66ec88fSEmmanuel Vadot clock-names = "xtal", "pclk", "baud"; 117c66ec88fSEmmanuel Vadot status = "disabled"; 118c66ec88fSEmmanuel Vadot }; 119c66ec88fSEmmanuel Vadot 120c66ec88fSEmmanuel Vadot uart_AO_B: serial@2000 { 121*aa1a8ff2SEmmanuel Vadot compatible = "amlogic,meson-a1-uart", 122c66ec88fSEmmanuel Vadot "amlogic,meson-ao-uart"; 123c66ec88fSEmmanuel Vadot reg = <0x0 0x2000 0x0 0x18>; 124c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>; 125c66ec88fSEmmanuel Vadot clocks = <&xtal>, <&xtal>, <&xtal>; 126c66ec88fSEmmanuel Vadot clock-names = "xtal", "pclk", "baud"; 127c66ec88fSEmmanuel Vadot status = "disabled"; 128c66ec88fSEmmanuel Vadot }; 129fac71e4eSEmmanuel Vadot 130fac71e4eSEmmanuel Vadot gpio_intc: interrupt-controller@0440 { 131fac71e4eSEmmanuel Vadot compatible = "amlogic,meson-a1-gpio-intc", 132fac71e4eSEmmanuel Vadot "amlogic,meson-gpio-intc"; 133fac71e4eSEmmanuel Vadot reg = <0x0 0x0440 0x0 0x14>; 134fac71e4eSEmmanuel Vadot interrupt-controller; 135fac71e4eSEmmanuel Vadot #interrupt-cells = <2>; 136fac71e4eSEmmanuel Vadot amlogic,channel-interrupts = 137fac71e4eSEmmanuel Vadot <49 50 51 52 53 54 55 56>; 138fac71e4eSEmmanuel Vadot }; 139c66ec88fSEmmanuel Vadot }; 140c66ec88fSEmmanuel Vadot 141c66ec88fSEmmanuel Vadot gic: interrupt-controller@ff901000 { 142c66ec88fSEmmanuel Vadot compatible = "arm,gic-400"; 143c66ec88fSEmmanuel Vadot reg = <0x0 0xff901000 0x0 0x1000>, 144c66ec88fSEmmanuel Vadot <0x0 0xff902000 0x0 0x2000>, 145c66ec88fSEmmanuel Vadot <0x0 0xff904000 0x0 0x2000>, 146c66ec88fSEmmanuel Vadot <0x0 0xff906000 0x0 0x2000>; 147c66ec88fSEmmanuel Vadot interrupt-controller; 148c66ec88fSEmmanuel Vadot interrupts = <GIC_PPI 9 149c66ec88fSEmmanuel Vadot (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>; 150c66ec88fSEmmanuel Vadot #interrupt-cells = <3>; 151c66ec88fSEmmanuel Vadot #address-cells = <0>; 152c66ec88fSEmmanuel Vadot }; 153c66ec88fSEmmanuel Vadot }; 154c66ec88fSEmmanuel Vadot 155c66ec88fSEmmanuel Vadot timer { 156c66ec88fSEmmanuel Vadot compatible = "arm,armv8-timer"; 157c66ec88fSEmmanuel Vadot interrupts = <GIC_PPI 13 158c66ec88fSEmmanuel Vadot (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, 159c66ec88fSEmmanuel Vadot <GIC_PPI 14 160c66ec88fSEmmanuel Vadot (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, 161c66ec88fSEmmanuel Vadot <GIC_PPI 11 162c66ec88fSEmmanuel Vadot (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, 163c66ec88fSEmmanuel Vadot <GIC_PPI 10 164c66ec88fSEmmanuel Vadot (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>; 165c66ec88fSEmmanuel Vadot }; 166c66ec88fSEmmanuel Vadot 167c66ec88fSEmmanuel Vadot xtal: xtal-clk { 168c66ec88fSEmmanuel Vadot compatible = "fixed-clock"; 169c66ec88fSEmmanuel Vadot clock-frequency = <24000000>; 170c66ec88fSEmmanuel Vadot clock-output-names = "xtal"; 171c66ec88fSEmmanuel Vadot #clock-cells = <0>; 172c66ec88fSEmmanuel Vadot }; 173c66ec88fSEmmanuel Vadot}; 174