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