Add ZTE ZX296718 support
v4 cover Add ZTE ZX296718 support
Changes in version4:
- Change dts file name to align with compatible name.
- Reorder dts nodes with reg address sequence.
- Move nodes out of soc, which do not have soc simple bus address or share soc interrupt.
- Change some nodes name to align with convention.
Changes in version3:
- Remove unnecessary flag of gic in dts.
Changes in version2:
- Use more precise cpu and pmu compatible name in dts.
- fix minor coding style issue.
Jun Nie (3):
arm64: add ZTE ZX SoC family
arm64: dts: Add ZTE ZX296718 SoC dts and Makefile
arm64: defconfig: enable ZTE ZX related config
Documentation/devicetree/bindings/arm/zte.txt | 24 +++ arch/arm64/Kconfig.platforms | 5 + arch/arm64/boot/dts/Makefile | 1 + arch/arm64/boot/dts/zte/Makefile | 5 + arch/arm64/boot/dts/zte/zx296718-evb.dts | 25 +++ arch/arm64/boot/dts/zte/zx296718.dtsi | 254 ++++++++++++++++++++++++++ arch/arm64/configs/defconfig | 1 + 7 files changed, 315 insertions(+) create mode 100644 arch/arm64/boot/dts/zte/Makefile create mode 100644 arch/arm64/boot/dts/zte/zx296718-evb.dts create mode 100644 arch/arm64/boot/dts/zte/zx296718.dtsi
Signature · 1 line
1.9.1
PATCH v4 1/3 arm64: add ZTE ZX SoC family
This patch introduces ARCH_ZX to add the support of the ZTE ZX SoC family for the arm64 architecture.
--- arch/arm64/Kconfig.platforms | 5 +++++ 1 file changed, 5 insertions(+)
arch/arm64/Kconfig.platforms +5 -0
@@ -204,6 +204,11 @@ config ARCH_XGENE help This enables support for AppliedMicro X-Gene SOC Family +config ARCH_ZX + bool "ZTE ZX SoC Family" + help + This enables support for ZTE ZX SoC Family + config ARCH_ZYNQMP bool "Xilinx ZynqMP Family" help
Signature · 1 line
1.9.1
PATCH v4 2/3 arm64: dts: Add ZTE ZX296718 SoC dts and Makefile
In reply to Jun NieAdd device tree support for ZX296718 SoC and evaluation board based on it. Also document new values.
--- Documentation/devicetree/bindings/arm/zte.txt | 24 +++ arch/arm64/boot/dts/Makefile | 1 + arch/arm64/boot/dts/zte/Makefile | 5 + arch/arm64/boot/dts/zte/zx296718-evb.dts | 25 +++ arch/arm64/boot/dts/zte/zx296718.dtsi | 254 ++++++++++++++++++++++++++ 5 files changed, 309 insertions(+) create mode 100644 arch/arm64/boot/dts/zte/Makefile create mode 100644 arch/arm64/boot/dts/zte/zx296718-evb.dts create mode 100644 arch/arm64/boot/dts/zte/zx296718.dtsi
Documentation/devicetree/bindings/arm/zte.txt +24 -0
@@ -13,3 +13,27 @@ Low power management required properties: Bus matrix required properties: - compatible = "zte,zx-bus-matrix" + + +--------------------------------------- +- ZX296718 SoC: + Required root node properties: + - compatible = "zte,zx296718" + +ZX296718 EVB board: + - "zte,zx296718-evb" + +System management required properties: + - compatible = "zte,zx296718-aon-sysctrl" + - compatible = "zte,zx296718-sysctrl" + +Example: +aon_sysctrl: aon-sysctrl at 116000 { + compatible = "zte,zx296718-aon-sysctrl", "syscon"; + reg = <0x116000 0x1000>; +}; + +sysctrl: sysctrl at 1463000 { + compatible = "zte,zx296718-sysctrl", "syscon"; + reg = <0x1463000 0x1000>; +};
arch/arm64/boot/dts/Makefile +1 -0
@@ -19,6 +19,7 @@ dts-dirs += socionext dts-dirs += sprd dts-dirs += xilinx dts-dirs += lg +dts-dirs += zte subdir-y := $(dts-dirs)
arch/arm64/boot/dts/zte/Makefile new file +5 -0
@@ -0,0 +1,5 @@ +dtb-$(CONFIG_ARCH_ZX) += zx296718-evb.dtb + +always := $(dtb-y) +subdir-y := $(dts-dirs) +clean-files := *.dtb
arch/arm64/boot/dts/zte/zx296718-evb.dts new file +25 -0
@@ -0,0 +1,25 @@ +/* + * ZTE Ltd. zx296718 Plaform + * + */ +/dts-v1/; +#include "zx296718.dtsi" + +/ { + model = "ZTE zx296718 evaluation board"; + compatible = "zte,zx296718-evb", "zte,zx296718"; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + memory at 40000000 { + device_type = "memory"; + reg = <0x40000000 0x40000000>; + }; + +}; + +&uart0 { + status = "okay"; +};
arch/arm64/boot/dts/zte/zx296718.dtsi new file +254 -0
254 lines not on this page · raw message
Signature · 1 line
1.9.1
PATCH v4 2/3 arm64: dts: Add ZTE ZX296718 SoC dts and Makefile
This version looks pretty good to me. Some nit-picks below though ...
Quoted 1 line · Jun Nie
Add device tree support for ZX296718 SoC and evaluation board based on it.
Please wrap the commit log around column 70.
Quoted 13 lines
Also document new values.
Signed-off-by Jun Nie <[email protected]>--- Documentation/devicetree/bindings/arm/zte.txt | 24 +++ arch/arm64/boot/dts/Makefile | 1 + arch/arm64/boot/dts/zte/Makefile | 5 + arch/arm64/boot/dts/zte/zx296718-evb.dts | 25 +++ arch/arm64/boot/dts/zte/zx296718.dtsi | 254 ++++++++++++++++++++++++++ 5 files changed, 309 insertions(+) create mode 100644 arch/arm64/boot/dts/zte/Makefile create mode 100644 arch/arm64/boot/dts/zte/zx296718-evb.dts create mode 100644 arch/arm64/boot/dts/zte/zx296718.dtsi
<snip>
Quoted 17 lines
arch/arm64/boot/dts/zte/Makefile new file +5
-0@@ -0,0 +1,5 @@ +dtb-$(CONFIG_ARCH_ZX) += zx296718-evb.dtb + +always := $(dtb-y) +subdir-y := $(dts-dirs) +clean-files := *.dtbarch/arm64/boot/dts/zte/zx296718-evb.dts new file +0
-0
arch/arm64/boot/dts/zte/zx296718-evb.dts line 4
Quoted 4 lines
arch/arm64/boot/dts/zte/zx296718-evb.dts new file +4
-0@@ -0,0 +1,25 @@ +/* + * ZTE Ltd. zx296718 Plaform + * + */
We should probably consider to add a proper licence. GPL/X11 dual is mostly used and recommended, and there are quite a lot examples in the DTS folder.
Quoted 27 lines
arch/arm64/boot/dts/zte/zx296718-evb.dts new file +21
-0+/dts-v1/; +#include "zx296718.dtsi" + +/ { + model = "ZTE zx296718 evaluation board"; + compatible = "zte,zx296718-evb", "zte,zx296718"; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + memory at 40000000 { + device_type = "memory"; + reg = <0x40000000 0x40000000>; + }; + +}; + +&uart0 { + status = "okay"; +};arch/arm64/boot/dts/zte/zx296718.dtsi new file +0
-0
arch/arm64/boot/dts/zte/zx296718.dtsi line 5
Quoted 5 lines
arch/arm64/boot/dts/zte/zx296718.dtsi new file +5
-0@@ -0,0 +1,254 @@ +/* + * DTS File for ZTE ZX296718 Plaform + * + * Copyright (c) 2016 ZTE Semiconductor Co., Ltd. + */
Ditto
Quoted 75 lines
arch/arm64/boot/dts/zte/zx296718.dtsi new file +75
-0+#include <dt-bindings/input/input.h> +#include <dt-bindings/interrupt-controller/arm-gic.h> +#include <dt-bindings/gpio/gpio.h> + +/ { + compatible = "zte,zx296718"; + #address-cells = <1>; + #size-cells = <1>; + + aliases { + serial0 = &uart0; + }; + + cpus { + #address-cells = <2>; + #size-cells = <0>; + + cpu-map { + cluster0 { + core0 { + cpu = <&cpu0>; + }; + core1 { + cpu = <&cpu1>; + }; + core2 { + cpu = <&cpu2>; + }; + core3 { + cpu = <&cpu3>; + }; + }; + }; + + cpu0: cpu at 0 { + device_type = "cpu"; + compatible = "arm,cortex-a53","arm,armv8"; + reg = <0x0 0x0>; + enable-method = "psci"; + }; + + cpu1: cpu at 1 { + device_type = "cpu"; + compatible = "arm,cortex-a53","arm,armv8"; + reg = <0x0 0x1>; + enable-method = "psci"; + }; + + cpu2: cpu at 2 { + device_type = "cpu"; + compatible = "arm,cortex-a53","arm,armv8"; + reg = <0x0 0x2>; + enable-method = "psci"; + }; + + cpu3: cpu at 3 { + device_type = "cpu"; + compatible = "arm,cortex-a53","arm,armv8"; + reg = <0x0 0x3>; + enable-method = "psci"; + }; + }; + + osc12m: osc12m-clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <12000000>; + clock-output-names = "osc12m"; + }; + + osc24m: osc24m-clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <24000000>; + clock-output-names = "osc24m";
arch/arm64/boot/dts/zte/zx296718.dtsi line 90
Quoted 10 lines
arch/arm64/boot/dts/zte/zx296718.dtsi new file +10
-0+ }; + + osc25m: osc25m-clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <25000000>; + clock-output-names = "osc25m"; + }; + + clk24k: clk-24k {
I would suggest we name node of fixed rate clock in an unified way like clock-xxx.
Quoted 79 lines
arch/arm64/boot/dts/zte/zx296718.dtsi new file +79
-0+ compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <24000>; + clock-output-names = "rtcclk"; + }; + + osc32k: osc32k-clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <32000>; + clock-output-names = "osc32k"; + }; + + osc60m: osc60m-clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <60000000>; + clock-output-names = "osc60m"; + }; + + osc99m: osc99m-clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <99000000>; + clock-output-names = "osc99m"; + }; + + osc125m: osc125m-clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <125000000>; + clock-output-names = "osc125m"; + }; + + osc198m: osc198m-clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <198000000>; + clock-output-names = "osc198m"; + }; + + pll_vga: pll-1073m-clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <1073000000>; + clock-output-names = "pll_vga"; + }; + + pll_ddr: pll-932m-clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <932000000>; + clock-output-names = "pll_ddr"; + }; + + pll_mac: pll-1000m-clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <1000000000>; + clock-output-names = "pll_mac"; + }; + + pll_mm0: pll-1188m-clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <1188000000>; + clock-output-names = "pll_mm0"; + }; + + pll_mm1: pll-1296m-clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <1296000000>; + clock-output-names = "pll_mm1"; + }; + + pll_audio: pll-884m-clk { + compatible = "fixed-clock"; + #clock-cells = <0>;
arch/arm64/boot/dts/zte/zx296718.dtsi line 179
Quoted 10 lines
arch/arm64/boot/dts/zte/zx296718.dtsi new file +10
-0+ clock-frequency = <884000000>; + clock-output-names = "pll_audio"; + }; + + pll_hsic: pll-960m-clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <960000000>; + clock-output-names = "pll_hsic"; + };
Do we really have so many uncontrolled clocks with fixed rate in the SoC?
Shawn
PATCH v4 2/3 arm64: dts: Add ZTE ZX296718 SoC dts and Makefile
2016-09-08 17:11 GMT+08:00 Shawn Guo <[email protected]>:
Quoted 40 lines
This version looks pretty good to me. Some nit-picks below though ...
Quoted 1 line · Jun Nie
Add device tree support for ZX296718 SoC and evaluation board based on it.
Please wrap the commit log around column 70.
Quoted 13 lines
Also document new values.
Signed-off-by Jun Nie <[email protected]>--- Documentation/devicetree/bindings/arm/zte.txt | 24 +++ arch/arm64/boot/dts/Makefile | 1 + arch/arm64/boot/dts/zte/Makefile | 5 + arch/arm64/boot/dts/zte/zx296718-evb.dts | 25 +++ arch/arm64/boot/dts/zte/zx296718.dtsi | 254 ++++++++++++++++++++++++++ 5 files changed, 309 insertions(+) create mode 100644 arch/arm64/boot/dts/zte/Makefile create mode 100644 arch/arm64/boot/dts/zte/zx296718-evb.dts create mode 100644 arch/arm64/boot/dts/zte/zx296718.dtsi<snip>
Quoted 17 lines
arch/arm64/boot/dts/zte/Makefile new file +5
-0@@ -0,0 +1,5 @@ +dtb-$(CONFIG_ARCH_ZX) += zx296718-evb.dtb + +always := $(dtb-y) +subdir-y := $(dts-dirs) +clean-files := *.dtbarch/arm64/boot/dts/zte/zx296718-evb.dts new file +0
-0@@ -0,0 +1,25 @@
Quoted 9 lines
arch/arm64/boot/dts/zte/zx296718-evb.dts line 4
Quoted 4 lines
arch/arm64/boot/dts/zte/zx296718-evb.dts new file +4
-0+/* + * ZTE Ltd. zx296718 Plaform + * + */We should probably consider to add a proper licence. GPL/X11 dual is mostly used and recommended, and there are quite a lot examples in the DTS folder.
Will do.
Quoted 26 lines
Quoted 26 lines
arch/arm64/boot/dts/zte/zx296718-evb.dts new file +21
-0+/dts-v1/; +#include "zx296718.dtsi" + +/ { + model = "ZTE zx296718 evaluation board"; + compatible = "zte,zx296718-evb", "zte,zx296718"; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + memory at 40000000 { + device_type = "memory"; + reg = <0x40000000 0x40000000>; + }; + +}; + +&uart0 { + status = "okay"; +};arch/arm64/boot/dts/zte/zx296718.dtsi new file +0
-0
Quoted 8 lines
arch/arm64/boot/dts/zte/zx296718.dtsi line 5
Quoted 6 lines
arch/arm64/boot/dts/zte/zx296718.dtsi new file +5
-0@@ -0,0 +1,254 @@ +/* + * DTS File for ZTE ZX296718 Plaform + * + * Copyright (c) 2016 ZTE Semiconductor Co., Ltd. + */Ditto
Will do.
Quoted 81 lines
Quoted 81 lines
arch/arm64/boot/dts/zte/zx296718.dtsi new file +80
-0+#include <dt-bindings/input/input.h> +#include <dt-bindings/interrupt-controller/arm-gic.h> +#include <dt-bindings/gpio/gpio.h> + +/ { + compatible = "zte,zx296718"; + #address-cells = <1>; + #size-cells = <1>; + + aliases { + serial0 = &uart0; + }; + + cpus { + #address-cells = <2>; + #size-cells = <0>; + + cpu-map { + cluster0 { + core0 { + cpu = <&cpu0>; + }; + core1 { + cpu = <&cpu1>; + }; + core2 { + cpu = <&cpu2>; + }; + core3 { + cpu = <&cpu3>; + }; + }; + }; + + cpu0: cpu at 0 { + device_type = "cpu"; + compatible = "arm,cortex-a53","arm,armv8"; + reg = <0x0 0x0>; + enable-method = "psci"; + }; + + cpu1: cpu at 1 { + device_type = "cpu"; + compatible = "arm,cortex-a53","arm,armv8"; + reg = <0x0 0x1>; + enable-method = "psci"; + }; + + cpu2: cpu at 2 { + device_type = "cpu"; + compatible = "arm,cortex-a53","arm,armv8"; + reg = <0x0 0x2>; + enable-method = "psci"; + }; + + cpu3: cpu at 3 { + device_type = "cpu"; + compatible = "arm,cortex-a53","arm,armv8"; + reg = <0x0 0x3>; + enable-method = "psci"; + }; + }; + + osc12m: osc12m-clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <12000000>; + clock-output-names = "osc12m"; + }; + + osc24m: osc24m-clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <24000000>; + clock-output-names = "osc24m"; + }; + + osc25m: osc25m-clk { + compatible = "fixed-clock"; + #clock-cells = <0>;
Quoted 9 lines
arch/arm64/boot/dts/zte/zx296718.dtsi line 90
Quoted 5 lines
arch/arm64/boot/dts/zte/zx296718.dtsi new file +5
-0+ clock-frequency = <25000000>; + clock-output-names = "osc25m"; + }; + + clk24k: clk-24k {I would suggest we name node of fixed rate clock in an unified way like clock-xxx.
Will do.
Quoted 84 lines
Quoted 84 lines
arch/arm64/boot/dts/zte/zx296718.dtsi new file +84
-0+ compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <24000>; + clock-output-names = "rtcclk"; + }; + + osc32k: osc32k-clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <32000>; + clock-output-names = "osc32k"; + }; + + osc60m: osc60m-clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <60000000>; + clock-output-names = "osc60m"; + }; + + osc99m: osc99m-clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <99000000>; + clock-output-names = "osc99m"; + }; + + osc125m: osc125m-clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <125000000>; + clock-output-names = "osc125m"; + }; + + osc198m: osc198m-clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <198000000>; + clock-output-names = "osc198m"; + }; + + pll_vga: pll-1073m-clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <1073000000>; + clock-output-names = "pll_vga"; + }; + + pll_ddr: pll-932m-clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <932000000>; + clock-output-names = "pll_ddr"; + }; + + pll_mac: pll-1000m-clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <1000000000>; + clock-output-names = "pll_mac"; + }; + + pll_mm0: pll-1188m-clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <1188000000>; + clock-output-names = "pll_mm0"; + }; + + pll_mm1: pll-1296m-clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <1296000000>; + clock-output-names = "pll_mm1"; + }; + + pll_audio: pll-884m-clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <884000000>; + clock-output-names = "pll_audio"; + }; + + pll_hsic: pll-960m-clk {
Quoted 8 lines
arch/arm64/boot/dts/zte/zx296718.dtsi line 179
Quoted 5 lines
arch/arm64/boot/dts/zte/zx296718.dtsi new file +5
-0+ compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <960000000>; + clock-output-names = "pll_hsic"; + };Do we really have so many uncontrolled clocks with fixed rate in the SoC?
PLL clocks can be configured actually according to register. But I prefer to keep them as fixed clocks due to two reasons:
1. ZTE do not want to expose too much information of PLL.
2. All clients blocks, such as MMC and video codec, assume the
related input clock's frequency as a derivation from PLL default frequency value in block clock control register description.
Quoted 2 lines
Shawn
PATCH v4 2/3 arm64: dts: Add ZTE ZX296718 SoC dts and Makefile
Quoted 6 lines · Jun Nie
PLL clocks can be configured actually according to register. But I prefer to keep them as fixed clocks due to two reasons:
1. ZTE do not want to expose too much information of PLL.
2. All clients blocks, such as MMC and video codec, assume the
related input clock's frequency as a derivation from PLL default frequency value in block clock control register description.
Okay, just try to understand the reason behind it. Thanks.
Shawn
PATCH v4 2/3 arm64: dts: Add ZTE ZX296718 SoC dts and Makefile
In reply to Jun NieA bit more comments as below ...
arch/arm64/boot/dts/zte/zx296718.dtsi line 198
Quoted 13 lines · Jun Nie
arch/arm64/boot/dts/zte/zx296718.dtsi new file +13
-0+ soc { + #address-cells = <1>; + #size-cells = <1>; + compatible = "simple-bus"; + interrupt-parent = <&gic>; + ranges; + + timer { + compatible = "arm,armv8-timer"; + interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, + <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, + <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, + <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
Affinity bits are missing for PPI interrupt. You can use a bit help from defines in include/dt-bindings/interrupt-controller/arm-gic.h.
arch/arm64/boot/dts/zte/zx296718.dtsi line 204
Quoted 6 lines
arch/arm64/boot/dts/zte/zx296718.dtsi new file +6
-0+ }; + + pmu { + compatible = "arm,cortex-a53-pmu"; + interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>; + };
There are no unit-address for timer and pmu, so we should probably move them out of soc simple-bus and put them directly under root.
Quoted 37 lines
arch/arm64/boot/dts/zte/zx296718.dtsi new file +37
-0+ + aon_sysctrl: aon-sysctrl at 116000 { + compatible = "zte,zx296718-aon-sysctrl", "syscon"; + reg = <0x116000 0x1000>; + }; + + uart0: uart at 11f000 { + compatible = "arm,pl011", "arm,primecell"; + arm,primecell-periphid = <0x001feffe>; + reg = <0x11f000 0x1000>; + interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&osc24m>; + clock-names = "apb_pclk"; + status = "disabled"; + }; + + dma: dma-controller at 1460000 { + compatible = "zte,zx296702-dma"; + reg = <0x01460000 0x1000>; + interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&osc24m>; + clock-names = "dmaclk"; + #dma-cells = <1>; + dma-channels = <32>; + dma-requests = <32>; + }; + + sysctrl: sysctrl at 1463000 { + compatible = "zte,zx296718-sysctrl", "syscon"; + reg = <0x1463000 0x1000>; + }; + + gic: interrupt-controller at 2a00000 { + compatible = "arm,gic-v3"; + #interrupt-cells = <3>; + #address-cells = <0>; + #redistributor-regions = <6>;
arch/arm64/boot/dts/zte/zx296718.dtsi line 251
Quoted 10 lines
arch/arm64/boot/dts/zte/zx296718.dtsi new file +10
-0+ redistributor-stride = <0x0 0x40000>; + interrupt-controller; + reg = <0x02a00000 0x10000>, + <0x02b00000 0x20000>, + <0x02b20000 0x20000>, + <0x02b40000 0x20000>, + <0x02b60000 0x20000>, + <0x02b80000 0x20000>, + <0x02ba0000 0x20000>; + interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
Affinity bits are missing.
Shawn
Quoted 11 lines
arch/arm64/boot/dts/zte/zx296718-evb.dts new file +3
-0+ }; + }; +};Signature · 7 lines
1.9.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel at lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
PATCH v4 2/3 arm64: dts: Add ZTE ZX296718 SoC dts and Makefile
Quoted 19 lines · Shawn Guo
A bit more comments as below ...
arch/arm64/boot/dts/zte/zx296718.dtsi line 198
Quoted 13 lines · Jun Nie
arch/arm64/boot/dts/zte/zx296718.dtsi new file +13
-0+ soc { + #address-cells = <1>; + #size-cells = <1>; + compatible = "simple-bus"; + interrupt-parent = <&gic>; + ranges; + + timer { + compatible = "arm,armv8-timer"; + interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, + <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, + <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, + <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;Affinity bits are missing for PPI interrupt. You can use a bit help from defines in
include/dt-bindings/interrupt-controller/arm-gic.h.
Sorry, I missed the fact that affinity bits is only required for gic-v2, while what we have here is a gic-v3. So please ignore the comment.
Shawn
PATCH v4 3/3 arm64: defconfig: enable ZTE ZX related config
In reply to Jun NieThis patch enables the configuration for the ZTE ZX family.
--- arch/arm64/configs/defconfig | 1 + 1 file changed, 1 insertion(+)
arch/arm64/configs/defconfig +1 -0
@@ -57,6 +57,7 @@ CONFIG_ARCH_UNIPHIER=y CONFIG_ARCH_VEXPRESS=y CONFIG_ARCH_VULCAN=y CONFIG_ARCH_XGENE=y +CONFIG_ARCH_ZX=y CONFIG_ARCH_ZYNQMP=y CONFIG_PCI=y CONFIG_PCI_MSI=y
Signature · 1 line
1.9.1