1c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2c66ec88fSEmmanuel Vadot/* 3c66ec88fSEmmanuel Vadot * Copyright (c) 2019 Linaro Ltd. 4c66ec88fSEmmanuel Vadot * Author: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> 5c66ec88fSEmmanuel Vadot */ 6c66ec88fSEmmanuel Vadot 7c66ec88fSEmmanuel Vadot#include <dt-bindings/clock/bm1880-clock.h> 8c66ec88fSEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h> 9c66ec88fSEmmanuel Vadot#include <dt-bindings/reset/bitmain,bm1880-reset.h> 10c66ec88fSEmmanuel Vadot 11c66ec88fSEmmanuel Vadot/ { 12c66ec88fSEmmanuel Vadot compatible = "bitmain,bm1880"; 13c66ec88fSEmmanuel Vadot interrupt-parent = <&gic>; 14c66ec88fSEmmanuel Vadot #address-cells = <2>; 15c66ec88fSEmmanuel Vadot #size-cells = <2>; 16c66ec88fSEmmanuel Vadot 17c66ec88fSEmmanuel Vadot cpus { 18c66ec88fSEmmanuel Vadot #address-cells = <1>; 19c66ec88fSEmmanuel Vadot #size-cells = <0>; 20c66ec88fSEmmanuel Vadot 21c66ec88fSEmmanuel Vadot cpu0: cpu@0 { 22c66ec88fSEmmanuel Vadot device_type = "cpu"; 23c66ec88fSEmmanuel Vadot compatible = "arm,cortex-a53"; 24c66ec88fSEmmanuel Vadot reg = <0x0>; 25c66ec88fSEmmanuel Vadot enable-method = "psci"; 26c66ec88fSEmmanuel Vadot }; 27c66ec88fSEmmanuel Vadot 28c66ec88fSEmmanuel Vadot cpu1: cpu@1 { 29c66ec88fSEmmanuel Vadot device_type = "cpu"; 30c66ec88fSEmmanuel Vadot compatible = "arm,cortex-a53"; 31c66ec88fSEmmanuel Vadot reg = <0x1>; 32c66ec88fSEmmanuel Vadot enable-method = "psci"; 33c66ec88fSEmmanuel Vadot }; 34c66ec88fSEmmanuel Vadot }; 35c66ec88fSEmmanuel Vadot 36c66ec88fSEmmanuel Vadot reserved-memory { 37c66ec88fSEmmanuel Vadot #address-cells = <2>; 38c66ec88fSEmmanuel Vadot #size-cells = <2>; 39c66ec88fSEmmanuel Vadot ranges; 40c66ec88fSEmmanuel Vadot 41c66ec88fSEmmanuel Vadot secmon@100000000 { 42c66ec88fSEmmanuel Vadot reg = <0x1 0x00000000 0x0 0x20000>; 43c66ec88fSEmmanuel Vadot no-map; 44c66ec88fSEmmanuel Vadot }; 45c66ec88fSEmmanuel Vadot 46c66ec88fSEmmanuel Vadot jpu@130000000 { 47c66ec88fSEmmanuel Vadot reg = <0x1 0x30000000 0x0 0x08000000>; // 128M 48c66ec88fSEmmanuel Vadot no-map; 49c66ec88fSEmmanuel Vadot }; 50c66ec88fSEmmanuel Vadot 51c66ec88fSEmmanuel Vadot vpu@138000000 { 52c66ec88fSEmmanuel Vadot reg = <0x1 0x38000000 0x0 0x08000000>; // 128M 53c66ec88fSEmmanuel Vadot no-map; 54c66ec88fSEmmanuel Vadot }; 55c66ec88fSEmmanuel Vadot }; 56c66ec88fSEmmanuel Vadot 57c66ec88fSEmmanuel Vadot psci { 58c66ec88fSEmmanuel Vadot compatible = "arm,psci-0.2"; 59c66ec88fSEmmanuel Vadot method = "smc"; 60c66ec88fSEmmanuel Vadot }; 61c66ec88fSEmmanuel Vadot 62c66ec88fSEmmanuel Vadot timer { 63c66ec88fSEmmanuel Vadot compatible = "arm,armv8-timer"; 64c66ec88fSEmmanuel Vadot interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, 65c66ec88fSEmmanuel Vadot <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, 66c66ec88fSEmmanuel Vadot <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, 67c66ec88fSEmmanuel Vadot <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; 68c66ec88fSEmmanuel Vadot }; 69c66ec88fSEmmanuel Vadot 70c66ec88fSEmmanuel Vadot osc: osc { 71c66ec88fSEmmanuel Vadot compatible = "fixed-clock"; 72c66ec88fSEmmanuel Vadot clock-frequency = <25000000>; 73c66ec88fSEmmanuel Vadot #clock-cells = <0>; 74c66ec88fSEmmanuel Vadot }; 75c66ec88fSEmmanuel Vadot 76c66ec88fSEmmanuel Vadot soc { 77c66ec88fSEmmanuel Vadot compatible = "simple-bus"; 78c66ec88fSEmmanuel Vadot #address-cells = <2>; 79c66ec88fSEmmanuel Vadot #size-cells = <2>; 80c66ec88fSEmmanuel Vadot ranges; 81c66ec88fSEmmanuel Vadot 82c66ec88fSEmmanuel Vadot gic: interrupt-controller@50001000 { 83c66ec88fSEmmanuel Vadot compatible = "arm,gic-400"; 84c66ec88fSEmmanuel Vadot reg = <0x0 0x50001000 0x0 0x1000>, 85c66ec88fSEmmanuel Vadot <0x0 0x50002000 0x0 0x2000>; 86c66ec88fSEmmanuel Vadot interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_LOW>; 87c66ec88fSEmmanuel Vadot interrupt-controller; 88c66ec88fSEmmanuel Vadot #interrupt-cells = <3>; 89c66ec88fSEmmanuel Vadot }; 90c66ec88fSEmmanuel Vadot 91c66ec88fSEmmanuel Vadot sctrl: system-controller@50010000 { 92c66ec88fSEmmanuel Vadot compatible = "bitmain,bm1880-sctrl", "syscon", 93c66ec88fSEmmanuel Vadot "simple-mfd"; 94c66ec88fSEmmanuel Vadot reg = <0x0 0x50010000 0x0 0x1000>; 95c66ec88fSEmmanuel Vadot #address-cells = <1>; 96c66ec88fSEmmanuel Vadot #size-cells = <1>; 97c66ec88fSEmmanuel Vadot ranges = <0x0 0x0 0x50010000 0x1000>; 98c66ec88fSEmmanuel Vadot 99c66ec88fSEmmanuel Vadot pinctrl: pinctrl@400 { 100c66ec88fSEmmanuel Vadot compatible = "bitmain,bm1880-pinctrl"; 101c66ec88fSEmmanuel Vadot reg = <0x400 0x120>; 102c66ec88fSEmmanuel Vadot }; 103c66ec88fSEmmanuel Vadot 104c66ec88fSEmmanuel Vadot clk: clock-controller@e8 { 105c66ec88fSEmmanuel Vadot compatible = "bitmain,bm1880-clk"; 106c66ec88fSEmmanuel Vadot reg = <0xe8 0x0c>, <0x800 0xb0>; 107c66ec88fSEmmanuel Vadot reg-names = "pll", "sys"; 108c66ec88fSEmmanuel Vadot clocks = <&osc>; 109c66ec88fSEmmanuel Vadot clock-names = "osc"; 110c66ec88fSEmmanuel Vadot #clock-cells = <1>; 111c66ec88fSEmmanuel Vadot }; 112c66ec88fSEmmanuel Vadot 113c66ec88fSEmmanuel Vadot rst: reset-controller@c00 { 114c66ec88fSEmmanuel Vadot compatible = "bitmain,bm1880-reset"; 115c66ec88fSEmmanuel Vadot reg = <0xc00 0x8>; 116c66ec88fSEmmanuel Vadot #reset-cells = <1>; 117c66ec88fSEmmanuel Vadot }; 118c66ec88fSEmmanuel Vadot }; 119c66ec88fSEmmanuel Vadot 120c66ec88fSEmmanuel Vadot gpio0: gpio@50027000 { 121c66ec88fSEmmanuel Vadot #address-cells = <1>; 122c66ec88fSEmmanuel Vadot #size-cells = <0>; 123c66ec88fSEmmanuel Vadot compatible = "snps,dw-apb-gpio"; 124c66ec88fSEmmanuel Vadot reg = <0x0 0x50027000 0x0 0x400>; 125c66ec88fSEmmanuel Vadot 126c66ec88fSEmmanuel Vadot porta: gpio-controller@0 { 127c66ec88fSEmmanuel Vadot compatible = "snps,dw-apb-gpio-port"; 128c66ec88fSEmmanuel Vadot gpio-controller; 129c66ec88fSEmmanuel Vadot #gpio-cells = <2>; 1305def4c47SEmmanuel Vadot ngpios = <32>; 131c66ec88fSEmmanuel Vadot reg = <0>; 132c66ec88fSEmmanuel Vadot interrupt-controller; 133c66ec88fSEmmanuel Vadot #interrupt-cells = <2>; 134c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>; 135c66ec88fSEmmanuel Vadot }; 136c66ec88fSEmmanuel Vadot }; 137c66ec88fSEmmanuel Vadot 138c66ec88fSEmmanuel Vadot gpio1: gpio@50027400 { 139c66ec88fSEmmanuel Vadot #address-cells = <1>; 140c66ec88fSEmmanuel Vadot #size-cells = <0>; 141c66ec88fSEmmanuel Vadot compatible = "snps,dw-apb-gpio"; 142c66ec88fSEmmanuel Vadot reg = <0x0 0x50027400 0x0 0x400>; 143c66ec88fSEmmanuel Vadot 144c66ec88fSEmmanuel Vadot portb: gpio-controller@0 { 145c66ec88fSEmmanuel Vadot compatible = "snps,dw-apb-gpio-port"; 146c66ec88fSEmmanuel Vadot gpio-controller; 147c66ec88fSEmmanuel Vadot #gpio-cells = <2>; 1485def4c47SEmmanuel Vadot ngpios = <32>; 149c66ec88fSEmmanuel Vadot reg = <0>; 150c66ec88fSEmmanuel Vadot interrupt-controller; 151c66ec88fSEmmanuel Vadot #interrupt-cells = <2>; 152c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; 153c66ec88fSEmmanuel Vadot }; 154c66ec88fSEmmanuel Vadot }; 155c66ec88fSEmmanuel Vadot 156c66ec88fSEmmanuel Vadot gpio2: gpio@50027800 { 157c66ec88fSEmmanuel Vadot #address-cells = <1>; 158c66ec88fSEmmanuel Vadot #size-cells = <0>; 159c66ec88fSEmmanuel Vadot compatible = "snps,dw-apb-gpio"; 160c66ec88fSEmmanuel Vadot reg = <0x0 0x50027800 0x0 0x400>; 161c66ec88fSEmmanuel Vadot 162c66ec88fSEmmanuel Vadot portc: gpio-controller@0 { 163c66ec88fSEmmanuel Vadot compatible = "snps,dw-apb-gpio-port"; 164c66ec88fSEmmanuel Vadot gpio-controller; 165c66ec88fSEmmanuel Vadot #gpio-cells = <2>; 1665def4c47SEmmanuel Vadot ngpios = <8>; 167c66ec88fSEmmanuel Vadot reg = <0>; 168c66ec88fSEmmanuel Vadot interrupt-controller; 169c66ec88fSEmmanuel Vadot #interrupt-cells = <2>; 170c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>; 171c66ec88fSEmmanuel Vadot }; 172c66ec88fSEmmanuel Vadot }; 173c66ec88fSEmmanuel Vadot 174c66ec88fSEmmanuel Vadot uart0: serial@58018000 { 175c66ec88fSEmmanuel Vadot compatible = "snps,dw-apb-uart"; 176c66ec88fSEmmanuel Vadot reg = <0x0 0x58018000 0x0 0x2000>; 177c66ec88fSEmmanuel Vadot clocks = <&clk BM1880_CLK_UART_500M>, 178c66ec88fSEmmanuel Vadot <&clk BM1880_CLK_APB_UART>; 179c66ec88fSEmmanuel Vadot clock-names = "baudclk", "apb_pclk"; 180c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 181c66ec88fSEmmanuel Vadot reg-shift = <2>; 182c66ec88fSEmmanuel Vadot reg-io-width = <4>; 183c66ec88fSEmmanuel Vadot resets = <&rst BM1880_RST_UART0_1_CLK>; 184c66ec88fSEmmanuel Vadot status = "disabled"; 185c66ec88fSEmmanuel Vadot }; 186c66ec88fSEmmanuel Vadot 187*84943d6fSEmmanuel Vadot uart1: serial@5801a000 { 188c66ec88fSEmmanuel Vadot compatible = "snps,dw-apb-uart"; 189c66ec88fSEmmanuel Vadot reg = <0x0 0x5801a000 0x0 0x2000>; 190c66ec88fSEmmanuel Vadot clocks = <&clk BM1880_CLK_UART_500M>, 191c66ec88fSEmmanuel Vadot <&clk BM1880_CLK_APB_UART>; 192c66ec88fSEmmanuel Vadot clock-names = "baudclk", "apb_pclk"; 193c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; 194c66ec88fSEmmanuel Vadot reg-shift = <2>; 195c66ec88fSEmmanuel Vadot reg-io-width = <4>; 196c66ec88fSEmmanuel Vadot resets = <&rst BM1880_RST_UART0_1_ACLK>; 197c66ec88fSEmmanuel Vadot status = "disabled"; 198c66ec88fSEmmanuel Vadot }; 199c66ec88fSEmmanuel Vadot 200*84943d6fSEmmanuel Vadot uart2: serial@5801c000 { 201c66ec88fSEmmanuel Vadot compatible = "snps,dw-apb-uart"; 202c66ec88fSEmmanuel Vadot reg = <0x0 0x5801c000 0x0 0x2000>; 203c66ec88fSEmmanuel Vadot clocks = <&clk BM1880_CLK_UART_500M>, 204c66ec88fSEmmanuel Vadot <&clk BM1880_CLK_APB_UART>; 205c66ec88fSEmmanuel Vadot clock-names = "baudclk", "apb_pclk"; 206c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; 207c66ec88fSEmmanuel Vadot reg-shift = <2>; 208c66ec88fSEmmanuel Vadot reg-io-width = <4>; 209c66ec88fSEmmanuel Vadot resets = <&rst BM1880_RST_UART2_3_CLK>; 210c66ec88fSEmmanuel Vadot status = "disabled"; 211c66ec88fSEmmanuel Vadot }; 212c66ec88fSEmmanuel Vadot 213*84943d6fSEmmanuel Vadot uart3: serial@5801e000 { 214c66ec88fSEmmanuel Vadot compatible = "snps,dw-apb-uart"; 215c66ec88fSEmmanuel Vadot reg = <0x0 0x5801e000 0x0 0x2000>; 216c66ec88fSEmmanuel Vadot clocks = <&clk BM1880_CLK_UART_500M>, 217c66ec88fSEmmanuel Vadot <&clk BM1880_CLK_APB_UART>; 218c66ec88fSEmmanuel Vadot clock-names = "baudclk", "apb_pclk"; 219c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>; 220c66ec88fSEmmanuel Vadot reg-shift = <2>; 221c66ec88fSEmmanuel Vadot reg-io-width = <4>; 222c66ec88fSEmmanuel Vadot resets = <&rst BM1880_RST_UART2_3_ACLK>; 223c66ec88fSEmmanuel Vadot status = "disabled"; 224c66ec88fSEmmanuel Vadot }; 225c66ec88fSEmmanuel Vadot }; 226c66ec88fSEmmanuel Vadot}; 227