dts: riscv: add DTS and related bindings of andes_ae350 soc
Add DTSI file of andes_ae350 SoC and bindings of GPIO driver. Signed-off-by: Jim Shu <cwshu@andestech.com>
This commit is contained in:
parent
d7b53226d1
commit
e4cb3469d6
2 changed files with 309 additions and 0 deletions
27
dts/bindings/gpio/andestech,atcgpio100.yaml
Normal file
27
dts/bindings/gpio/andestech,atcgpio100.yaml
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
# Copyright (c) 2021, Andes Technology Corporation.
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
description:
|
||||
This is a representation of Andes Technology atcgpio100 GPIO node
|
||||
|
||||
compatible: "andestech,atcgpio100"
|
||||
|
||||
include: [gpio-controller.yaml, base.yaml]
|
||||
|
||||
properties:
|
||||
|
||||
reg:
|
||||
required: true
|
||||
|
||||
label:
|
||||
required: true
|
||||
|
||||
interrupts:
|
||||
required: true
|
||||
|
||||
"#gpio-cells":
|
||||
const: 2
|
||||
|
||||
gpio-cells:
|
||||
- pin
|
||||
- flags
|
||||
282
dts/riscv/andes_v5_ae350.dtsi
Normal file
282
dts/riscv/andes_v5_ae350.dtsi
Normal file
|
|
@ -0,0 +1,282 @@
|
|||
/*
|
||||
* Copyright (c) 2021 Andes Technology Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <mem.h>
|
||||
|
||||
/ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
timebase-frequency = <60000000>;
|
||||
CPU0: cpu@0 {
|
||||
compatible = "riscv";
|
||||
device_type = "cpu";
|
||||
reg = <0>;
|
||||
status = "okay";
|
||||
riscv,isa = "rv32imafdcxandes";
|
||||
mmu-type = "riscv,sv32";
|
||||
clock-frequency = <60000000>;
|
||||
i-cache-line-size = <32>;
|
||||
d-cache-line-size = <32>;
|
||||
CPU0_intc: interrupt-controller {
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-controller;
|
||||
compatible = "riscv,cpu-intc";
|
||||
};
|
||||
};
|
||||
CPU1: cpu@1 {
|
||||
compatible = "riscv";
|
||||
device_type = "cpu";
|
||||
reg = <1>;
|
||||
status = "okay";
|
||||
riscv,isa = "rv32imafdcxandes";
|
||||
mmu-type = "riscv,sv32";
|
||||
clock-frequency = <60000000>;
|
||||
i-cache-line-size = <32>;
|
||||
d-cache-line-size = <32>;
|
||||
CPU1_intc: interrupt-controller {
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-controller;
|
||||
compatible = "riscv,cpu-intc";
|
||||
};
|
||||
};
|
||||
CPU2: cpu@2 {
|
||||
compatible = "riscv";
|
||||
device_type = "cpu";
|
||||
reg = <2>;
|
||||
status = "okay";
|
||||
riscv,isa = "rv32imafdcxandes";
|
||||
mmu-type = "riscv,sv32";
|
||||
clock-frequency = <60000000>;
|
||||
i-cache-line-size = <32>;
|
||||
d-cache-line-size = <32>;
|
||||
CPU2_intc: interrupt-controller {
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-controller;
|
||||
compatible = "riscv,cpu-intc";
|
||||
};
|
||||
};
|
||||
CPU3: cpu@3 {
|
||||
compatible = "riscv";
|
||||
device_type = "cpu";
|
||||
reg = <3>;
|
||||
status = "okay";
|
||||
riscv,isa = "rv32imafdcxandes";
|
||||
mmu-type = "riscv,sv32";
|
||||
clock-frequency = <60000000>;
|
||||
i-cache-line-size = <32>;
|
||||
d-cache-line-size = <32>;
|
||||
CPU3_intc: interrupt-controller {
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-controller;
|
||||
compatible = "riscv,cpu-intc";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
dram: memory@0 {
|
||||
device_type = "memory";
|
||||
compatible = "mmio-sram";
|
||||
reg = <0x00000000 0x40000000>;
|
||||
};
|
||||
|
||||
soc {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "andestech,ae350";
|
||||
ranges;
|
||||
|
||||
plic0: interrupt-controller@e4000000 {
|
||||
compatible = "sifive,plic-1.0.0";
|
||||
#address-cells = <1>;
|
||||
#interrupt-cells = <2>;
|
||||
interrupt-controller;
|
||||
reg = < 0xe4000000 0x00001000
|
||||
0xe4002000 0x00000800
|
||||
0xe4200000 0x00010000 >;
|
||||
reg-names = "prio", "irq_en", "reg";
|
||||
riscv,max-priority = <255>;
|
||||
riscv,ndev = <1023>;
|
||||
interrupts-extended = <&CPU0_intc 11 &CPU1_intc 11
|
||||
&CPU2_intc 11 &CPU3_intc 11>;
|
||||
};
|
||||
|
||||
plic_sw0: interrupt-controller@e6400000 {
|
||||
compatible = "andestech,plic_sw";
|
||||
#address-cells = <1>;
|
||||
#interrupt-cells = <2>;
|
||||
interrupt-controller;
|
||||
reg = <0xe6400000 0x00400000>;
|
||||
riscv,max-priority = <255>;
|
||||
riscv,ndev = <1023>;
|
||||
interrupts-extended = <&CPU0_intc 3 &CPU1_intc 3
|
||||
&CPU2_intc 3 &CPU3_intc 3>;
|
||||
};
|
||||
|
||||
smu: smu@f0100000 {
|
||||
compatible = "andestech,atcsmu100";
|
||||
reg = <0xf0100000 0x1000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
l2_cache: cache-controller@e0500000 {
|
||||
compatible = "andestech,l2c";
|
||||
reg = <0xe0500000 0x1000>;
|
||||
cache-unified;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart0: serial@f0200020 {
|
||||
compatible = "ns16550";
|
||||
label = "UART_0";
|
||||
reg = <0xf0200020 0x1000>;
|
||||
reg-shift = <2>;
|
||||
interrupts = <8 1>;
|
||||
interrupt-parent = <&plic0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart1: serial@f0300020 {
|
||||
compatible = "ns16550";
|
||||
label = "UART_1";
|
||||
reg = <0xf0300020 0x1000>;
|
||||
reg-shift = <2>;
|
||||
interrupts = <9 1>;
|
||||
interrupt-parent = <&plic0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pit0: pit@f0400000 {
|
||||
compatible = "andestech,atcpit100";
|
||||
label = "PIT_0";
|
||||
reg = <0xf0400000 0x1000>;
|
||||
interrupts = <3 1>;
|
||||
interrupt-parent = <&plic0>;
|
||||
clock-frequency = <60000000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
rtc0: rtc@f0600000 {
|
||||
compatible = "andestech,atcrtc100";
|
||||
reg = <0xf0600000 0x1000>;
|
||||
interrupts = <1 1>, <2 1>;
|
||||
interrupt-parent = <&plic0>;
|
||||
wakeup-source;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
gpio0: gpio@f0700000 {
|
||||
compatible = "andestech,atcgpio100";
|
||||
label = "GPIO_0";
|
||||
reg = <0xf0700000 0x1000>;
|
||||
interrupts = <7 1>;
|
||||
interrupt-parent = <&plic0>;
|
||||
gpio-controller;
|
||||
ngpios = <32>;
|
||||
#gpio-cells = <2>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c0: i2c@f0a00000 {
|
||||
compatible = "andestech,atciic100";
|
||||
label = "I2C_0";
|
||||
reg = <0xf0a00000 0x1000>;
|
||||
interrupts = <6 1>;
|
||||
interrupt-parent = <&plic0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
spi0: spi@f0b00000 {
|
||||
compatible = "andestech,atcspi200";
|
||||
label = "SPI_0";
|
||||
reg = <0xf0b00000 0x1000
|
||||
0x80000000 DT_SIZE_K(1024)>;
|
||||
reg-names = "control", "mem";
|
||||
interrupts = <4 1>;
|
||||
interrupt-parent = <&plic0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
num-cs = <1>;
|
||||
clock-frequency = <66000000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
spi1: spi@f0f00000 {
|
||||
compatible = "andestech,atcspi200";
|
||||
label = "SPI_1";
|
||||
reg = <0xf0f00000 0x1000>;
|
||||
reg-names = "control";
|
||||
interrupts = <5 1>;
|
||||
interrupt-parent = <&plic0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
num-cs = <1>;
|
||||
clock-frequency = <66000000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
dma0: dma@f0c00000 {
|
||||
compatible = "andestech,atcdmac300";
|
||||
reg = <0xf0c00000 0x1000>;
|
||||
interrupts = <10 1>;
|
||||
interrupt-parent = <&plic0>;
|
||||
dma-channels = <8>;
|
||||
};
|
||||
|
||||
eth0: eth@e0100000 {
|
||||
compatible = "andestech,atfmac100";
|
||||
label = "ETH_0";
|
||||
reg = <0xe0100000 0x1000>;
|
||||
interrupts = <19 2>;
|
||||
interrupt-parent = <&plic0>;
|
||||
local-mac-address = [FC 8C EB 9B A6 51];
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
lcd0: lcd@e0200000 {
|
||||
compatible = "andestech,atflcdc100";
|
||||
label = "LCD_0";
|
||||
reg = <0xe0200000 0x1000>;
|
||||
interrupts = <20 1>;
|
||||
interrupt-parent = <&plic0>;
|
||||
clock-frequency = <30000000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
smc0: smc@e0400000 {
|
||||
compatible = "andestech,atfsmc020";
|
||||
reg = <0xe0400000 0x1000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
snd0: snd@f0d00000 {
|
||||
compatible = "andestech,atfac97";
|
||||
reg = <0xf0d00000 0x1000>;
|
||||
interrupts = <17 1>;
|
||||
interrupt-parent = <&plic0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
mmc0: mmc@f0e00000 {
|
||||
compatible = "andestech,atfsdc010";
|
||||
reg = <0xf0e00000 0x1000>;
|
||||
interrupts = <18 1>;
|
||||
interrupt-parent = <&plic0>;
|
||||
cap-sd-highspeed;
|
||||
max-frequency = <100000000>;
|
||||
clock-freq-min-max = <400000 100000000>;
|
||||
fifo-depth = <0x10>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
Loading…
Reference in a new issue