ARM: sprd: DTS and bindings for v6.8-rc1

Unisoc ARM64 DTS and bindings changes are:
 - Fixed a few dtb_check warnings
 - Add bindings for a new SoC - UMS9620
 - Fixed an issue on UMS512
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEFERWgJDWndUxbQqEP1wYyxGauyEFAmWNLpoACgkQP1wYyxGa
 uyFXSw/9Fp4cFyXza1YKAngvFoOdwRVWkX29kzrdApbsZOqZW5az4Mo245vsoOzH
 0AiAViQuaJVYvTcPJmFrOetT/KBN7LmIxjAH6p2j1pTVj2AQX3ElQj+apY64S2up
 AWtZxw4yn2XF3TxRGUAiD9EZncXWFG/V7wtAvkp0RD8hL1Ll4FKdOzboPCtDmpQc
 T8CVp+Qq1NFa7gvPeYUFwS8dEm528EIsbQ2CLXJmAWc1ZDuBuYmnydkUhULnP6tS
 WRHS2YfnsrMAoMI5JG4XsESoP4iK9OQp6Fwx9AdXgsmT7I37sXaVeOwWZ9vxtGWm
 sBZyx0w7XXUqTcQSRuue119v0+XWcBrKLYvhpBOV6xWxFbkrFoUuPbhRHsYWWH7d
 EJjlTfc6ROwek4/lvkqRBAf7qH5FOd43+tHcON7TzoX6Ac57Y3LfckwAUihehGQI
 Xqs4RFNFdncpTG6RdFO9+uiBDWRFf2NTMkUtCEtyzqPGpKoPoVY8qTX0b2o6BTGE
 H/BudIBGuFwunbBQde1wT4KCJLn8bnvxCv5yhz2s46gpF4zIhMvd0Szw6gz0e/eD
 blhZ2BkJG/VwNeknFKQKOwPish1vULsEDueMTz2zDnB2gA/aROaQXjPfvMKNb8EW
 cQ7hkjdsDnhkvNesaX7KtY15S21FB3OU3IhnlIG5Tw4kPwIgoWc=
 =GtWr
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmWT2moACgkQYKtH/8kJ
 UicFcw//VVx97jzuDUiFq4T2ItDOh5f7ljJ7xdT/X1+5Va+/r+ECOWv6brVkc8kw
 OFmyhxbjIpMFhu1OcVaKMVcU+wbd2H/b6aFOKzVC7zRiYtj/X4y1rgf/+Rh2ofGD
 /zWTbfEu7DLXV14r68r3EesmhDGGwqlcK8ApLy+P0zZCHEsKm3WHBe+w8d2SerNK
 80mJ7AQXIeFAr1P05b5TNSOEEaajoYpwa6G37DVMfILtHscFV5vfiTzDULjyPkr0
 oK4rCqX6GVONL7jHK6gAjAeGUYBypTP0LtklFbVbOidLELNldc9PTx7aGUv7eyPE
 Rde3ErqjoE7H38Axio1c6f61KIZogHDYXIqDnPEKwFHfvmA94Zq+2asOjF7gmIJ/
 vDZAvGD48xvdQ9l5MOYMZl7San57r3lmoMGmmly7beJM6fPVqky9xhVHMZ3W8DNN
 steXqsLPUF9E2055/SNh5E1OtEsldHsV0ovpOxejKrGkQetshnk9lF0NT75Nkf6w
 6DF2knDOAYZOZ5B5Jp49YTRAAHpQ2UJUKr1JZK/fOSEMVuNGdzeo7QyIh7rhELJu
 swFX8w+74mpq44E8LwaCaidL5m3UpbPyQxErRVwv7dN0uyHqW3MTfA+lNU1Ph72H
 MWBwLdWxbqGcRryL9ADp5NH4s30uVfFLXF2/GrAS2Os8Fl2v9FI=
 =gOpe
 -----END PGP SIGNATURE-----

Merge tag 'sprd-dt-6.8-rc1' of https://github.com/lyrazhang/linux into soc/dt

ARM: sprd: DTS and bindings for v6.8-rc1

Unisoc ARM64 DTS and bindings changes are:
- Fixed a few dtb_check warnings
- Add bindings for a new SoC - UMS9620
- Fixed an issue on UMS512

