Skip to content

Commit 5fdecaa

Browse files
Xianwei Zhaosuperna9999
authored andcommitted
arm64: dts: add support for S6 based Amlogic BL209
Amlogic S6 is an advanced application processor designed for hybrid OTT/IP Set Top Box and high-end media box applications. Add basic support for the S6 based Amlogic BL209 board, which describes the following components: CPU, GIC, IRQ, Timer and UART. These are capable of booting up into the serial console. Signed-off-by: Xianwei Zhao <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Neil Armstrong <[email protected]>
1 parent c0c8950 commit 5fdecaa

File tree

3 files changed

+140
-0
lines changed

3 files changed

+140
-0
lines changed

arch/arm64/boot/dts/amlogic/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ dtb-$(CONFIG_ARCH_MESON) += amlogic-a4-a113l2-ba400.dtb
33
dtb-$(CONFIG_ARCH_MESON) += amlogic-a5-a113x2-av400.dtb
44
dtb-$(CONFIG_ARCH_MESON) += amlogic-c3-c302x-aw409.dtb
55
dtb-$(CONFIG_ARCH_MESON) += amlogic-c3-c308l-aw419.dtb
6+
dtb-$(CONFIG_ARCH_MESON) += amlogic-s6-s905x5-bl209.dtb
67
dtb-$(CONFIG_ARCH_MESON) += amlogic-t7-a311d2-an400.dtb
78
dtb-$(CONFIG_ARCH_MESON) += amlogic-t7-a311d2-khadas-vim4.dtb
89
dtb-$(CONFIG_ARCH_MESON) += meson-a1-ad401.dtb
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2+
/*
3+
* Copyright (c) 2025 Amlogic, Inc. All rights reserved.
4+
*/
5+
6+
/dts-v1/;
7+
8+
#include "amlogic-s6.dtsi"
9+
/ {
10+
model = "Amlogic S905X5 BL209 Development Board";
11+
compatible = "amlogic,bl209", "amlogic,s6";
12+
interrupt-parent = <&gic>;
13+
#address-cells = <2>;
14+
#size-cells = <2>;
15+
16+
aliases {
17+
serial0 = &uart_b;
18+
};
19+
20+
memory@0 {
21+
device_type = "memory";
22+
reg = <0x0 0x000000 0x0 0xe0000000>,
23+
<0x1 0x000000 0x0 0x20000000>;
24+
};
25+
26+
reserved-memory {
27+
#address-cells = <2>;
28+
#size-cells = <2>;
29+
ranges;
30+
31+
/* 27 MiB reserved for ARM Trusted Firmware */
32+
secmon_reserved: secmon@5000000 {
33+
compatible = "shared-dma-pool";
34+
reg = <0x0 0x05000000 0x0 0x1b00000>;
35+
no-map;
36+
};
37+
};
38+
};
39+
40+
&uart_b {
41+
status = "okay";
42+
};
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2+
/*
3+
* Copyright (c) 2025 Amlogic, Inc. All rights reserved.
4+
*/
5+
6+
#include <dt-bindings/interrupt-controller/irq.h>
7+
#include <dt-bindings/interrupt-controller/arm-gic.h>
8+
#include <dt-bindings/gpio/gpio.h>
9+
/ {
10+
cpus {
11+
#address-cells = <2>;
12+
#size-cells = <0>;
13+
14+
cpu0: cpu@0 {
15+
device_type = "cpu";
16+
compatible = "arm,cortex-a510";
17+
reg = <0x0 0x0>;
18+
enable-method = "psci";
19+
};
20+
21+
cpu1: cpu@100 {
22+
device_type = "cpu";
23+
compatible = "arm,cortex-a510";
24+
reg = <0x0 0x100>;
25+
enable-method = "psci";
26+
};
27+
28+
cpu2: cpu@200 {
29+
device_type = "cpu";
30+
compatible = "arm,cortex-a510";
31+
reg = <0x0 0x200>;
32+
enable-method = "psci";
33+
};
34+
35+
cpu3: cpu@300 {
36+
device_type = "cpu";
37+
compatible = "arm,cortex-a510";
38+
reg = <0x0 0x300>;
39+
enable-method = "psci";
40+
};
41+
};
42+
43+
timer {
44+
compatible = "arm,armv8-timer";
45+
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
46+
<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
47+
<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
48+
<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
49+
};
50+
51+
psci {
52+
compatible = "arm,psci-1.0";
53+
method = "smc";
54+
};
55+
56+
xtal: xtal-clk {
57+
compatible = "fixed-clock";
58+
clock-frequency = <24000000>;
59+
clock-output-names = "xtal";
60+
#clock-cells = <0>;
61+
};
62+
63+
soc {
64+
compatible = "simple-bus";
65+
#address-cells = <2>;
66+
#size-cells = <2>;
67+
ranges;
68+
69+
gic: interrupt-controller@ff200000 {
70+
compatible = "arm,gic-v3";
71+
#interrupt-cells = <3>;
72+
#address-cells = <0>;
73+
interrupt-controller;
74+
reg = <0x0 0xff200000 0 0x10000>,
75+
<0x0 0xff240000 0 0x80000>;
76+
interrupts = <GIC_PPI 9 0xf04>;
77+
};
78+
79+
apb: bus@fe000000 {
80+
compatible = "simple-bus";
81+
reg = <0x0 0xfe000000 0x0 0x480000>;
82+
#address-cells = <2>;
83+
#size-cells = <2>;
84+
ranges = <0x0 0x0 0x0 0xfe000000 0x0 0x480000>;
85+
86+
uart_b: serial@7a000 {
87+
compatible = "amlogic,s6-uart",
88+
"amlogic,meson-s4-uart";
89+
reg = <0x0 0x7a000 0x0 0x18>;
90+
interrupts = <GIC_SPI 169 IRQ_TYPE_EDGE_RISING>;
91+
clocks = <&xtal>, <&xtal>, <&xtal>;
92+
clock-names = "xtal", "pclk", "baud";
93+
status = "disabled";
94+
};
95+
};
96+
};
97+
};

0 commit comments

Comments
 (0)