mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-03-22 15:36:55 +08:00
MIPS: dts: loongson: Add Smartloong-1C board
Add a device tree for Smartloong-1C board, supporting CPU, clock, INTC, UART, Ethernet, GPIO, USB host, RTC, watchdog, DMA, and NAND. Signed-off-by: Keguang Zhang <keguang.zhang@gmail.com> Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
This commit is contained in:
committed by
Thomas Bogendoerfer
parent
9c60707729
commit
cf4b382a92
@@ -8,3 +8,4 @@ dtb-$(CONFIG_MACH_LOONGSON64) += loongson64v_4core_virtio.dtb
|
||||
|
||||
dtb-$(CONFIG_MACH_LOONGSON32) += ls1b-demo.dtb
|
||||
dtb-$(CONFIG_MACH_LOONGSON32) += lsgz_1b_dev.dtb
|
||||
dtb-$(CONFIG_MACH_LOONGSON32) += smartloong-1c.dtb
|
||||
|
||||
141
arch/mips/boot/dts/loongson/loongson1c.dtsi
Normal file
141
arch/mips/boot/dts/loongson/loongson1c.dtsi
Normal file
@@ -0,0 +1,141 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* Copyright (c) 2023-2025 Keguang Zhang <keguang.zhang@gmail.com>
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
#include "loongson1.dtsi"
|
||||
|
||||
/ {
|
||||
clkc: clock-controller@1fe78030 {
|
||||
compatible = "loongson,ls1c-clk";
|
||||
reg = <0x1fe78030 0x8>;
|
||||
clocks = <&xtal>;
|
||||
#clock-cells = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
&soc {
|
||||
syscon: syscon@420 {
|
||||
compatible = "loongson,ls1c-syscon", "syscon";
|
||||
reg = <0x420 0x8>;
|
||||
};
|
||||
|
||||
intc4: interrupt-controller@10a0 {
|
||||
compatible = "loongson,ls1x-intc";
|
||||
reg = <0x10a0 0x18>;
|
||||
interrupt-controller;
|
||||
interrupt-parent = <&cpu_intc>;
|
||||
interrupts = <6>;
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
|
||||
gpio2: gpio@10c8 {
|
||||
compatible = "loongson,ls1x-gpio";
|
||||
reg = <0x10c8 0x4>;
|
||||
gpio-controller;
|
||||
ngpios = <32>;
|
||||
#gpio-cells = <2>;
|
||||
};
|
||||
|
||||
gpio3: gpio@10cc {
|
||||
compatible = "loongson,ls1x-gpio";
|
||||
reg = <0x10cc 0x4>;
|
||||
gpio-controller;
|
||||
ngpios = <32>;
|
||||
#gpio-cells = <2>;
|
||||
};
|
||||
|
||||
dma: dma-controller@1160 {
|
||||
compatible = "loongson,ls1c-apbdma", "loongson,ls1b-apbdma";
|
||||
reg = <0x1160 0x4>;
|
||||
interrupt-parent = <&intc0>;
|
||||
interrupts = <13 IRQ_TYPE_EDGE_RISING>,
|
||||
<14 IRQ_TYPE_EDGE_RISING>,
|
||||
<15 IRQ_TYPE_EDGE_RISING>;
|
||||
interrupt-names = "ch0", "ch1", "ch2";
|
||||
#dma-cells = <1>;
|
||||
};
|
||||
|
||||
emac: ethernet@110000 {
|
||||
compatible = "loongson,ls1c-emac", "snps,dwmac-3.50a";
|
||||
reg = <0x110000 0x10000>;
|
||||
clocks = <&clkc LS1X_CLKID_AHB>;
|
||||
clock-names = "stmmaceth";
|
||||
interrupt-parent = <&intc1>;
|
||||
interrupts = <3 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "macirq";
|
||||
loongson,ls1-syscon = <&syscon>;
|
||||
snps,pbl = <1>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ehci: usb@120000 {
|
||||
compatible = "generic-ehci";
|
||||
reg = <0x120000 0x100>;
|
||||
interrupt-parent = <&intc1>;
|
||||
interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ohci: usb@128000 {
|
||||
compatible = "generic-ohci";
|
||||
reg = <0x128000 0x100>;
|
||||
interrupt-parent = <&intc1>;
|
||||
interrupts = <1 IRQ_TYPE_LEVEL_HIGH>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
&apb {
|
||||
watchdog: watchdog@1c060 {
|
||||
compatible = "loongson,ls1c-wdt";
|
||||
reg = <0x1c060 0xc>;
|
||||
clocks = <&clkc LS1X_CLKID_APB>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
rtc: rtc@24000 {
|
||||
compatible = "loongson,ls1c-rtc";
|
||||
reg = <0x24000 0x78>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
nand: nand-controller@38000 {
|
||||
compatible = "loongson,ls1c-nand-controller";
|
||||
reg = <0x38000 0x24>, <0x38040 0x4>;
|
||||
reg-names = "nand", "nand-dma";
|
||||
dmas = <&dma 0>;
|
||||
dma-names = "rxtx";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
|
||||
nand@0 {
|
||||
reg = <0>;
|
||||
label = "ls1x-nand";
|
||||
nand-use-soft-ecc-engine;
|
||||
nand-ecc-algo = "hamming";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&gpio0 {
|
||||
ngpios = <32>;
|
||||
};
|
||||
|
||||
&gpio1 {
|
||||
ngpios = <32>;
|
||||
};
|
||||
|
||||
&uart1 {
|
||||
interrupts = <4 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
&uart2 {
|
||||
interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
&uart3 {
|
||||
interrupts = <29 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
110
arch/mips/boot/dts/loongson/smartloong-1c.dts
Normal file
110
arch/mips/boot/dts/loongson/smartloong-1c.dts
Normal file
@@ -0,0 +1,110 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* Copyright (c) 2023-2025 Keguang Zhang <keguang.zhang@gmail.com>
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
#include "loongson1c.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "loongmasses,smartloong-1c", "loongson,ls1c";
|
||||
model = "Smartloong-1C Board";
|
||||
|
||||
memory@0 {
|
||||
device_type = "memory";
|
||||
reg = <0x0 0x4000000>;
|
||||
};
|
||||
|
||||
aliases {
|
||||
gpio0 = &gpio0;
|
||||
gpio1 = &gpio1;
|
||||
gpio2 = &gpio2;
|
||||
gpio3 = &gpio3;
|
||||
serial0 = &uart2;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
led0 {
|
||||
label = "led0";
|
||||
gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
|
||||
linux,default-trigger = "heartbeat";
|
||||
};
|
||||
|
||||
led1 {
|
||||
label = "led1";
|
||||
gpios = <&gpio1 21 GPIO_ACTIVE_LOW>;
|
||||
linux,default-trigger = "nand-disk";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&xtal {
|
||||
clock-frequency = <24000000>;
|
||||
};
|
||||
|
||||
&emac {
|
||||
phy-handle = <&phy0>;
|
||||
phy-mode = "rmii";
|
||||
status = "okay";
|
||||
|
||||
mdio {
|
||||
compatible = "snps,dwmac-mdio";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
phy0: ethernet-phy@13 {
|
||||
reg = <0x13>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&nand {
|
||||
status = "okay";
|
||||
|
||||
nand@0 {
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
partition@0 {
|
||||
label = "kernel";
|
||||
reg = <0x0 0x1000000>;
|
||||
};
|
||||
|
||||
partition@1000000 {
|
||||
label = "rootfs";
|
||||
reg = <0x1000000 0x7000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&ehci {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ohci {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&rtc {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&watchdog {
|
||||
status = "okay";
|
||||
};
|
||||
Reference in New Issue
Block a user