* tag 'sprd-dt-6.8-rc1' of https://github.com/lyrazhang/linux:
  arm64: dts: sprd: Change UMS512 idle-state nodename to match bindings
  arm64: dts: sprd: Add clock reference for pll2 on UMS512
  arm64: dts: sprd: Removed unused clock references from etm nodes
  arm64: dts: sprd: Add support for Unisoc's UMS9620
  dt-bindings: arm: Add compatible strings for Unisoc's UMS9620
  arm64: dts: sprd: fix the cpu node for UMS512

Link: https://lore.kernel.org/r/20231228084958.1439115-1-chunyan.zhang@unisoc.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Arnd Bergmann 2024-01-02 10:42:01 +01:00
commit f81647e761
5 changed files with 310 additions and 20 deletions

View file

@ -35,6 +35,11 @@ properties:
- sprd,ums512-1h10
- const: sprd,ums512
- items:
- enum:
- sprd,ums9620-2h10
- const: sprd,ums9620
additionalProperties: true
...

View file

@ -2,4 +2,5 @@
dtb-$(CONFIG_ARCH_SPRD) += sc9836-openphone.dtb \
sp9860g-1h10.dtb \
sp9863a-1h10.dtb \
ums512-1h10.dtb
ums512-1h10.dtb \
ums9620-2h10.dtb

View file

