162306a36Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (c) 2019 Linaro Ltd. 462306a36Sopenharmony_ci * Author: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> 562306a36Sopenharmony_ci */ 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci#include <dt-bindings/clock/bm1880-clock.h> 862306a36Sopenharmony_ci#include <dt-bindings/interrupt-controller/arm-gic.h> 962306a36Sopenharmony_ci#include <dt-bindings/reset/bitmain,bm1880-reset.h> 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci/ { 1262306a36Sopenharmony_ci compatible = "bitmain,bm1880"; 1362306a36Sopenharmony_ci interrupt-parent = <&gic>; 1462306a36Sopenharmony_ci #address-cells = <2>; 1562306a36Sopenharmony_ci #size-cells = <2>; 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci cpus { 1862306a36Sopenharmony_ci #address-cells = <1>; 1962306a36Sopenharmony_ci #size-cells = <0>; 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ci cpu0: cpu@0 { 2262306a36Sopenharmony_ci device_type = "cpu"; 2362306a36Sopenharmony_ci compatible = "arm,cortex-a53"; 2462306a36Sopenharmony_ci reg = <0x0>; 2562306a36Sopenharmony_ci enable-method = "psci"; 2662306a36Sopenharmony_ci }; 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci cpu1: cpu@1 { 2962306a36Sopenharmony_ci device_type = "cpu"; 3062306a36Sopenharmony_ci compatible = "arm,cortex-a53"; 3162306a36Sopenharmony_ci reg = <0x1>; 3262306a36Sopenharmony_ci enable-method = "psci"; 3362306a36Sopenharmony_ci }; 3462306a36Sopenharmony_ci }; 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci reserved-memory { 3762306a36Sopenharmony_ci #address-cells = <2>; 3862306a36Sopenharmony_ci #size-cells = <2>; 3962306a36Sopenharmony_ci ranges; 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ci secmon@100000000 { 4262306a36Sopenharmony_ci reg = <0x1 0x00000000 0x0 0x20000>; 4362306a36Sopenharmony_ci no-map; 4462306a36Sopenharmony_ci }; 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ci jpu@130000000 { 4762306a36Sopenharmony_ci reg = <0x1 0x30000000 0x0 0x08000000>; // 128M 4862306a36Sopenharmony_ci no-map; 4962306a36Sopenharmony_ci }; 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ci vpu@138000000 { 5262306a36Sopenharmony_ci reg = <0x1 0x38000000 0x0 0x08000000>; // 128M 5362306a36Sopenharmony_ci no-map; 5462306a36Sopenharmony_ci }; 5562306a36Sopenharmony_ci }; 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci psci { 5862306a36Sopenharmony_ci compatible = "arm,psci-0.2"; 5962306a36Sopenharmony_ci method = "smc"; 6062306a36Sopenharmony_ci }; 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ci timer { 6362306a36Sopenharmony_ci compatible = "arm,armv8-timer"; 6462306a36Sopenharmony_ci interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, 6562306a36Sopenharmony_ci <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, 6662306a36Sopenharmony_ci <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, 6762306a36Sopenharmony_ci <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; 6862306a36Sopenharmony_ci }; 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ci osc: osc { 7162306a36Sopenharmony_ci compatible = "fixed-clock"; 7262306a36Sopenharmony_ci clock-frequency = <25000000>; 7362306a36Sopenharmony_ci #clock-cells = <0>; 7462306a36Sopenharmony_ci }; 7562306a36Sopenharmony_ci 7662306a36Sopenharmony_ci soc { 7762306a36Sopenharmony_ci compatible = "simple-bus"; 7862306a36Sopenharmony_ci #address-cells = <2>; 7962306a36Sopenharmony_ci #size-cells = <2>; 8062306a36Sopenharmony_ci ranges; 8162306a36Sopenharmony_ci 8262306a36Sopenharmony_ci gic: interrupt-controller@50001000 { 8362306a36Sopenharmony_ci compatible = "arm,gic-400"; 8462306a36Sopenharmony_ci reg = <0x0 0x50001000 0x0 0x1000>, 8562306a36Sopenharmony_ci <0x0 0x50002000 0x0 0x2000>; 8662306a36Sopenharmony_ci interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_LOW>; 8762306a36Sopenharmony_ci interrupt-controller; 8862306a36Sopenharmony_ci #interrupt-cells = <3>; 8962306a36Sopenharmony_ci }; 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_ci sctrl: system-controller@50010000 { 9262306a36Sopenharmony_ci compatible = "bitmain,bm1880-sctrl", "syscon", 9362306a36Sopenharmony_ci "simple-mfd"; 9462306a36Sopenharmony_ci reg = <0x0 0x50010000 0x0 0x1000>; 9562306a36Sopenharmony_ci #address-cells = <1>; 9662306a36Sopenharmony_ci #size-cells = <1>; 9762306a36Sopenharmony_ci ranges = <0x0 0x0 0x50010000 0x1000>; 9862306a36Sopenharmony_ci 9962306a36Sopenharmony_ci pinctrl: pinctrl@400 { 10062306a36Sopenharmony_ci compatible = "bitmain,bm1880-pinctrl"; 10162306a36Sopenharmony_ci reg = <0x400 0x120>; 10262306a36Sopenharmony_ci }; 10362306a36Sopenharmony_ci 10462306a36Sopenharmony_ci clk: clock-controller@e8 { 10562306a36Sopenharmony_ci compatible = "bitmain,bm1880-clk"; 10662306a36Sopenharmony_ci reg = <0xe8 0x0c>, <0x800 0xb0>; 10762306a36Sopenharmony_ci reg-names = "pll", "sys"; 10862306a36Sopenharmony_ci clocks = <&osc>; 10962306a36Sopenharmony_ci clock-names = "osc"; 11062306a36Sopenharmony_ci #clock-cells = <1>; 11162306a36Sopenharmony_ci }; 11262306a36Sopenharmony_ci 11362306a36Sopenharmony_ci rst: reset-controller@c00 { 11462306a36Sopenharmony_ci compatible = "bitmain,bm1880-reset"; 11562306a36Sopenharmony_ci reg = <0xc00 0x8>; 11662306a36Sopenharmony_ci #reset-cells = <1>; 11762306a36Sopenharmony_ci }; 11862306a36Sopenharmony_ci }; 11962306a36Sopenharmony_ci 12062306a36Sopenharmony_ci gpio0: gpio@50027000 { 12162306a36Sopenharmony_ci #address-cells = <1>; 12262306a36Sopenharmony_ci #size-cells = <0>; 12362306a36Sopenharmony_ci compatible = "snps,dw-apb-gpio"; 12462306a36Sopenharmony_ci reg = <0x0 0x50027000 0x0 0x400>; 12562306a36Sopenharmony_ci 12662306a36Sopenharmony_ci porta: gpio-controller@0 { 12762306a36Sopenharmony_ci compatible = "snps,dw-apb-gpio-port"; 12862306a36Sopenharmony_ci gpio-controller; 12962306a36Sopenharmony_ci #gpio-cells = <2>; 13062306a36Sopenharmony_ci ngpios = <32>; 13162306a36Sopenharmony_ci reg = <0>; 13262306a36Sopenharmony_ci interrupt-controller; 13362306a36Sopenharmony_ci #interrupt-cells = <2>; 13462306a36Sopenharmony_ci interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>; 13562306a36Sopenharmony_ci }; 13662306a36Sopenharmony_ci }; 13762306a36Sopenharmony_ci 13862306a36Sopenharmony_ci gpio1: gpio@50027400 { 13962306a36Sopenharmony_ci #address-cells = <1>; 14062306a36Sopenharmony_ci #size-cells = <0>; 14162306a36Sopenharmony_ci compatible = "snps,dw-apb-gpio"; 14262306a36Sopenharmony_ci reg = <0x0 0x50027400 0x0 0x400>; 14362306a36Sopenharmony_ci 14462306a36Sopenharmony_ci portb: gpio-controller@0 { 14562306a36Sopenharmony_ci compatible = "snps,dw-apb-gpio-port"; 14662306a36Sopenharmony_ci gpio-controller; 14762306a36Sopenharmony_ci #gpio-cells = <2>; 14862306a36Sopenharmony_ci ngpios = <32>; 14962306a36Sopenharmony_ci reg = <0>; 15062306a36Sopenharmony_ci interrupt-controller; 15162306a36Sopenharmony_ci #interrupt-cells = <2>; 15262306a36Sopenharmony_ci interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; 15362306a36Sopenharmony_ci }; 15462306a36Sopenharmony_ci }; 15562306a36Sopenharmony_ci 15662306a36Sopenharmony_ci gpio2: gpio@50027800 { 15762306a36Sopenharmony_ci #address-cells = <1>; 15862306a36Sopenharmony_ci #size-cells = <0>; 15962306a36Sopenharmony_ci compatible = "snps,dw-apb-gpio"; 16062306a36Sopenharmony_ci reg = <0x0 0x50027800 0x0 0x400>; 16162306a36Sopenharmony_ci 16262306a36Sopenharmony_ci portc: gpio-controller@0 { 16362306a36Sopenharmony_ci compatible = "snps,dw-apb-gpio-port"; 16462306a36Sopenharmony_ci gpio-controller; 16562306a36Sopenharmony_ci #gpio-cells = <2>; 16662306a36Sopenharmony_ci ngpios = <8>; 16762306a36Sopenharmony_ci reg = <0>; 16862306a36Sopenharmony_ci interrupt-controller; 16962306a36Sopenharmony_ci #interrupt-cells = <2>; 17062306a36Sopenharmony_ci interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>; 17162306a36Sopenharmony_ci }; 17262306a36Sopenharmony_ci }; 17362306a36Sopenharmony_ci 17462306a36Sopenharmony_ci uart0: serial@58018000 { 17562306a36Sopenharmony_ci compatible = "snps,dw-apb-uart"; 17662306a36Sopenharmony_ci reg = <0x0 0x58018000 0x0 0x2000>; 17762306a36Sopenharmony_ci clocks = <&clk BM1880_CLK_UART_500M>, 17862306a36Sopenharmony_ci <&clk BM1880_CLK_APB_UART>; 17962306a36Sopenharmony_ci clock-names = "baudclk", "apb_pclk"; 18062306a36Sopenharmony_ci interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 18162306a36Sopenharmony_ci reg-shift = <2>; 18262306a36Sopenharmony_ci reg-io-width = <4>; 18362306a36Sopenharmony_ci resets = <&rst BM1880_RST_UART0_1_CLK>; 18462306a36Sopenharmony_ci status = "disabled"; 18562306a36Sopenharmony_ci }; 18662306a36Sopenharmony_ci 18762306a36Sopenharmony_ci uart1: serial@5801A000 { 18862306a36Sopenharmony_ci compatible = "snps,dw-apb-uart"; 18962306a36Sopenharmony_ci reg = <0x0 0x5801a000 0x0 0x2000>; 19062306a36Sopenharmony_ci clocks = <&clk BM1880_CLK_UART_500M>, 19162306a36Sopenharmony_ci <&clk BM1880_CLK_APB_UART>; 19262306a36Sopenharmony_ci clock-names = "baudclk", "apb_pclk"; 19362306a36Sopenharmony_ci interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; 19462306a36Sopenharmony_ci reg-shift = <2>; 19562306a36Sopenharmony_ci reg-io-width = <4>; 19662306a36Sopenharmony_ci resets = <&rst BM1880_RST_UART0_1_ACLK>; 19762306a36Sopenharmony_ci status = "disabled"; 19862306a36Sopenharmony_ci }; 19962306a36Sopenharmony_ci 20062306a36Sopenharmony_ci uart2: serial@5801C000 { 20162306a36Sopenharmony_ci compatible = "snps,dw-apb-uart"; 20262306a36Sopenharmony_ci reg = <0x0 0x5801c000 0x0 0x2000>; 20362306a36Sopenharmony_ci clocks = <&clk BM1880_CLK_UART_500M>, 20462306a36Sopenharmony_ci <&clk BM1880_CLK_APB_UART>; 20562306a36Sopenharmony_ci clock-names = "baudclk", "apb_pclk"; 20662306a36Sopenharmony_ci interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; 20762306a36Sopenharmony_ci reg-shift = <2>; 20862306a36Sopenharmony_ci reg-io-width = <4>; 20962306a36Sopenharmony_ci resets = <&rst BM1880_RST_UART2_3_CLK>; 21062306a36Sopenharmony_ci status = "disabled"; 21162306a36Sopenharmony_ci }; 21262306a36Sopenharmony_ci 21362306a36Sopenharmony_ci uart3: serial@5801E000 { 21462306a36Sopenharmony_ci compatible = "snps,dw-apb-uart"; 21562306a36Sopenharmony_ci reg = <0x0 0x5801e000 0x0 0x2000>; 21662306a36Sopenharmony_ci clocks = <&clk BM1880_CLK_UART_500M>, 21762306a36Sopenharmony_ci <&clk BM1880_CLK_APB_UART>; 21862306a36Sopenharmony_ci clock-names = "baudclk", "apb_pclk"; 21962306a36Sopenharmony_ci interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>; 22062306a36Sopenharmony_ci reg-shift = <2>; 22162306a36Sopenharmony_ci reg-io-width = <4>; 22262306a36Sopenharmony_ci resets = <&rst BM1880_RST_UART2_3_ACLK>; 22362306a36Sopenharmony_ci status = "disabled"; 22462306a36Sopenharmony_ci }; 22562306a36Sopenharmony_ci }; 22662306a36Sopenharmony_ci}; 227