1c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0 OR MIT) 2c66ec88fSEmmanuel Vadot/* 3c66ec88fSEmmanuel Vadot * Copyright (C) 2018 Synaptics Incorporated 4c66ec88fSEmmanuel Vadot * 5c66ec88fSEmmanuel Vadot * Author: Jisheng Zhang <jszhang@kernel.org> 6c66ec88fSEmmanuel Vadot */ 7c66ec88fSEmmanuel Vadot 8c66ec88fSEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h> 9c66ec88fSEmmanuel Vadot 10c66ec88fSEmmanuel Vadot/ { 11c66ec88fSEmmanuel Vadot compatible = "syna,as370"; 12c66ec88fSEmmanuel Vadot interrupt-parent = <&gic>; 13c66ec88fSEmmanuel Vadot #address-cells = <2>; 14c66ec88fSEmmanuel Vadot #size-cells = <2>; 15c66ec88fSEmmanuel Vadot 16c66ec88fSEmmanuel Vadot psci { 17c66ec88fSEmmanuel Vadot compatible = "arm,psci-1.0"; 18c66ec88fSEmmanuel Vadot method = "smc"; 19c66ec88fSEmmanuel Vadot }; 20c66ec88fSEmmanuel Vadot 21c66ec88fSEmmanuel Vadot cpus { 22c66ec88fSEmmanuel Vadot #address-cells = <1>; 23c66ec88fSEmmanuel Vadot #size-cells = <0>; 24c66ec88fSEmmanuel Vadot 25c66ec88fSEmmanuel Vadot cpu0: cpu@0 { 26c66ec88fSEmmanuel Vadot compatible = "arm,cortex-a53"; 27c66ec88fSEmmanuel Vadot device_type = "cpu"; 28c66ec88fSEmmanuel Vadot reg = <0x0>; 29c66ec88fSEmmanuel Vadot enable-method = "psci"; 30c66ec88fSEmmanuel Vadot next-level-cache = <&l2>; 31c66ec88fSEmmanuel Vadot cpu-idle-states = <&CPU_SLEEP_0>; 32c66ec88fSEmmanuel Vadot }; 33c66ec88fSEmmanuel Vadot 34c66ec88fSEmmanuel Vadot cpu1: cpu@1 { 35c66ec88fSEmmanuel Vadot compatible = "arm,cortex-a53"; 36c66ec88fSEmmanuel Vadot device_type = "cpu"; 37c66ec88fSEmmanuel Vadot reg = <0x1>; 38c66ec88fSEmmanuel Vadot enable-method = "psci"; 39c66ec88fSEmmanuel Vadot next-level-cache = <&l2>; 40c66ec88fSEmmanuel Vadot cpu-idle-states = <&CPU_SLEEP_0>; 41c66ec88fSEmmanuel Vadot }; 42c66ec88fSEmmanuel Vadot 43c66ec88fSEmmanuel Vadot cpu2: cpu@2 { 44c66ec88fSEmmanuel Vadot compatible = "arm,cortex-a53"; 45c66ec88fSEmmanuel Vadot device_type = "cpu"; 46c66ec88fSEmmanuel Vadot reg = <0x2>; 47c66ec88fSEmmanuel Vadot enable-method = "psci"; 48c66ec88fSEmmanuel Vadot next-level-cache = <&l2>; 49c66ec88fSEmmanuel Vadot cpu-idle-states = <&CPU_SLEEP_0>; 50c66ec88fSEmmanuel Vadot }; 51c66ec88fSEmmanuel Vadot 52c66ec88fSEmmanuel Vadot cpu3: cpu@3 { 53c66ec88fSEmmanuel Vadot compatible = "arm,cortex-a53"; 54c66ec88fSEmmanuel Vadot device_type = "cpu"; 55c66ec88fSEmmanuel Vadot reg = <0x3>; 56c66ec88fSEmmanuel Vadot enable-method = "psci"; 57c66ec88fSEmmanuel Vadot next-level-cache = <&l2>; 58c66ec88fSEmmanuel Vadot cpu-idle-states = <&CPU_SLEEP_0>; 59c66ec88fSEmmanuel Vadot }; 60c66ec88fSEmmanuel Vadot 61c66ec88fSEmmanuel Vadot l2: cache { 62c66ec88fSEmmanuel Vadot compatible = "cache"; 63c66ec88fSEmmanuel Vadot }; 64c66ec88fSEmmanuel Vadot 65c66ec88fSEmmanuel Vadot idle-states { 66c66ec88fSEmmanuel Vadot entry-method = "psci"; 67c66ec88fSEmmanuel Vadot CPU_SLEEP_0: cpu-sleep-0 { 68c66ec88fSEmmanuel Vadot compatible = "arm,idle-state"; 69c66ec88fSEmmanuel Vadot local-timer-stop; 70c66ec88fSEmmanuel Vadot arm,psci-suspend-param = <0x0010000>; 71c66ec88fSEmmanuel Vadot entry-latency-us = <75>; 72c66ec88fSEmmanuel Vadot exit-latency-us = <155>; 73c66ec88fSEmmanuel Vadot min-residency-us = <1000>; 74c66ec88fSEmmanuel Vadot }; 75c66ec88fSEmmanuel Vadot }; 76c66ec88fSEmmanuel Vadot }; 77c66ec88fSEmmanuel Vadot 78c66ec88fSEmmanuel Vadot osc: osc { 79c66ec88fSEmmanuel Vadot compatible = "fixed-clock"; 80c66ec88fSEmmanuel Vadot #clock-cells = <0>; 81c66ec88fSEmmanuel Vadot clock-frequency = <25000000>; 82c66ec88fSEmmanuel Vadot }; 83c66ec88fSEmmanuel Vadot 84c66ec88fSEmmanuel Vadot pmu { 85c66ec88fSEmmanuel Vadot compatible = "arm,cortex-a53-pmu"; 86c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>, 87c66ec88fSEmmanuel Vadot <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>, 88c66ec88fSEmmanuel Vadot <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>, 89c66ec88fSEmmanuel Vadot <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 90c66ec88fSEmmanuel Vadot interrupt-affinity = <&cpu0>, 91c66ec88fSEmmanuel Vadot <&cpu1>, 92c66ec88fSEmmanuel Vadot <&cpu2>, 93c66ec88fSEmmanuel Vadot <&cpu3>; 94c66ec88fSEmmanuel Vadot }; 95c66ec88fSEmmanuel Vadot 96c66ec88fSEmmanuel Vadot timer { 97c66ec88fSEmmanuel Vadot compatible = "arm,armv8-timer"; 98c66ec88fSEmmanuel Vadot interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 99c66ec88fSEmmanuel Vadot <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 100c66ec88fSEmmanuel Vadot <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 101c66ec88fSEmmanuel Vadot <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 102c66ec88fSEmmanuel Vadot }; 103c66ec88fSEmmanuel Vadot 104c66ec88fSEmmanuel Vadot soc@f7000000 { 105c66ec88fSEmmanuel Vadot compatible = "simple-bus"; 106c66ec88fSEmmanuel Vadot #address-cells = <1>; 107c66ec88fSEmmanuel Vadot #size-cells = <1>; 108c66ec88fSEmmanuel Vadot ranges = <0 0 0xf7000000 0x1000000>; 109c66ec88fSEmmanuel Vadot 110c66ec88fSEmmanuel Vadot gic: interrupt-controller@901000 { 111c66ec88fSEmmanuel Vadot compatible = "arm,gic-400"; 112c66ec88fSEmmanuel Vadot #interrupt-cells = <3>; 113c66ec88fSEmmanuel Vadot interrupt-controller; 114c66ec88fSEmmanuel Vadot reg = <0x901000 0x1000>, 115c66ec88fSEmmanuel Vadot <0x902000 0x2000>, 116c66ec88fSEmmanuel Vadot <0x904000 0x2000>, 117c66ec88fSEmmanuel Vadot <0x906000 0x2000>; 118c66ec88fSEmmanuel Vadot interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 119c66ec88fSEmmanuel Vadot }; 120c66ec88fSEmmanuel Vadot 121c66ec88fSEmmanuel Vadot apb@e80000 { 122c66ec88fSEmmanuel Vadot compatible = "simple-bus"; 123c66ec88fSEmmanuel Vadot #address-cells = <1>; 124c66ec88fSEmmanuel Vadot #size-cells = <1>; 125c66ec88fSEmmanuel Vadot ranges = <0 0xe80000 0x10000>; 126c66ec88fSEmmanuel Vadot 127c66ec88fSEmmanuel Vadot uart0: serial@c00 { 128c66ec88fSEmmanuel Vadot compatible = "snps,dw-apb-uart"; 129c66ec88fSEmmanuel Vadot reg = <0xc00 0x100>; 130c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>; 131c66ec88fSEmmanuel Vadot clocks = <&osc>; 132c66ec88fSEmmanuel Vadot reg-shift = <2>; 133c66ec88fSEmmanuel Vadot status = "disabled"; 134c66ec88fSEmmanuel Vadot }; 135c66ec88fSEmmanuel Vadot 136c66ec88fSEmmanuel Vadot gpio0: gpio@1800 { 137c66ec88fSEmmanuel Vadot compatible = "snps,dw-apb-gpio"; 138c66ec88fSEmmanuel Vadot reg = <0x1800 0x400>; 139c66ec88fSEmmanuel Vadot #address-cells = <1>; 140c66ec88fSEmmanuel Vadot #size-cells = <0>; 141c66ec88fSEmmanuel Vadot 142c66ec88fSEmmanuel Vadot porta: gpio-port@0 { 143c66ec88fSEmmanuel Vadot compatible = "snps,dw-apb-gpio-port"; 144c66ec88fSEmmanuel Vadot gpio-controller; 145c66ec88fSEmmanuel Vadot #gpio-cells = <2>; 146*5def4c47SEmmanuel Vadot ngpios = <32>; 147c66ec88fSEmmanuel Vadot reg = <0>; 148c66ec88fSEmmanuel Vadot interrupt-controller; 149c66ec88fSEmmanuel Vadot #interrupt-cells = <2>; 150c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; 151c66ec88fSEmmanuel Vadot }; 152c66ec88fSEmmanuel Vadot }; 153c66ec88fSEmmanuel Vadot 154c66ec88fSEmmanuel Vadot gpio1: gpio@2000 { 155c66ec88fSEmmanuel Vadot compatible = "snps,dw-apb-gpio"; 156c66ec88fSEmmanuel Vadot reg = <0x2000 0x400>; 157c66ec88fSEmmanuel Vadot #address-cells = <1>; 158c66ec88fSEmmanuel Vadot #size-cells = <0>; 159c66ec88fSEmmanuel Vadot 160c66ec88fSEmmanuel Vadot portb: gpio-port@1 { 161c66ec88fSEmmanuel Vadot compatible = "snps,dw-apb-gpio-port"; 162c66ec88fSEmmanuel Vadot gpio-controller; 163c66ec88fSEmmanuel Vadot #gpio-cells = <2>; 164*5def4c47SEmmanuel Vadot ngpios = <32>; 165c66ec88fSEmmanuel Vadot reg = <0>; 166c66ec88fSEmmanuel Vadot interrupt-controller; 167c66ec88fSEmmanuel Vadot #interrupt-cells = <2>; 168c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; 169c66ec88fSEmmanuel Vadot }; 170c66ec88fSEmmanuel Vadot }; 171c66ec88fSEmmanuel Vadot }; 172c66ec88fSEmmanuel Vadot }; 173c66ec88fSEmmanuel Vadot}; 174