@ -96,7 +96,7 @@ CPU5: cpu@500 {
CPU6: cpu@600 {
device_type = "cpu";
compatible = "arm,cortex-a55";
compatible = "arm,cortex-a75";
reg = <0x0 0x600>;
enable-method = "psci";
cpu-idle-states = <&CORE_PD>;
@ -104,7 +104,7 @@ CPU6: cpu@600 {
CPU7: cpu@700 {
device_type = "cpu";
compatible = "arm,cortex-a55";
compatible = "arm,cortex-a75";
reg = <0x0 0x700>;
enable-method = "psci";
cpu-idle-states = <&CORE_PD>;
@ -113,7 +113,7 @@ CPU7: cpu@700 {
idle-states {
entry-method = "psci";
CORE_PD: core-pd {
CORE_PD: cpu-pd {
compatible = "arm,idle-state";
entry-latency-us = <4000>;
exit-latency-us = <4000>;
@ -291,6 +291,7 @@ anlg_phy_gc_regs: syscon@323e0000 {
pll2: clock-controller@0 {
compatible = "sprd,ums512-gc-pll";
reg = <0x0 0x100>;
clocks = <&ext_26m>;
clock-names = "ext-26m";
#clock-cells = <1>;
};
@ -682,8 +683,8 @@ etm0: etm@3f040000 {
compatible = "arm,coresight-etm4x", "arm,primecell";
reg = <0 0x3f040000 0 0x1000>;
cpu = <&CPU0>;
clocks = <&ext_26m>, <&aon_clk CLK_CSSYS>, <&pll2 CLK_TWPLL_512M>;
clock-names = "apb_pclk", "clk_cs", "cs_src";
clocks = <&ext_26m>;
clock-names = "apb_pclk";
out-ports {
port {
@ -699,8 +700,8 @@ etm1: etm@3f140000 {
compatible = "arm,coresight-etm4x", "arm,primecell";
reg = <0 0x3f140000 0 0x1000>;
cpu = <&CPU1>;
clocks = <&ext_26m>, <&aon_clk CLK_CSSYS>, <&pll2 CLK_TWPLL_512M>;
clock-names = "apb_pclk", "clk_cs", "cs_src";
clocks = <&ext_26m>;
clock-names = "apb_pclk";
out-ports {
port {
@ -716,8 +717,8 @@ etm2: etm@3f240000 {
compatible = "arm,coresight-etm4x", "arm,primecell";
reg = <0 0x3f240000 0 0x1000>;
cpu = <&CPU2>;
clocks = <&ext_26m>, <&aon_clk CLK_CSSYS>, <&pll2 CLK_TWPLL_512M>;
clock-names = "apb_pclk", "clk_cs", "cs_src";
clocks = <&ext_26m>;
clock-names = "apb_pclk";
out-ports {
port {
@ -733,8 +734,8 @@ etm3: etm@3f340000 {
compatible = "arm,coresight-etm4x", "arm,primecell";
reg = <0 0x3f340000 0 0x1000>;
cpu = <&CPU3>;
clocks = <&ext_26m>, <&aon_clk CLK_CSSYS>, <&pll2 CLK_TWPLL_512M>;
clock-names = "apb_pclk", "clk_cs", "cs_src";
clocks = <&ext_26m>;
clock-names = "apb_pclk";
out-ports {
port {
@ -750,8 +751,8 @@ etm4: etm@3f440000 {
compatible = "arm,coresight-etm4x", "arm,primecell";
reg = <0 0x3f440000 0 0x1000>;
cpu = <&CPU4>;
clocks = <&ext_26m>, <&aon_clk CLK_CSSYS>, <&pll2 CLK_TWPLL_512M>;
clock-names = "apb_pclk", "clk_cs", "cs_src";
clocks = <&ext_26m>;
clock-names = "apb_pclk";
out-ports {
port {
@ -767,8 +768,8 @@ etm5: etm@3f540000 {
compatible = "arm,coresight-etm4x", "arm,primecell";
reg = <0 0x3f540000 0 0x1000>;
cpu = <&CPU5>;
clocks = <&ext_26m>, <&aon_clk CLK_CSSYS>, <&pll2 CLK_TWPLL_512M>;
clock-names = "apb_pclk", "clk_cs", "cs_src";
clocks = <&ext_26m>;
clock-names = "apb_pclk";
out-ports {
port {
@ -784,8 +785,8 @@ etm6: etm@3f640000 {
compatible = "arm,coresight-etm4x", "arm,primecell";
reg = <0 0x3f640000 0 0x1000>;
cpu = <&CPU6>;
clocks = <&ext_26m>, <&aon_clk CLK_CSSYS>, <&pll2 CLK_TWPLL_512M>;
clock-names = "apb_pclk", "clk_cs", "cs_src";
clocks = <&ext_26m>;
clock-names = "apb_pclk";
out-ports {
port {
@ -801,8 +802,8 @@ etm7: etm@3f740000 {
compatible = "arm,coresight-etm4x", "arm,primecell";
reg = <0 0x3f740000 0 0x1000>;
cpu = <&CPU7>;
clocks = <&ext_26m>, <&aon_clk CLK_CSSYS>, <&pll2 CLK_TWPLL_512M>;
clock-names = "apb_pclk", "clk_cs", "cs_src";
clocks = <&ext_26m>;
clock-names = "apb_pclk";
out-ports {
port {

View file

@ -0,0 +1,38 @@
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
* Unisoc UMS9620-2h10 board DTS file
*
* Copyright (C) 2023, Unisoc Inc.
*/
/dts-v1/;
#include "ums9620.dtsi"
/ {
model = "Unisoc UMS9620-2H10 Board";
compatible = "sprd,ums9620-2h10", "sprd,ums9620";
aliases {
serial0 = &uart0;
serial1 = &uart1;
};
memory@80000000 {
device_type = "memory";
reg = <0x0 0x80000000 0x2 0x00000000>;
};
chosen {
stdout-path = "serial1:921600n8";
};
};
&uart0 {
status = "okay";
};
&uart1 {
status = "okay";
};

View file

@ -0,0 +1,245 @@
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
* Unisoc UMS9620 DTS file
*
* Copyright (C) 2023, Unisoc Inc.
*/
#include <dt-bindings/interrupt-controller/arm-gic.h>
/ {
interrupt-parent = <&gic>;
#address-cells = <2>;
#size-cells = <2>;
cpus {
#address-cells = <2>;
#size-cells = <0>;
cpu-map {
cluster0 {
core0 {
cpu = <&CPU0>;
};
core1 {
cpu = <&CPU1>;
};
core2 {
cpu = <&CPU2>;
};
core3 {
cpu = <&CPU3>;
};
core4 {
cpu = <&CPU4>;
};
core5 {
cpu = <&CPU5>;
};
core6 {
cpu = <&CPU6>;
};
core7 {
cpu = <&CPU7>;
};
};
};
CPU0: cpu@0 {
device_type = "cpu";
compatible = "arm,cortex-a55";
reg = <0x0 0x0>;
enable-method = "psci";
cpu-idle-states = <&LIT_CORE_PD>;
};
CPU1: cpu@100 {
device_type = "cpu";
compatible = "arm,cortex-a55";
reg = <0x0 0x100>;
enable-method = "psci";
cpu-idle-states = <&LIT_CORE_PD>;
};
CPU2: cpu@200 {
device_type = "cpu";
compatible = "arm,cortex-a55";
reg = <0x0 0x200>;
enable-method = "psci";
cpu-idle-states = <&LIT_CORE_PD>;
};
CPU3: cpu@300 {
device_type = "cpu";
compatible = "arm,cortex-a55";
reg = <0x0 0x300>;
enable-method = "psci";
cpu-idle-states = <&LIT_CORE_PD>;
};
CPU4: cpu@400 {
device_type = "cpu";
compatible = "arm,cortex-a76";
reg = <0x0 0x400>;
enable-method = "psci";
cpu-idle-states = <&BIG_CORE_PD>;
};
CPU5: cpu@500 {
device_type = "cpu";
compatible = "arm,cortex-a76";
reg = <0x0 0x500>;
enable-method = "psci";
cpu-idle-states = <&BIG_CORE_PD>;
};
CPU6: cpu@600 {
device_type = "cpu";
compatible = "arm,cortex-a76";
reg = <0x0 0x600>;
enable-method = "psci";
cpu-idle-states = <&BIG_CORE_PD>;
};
CPU7: cpu@700 {
device_type = "cpu";
compatible = "arm,cortex-a76";
reg = <0x0 0x700>;
enable-method = "psci";
cpu-idle-states = <&BIG_CORE_PD>;
};
};
idle-states {
entry-method = "psci";
LIT_CORE_PD: cpu-pd-lit {
compatible = "arm,idle-state";
entry-latency-us = <1000>;
exit-latency-us = <500>;
min-residency-us = <2500>;
local-timer-stop;
arm,psci-suspend-param = <0x00010000>;
};
BIG_CORE_PD: cpu-pd-big {
compatible = "arm,idle-state";
entry-latency-us = <4000>;
exit-latency-us = <4000>;
min-residency-us = <10000>;
local-timer-stop;
arm,psci-suspend-param = <0x00010000>;
};
};
psci {
compatible = "arm,psci-0.2";
method = "smc";
};
timer {
compatible = "arm,armv8-timer";
interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>, /* Physical Secure PPI */
<GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH>, /* Physical Non-Secure PPI */
<GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>, /* Virtual PPI */
<GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH>; /* Hipervisor PPI */
};
pmu {
compatible = "arm,armv8-pmuv3";
interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
};
soc: soc {
compatible = "simple-bus";
ranges;
#address-cells = <2>;
#size-cells = <2>;
gic: interrupt-controller@12000000 {
compatible = "arm,gic-v3";
reg = <0x0 0x12000000 0 0x20000>, /* GICD */
<0x0 0x12040000 0 0x100000>; /* GICR */
#interrupt-cells = <3>;
#address-cells = <2>;
#size-cells = <2>;
redistributor-stride = <0x0 0x20000>; /* 128KB stride */
#redistributor-regions = <1>;
interrupt-controller;
interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
};
apb@20200000 {
compatible = "simple-bus";
ranges = <0 0 0x20200000 0x100000>;
#address-cells = <1>;
#size-cells = <1>;
uart0: serial@0 {
compatible = "sprd,ums9620-uart",
"sprd,sc9836-uart";
reg = <0 0x100>;
interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ext_26m>;
status = "disabled";
};
uart1: serial@10000 {
compatible = "sprd,ums9620-uart",
"sprd,sc9836-uart";
reg = <0x10000 0x100>;
interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ext_26m>;
status = "disabled";
};
};
};
ext_26m: clk-26m {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <26000000>;
clock-output-names = "ext-26m";
};
ext_4m: clk-4m {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <4000000>;
clock-output-names = "ext-4m";
};
ext_32k: clk-32k {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <32768>;
clock-output-names = "ext-32k";
};
rco_100m: clk-100m {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <100000000>;
clock-output-names = "rco-100m";
};
dphy_312m5: dphy-312m5 {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <312500000>;
clock-output-names = "dphy-312m5";
};
dphy_416m7: dphy-416m7 {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <416700000>;
clock-output-names = "dphy-416m7";
};
};