* [PATCH 0/2] ARM: dts: zynq: Add ALINX AX7Z020B development board
@ 2026-11-08 21:50 Pufan Jin
2026-11-08 21:50 ` [PATCH 1/2] dt-bindings: soc: xilinx: Add ALINX AX7Z020B board Pufan Jin
2026-11-08 21:50 ` [PATCH 2/2] ARM: dts: zynq: Add ALINX AX7Z020B development board Pufan Jin
0 siblings, 2 replies; 6+ messages in thread
From: Pufan Jin @ 2026-11-08 21:50 UTC (permalink / raw)
To: Conor Dooley, Krzysztof Kozlowski, Michal Simek, Rob Herring
Cc: devicetree, linux-arm-kernel, linux-kernel
This series adds device tree support for the ALINX AX7Z020B development
board, based on the Xilinx Zynq-7000 SoC (XC7Z020-2CLG400I).
Note: the "alinx" vendor prefix is not part of this series, it is already
present as commit 1f06cd374a60 ("dt-bindings: vendor-prefixes: Add ALINX
vendor prefix") in the Xilinx for-next branch.
The platform consists of two physical layers:
1. ALINX AC7Z020 system on module (SoM), in zynq-alinx-ac7z020.dtsi:
- Xilinx XC7Z020-2CLG400I SoC (dual ARM Cortex-A9, 33.333333MHz PS_CLK)
- 1024 MiB DDR3 SDRAM (2x MT41K256M16RE-125, 32-bit bus)
- 32 MiB QSPI Flash (Winbond W25Q256FVEI) with 4 MTD partitions
- DevCFG FPGA manager
2. The AX7Z020B board (AC7Z020 SoM plus carrier board), described in
zynq-alinx-ax7z020b.dts:
- Serial console via USB-UART bridge (CP2102, MIO 48-49)
- MicroSD slot on SDHCI0 (MIO 40-45)
- Gigabit Ethernet via GEM0 (MIO 16-27 RGMII, MIO 52-53 MDIO)
with JLSemi JL2121 PHY at MDIO address 1 and RJ45 link/activity LEDs
- USB 2.0 host via USB3320C ULPI PHY (MIO 28-39), reset on MIO 46
- Dual CAN buses (CAN0 on MIO 10-11, CAN1 on MIO 12-13) with
SN65HVD232 transceivers
- I2C bus on MIO 50-51 with 24LC04 EEPROM, DS1338 RTC and LM75 sensor
- 2x SMA AD inputs and a spare differential pair wired to XADC aux
channels VAUX1/VAUX9/VAUX12. XADC is a hard macro accessible from the
PS without PL configuration, the channels are enabled via the
xlnx,channels property.
Tested on hardware: boot from SD card, UART console, SD card, GbE with
iperf3 (940+ Mbps) and netdev LED trigger hardware offload, USB host,
dual CAN (SocketCAN at 500 kbps), I2C sensors, QSPI flash MTD partitions,
and XADC temperature/voltage plus the external AD aux channels via IIO.
The DTB passes CHECK_DTBS=y and the bindings pass dt_binding_check.
Pufan Jin (2):
dt-bindings: soc: xilinx: Add ALINX AX7Z020B board
ARM: dts: zynq: Add ALINX AX7Z020B development board
.../bindings/soc/xilinx/xilinx.yaml | 6 +
arch/arm/boot/dts/xilinx/Makefile | 1 +
.../boot/dts/xilinx/zynq-alinx-ac7z020.dtsi | 72 +++++++++
.../boot/dts/xilinx/zynq-alinx-ax7z020b.dts | 137 ++++++++++++++++++
4 files changed, 216 insertions(+)
create mode 100644 arch/arm/boot/dts/xilinx/zynq-alinx-ac7z020.dtsi
create mode 100644 arch/arm/boot/dts/xilinx/zynq-alinx-ax7z020b.dts
--
2.56.0
^ permalink raw reply [flat|nested] 6+ messages in thread* [PATCH 1/2] dt-bindings: soc: xilinx: Add ALINX AX7Z020B board 2026-11-08 21:50 [PATCH 0/2] ARM: dts: zynq: Add ALINX AX7Z020B development board Pufan Jin @ 2026-11-08 21:50 ` Pufan Jin 2026-11-08 21:59 ` sashiko-bot 2026-11-08 21:50 ` [PATCH 2/2] ARM: dts: zynq: Add ALINX AX7Z020B development board Pufan Jin 1 sibling, 1 reply; 6+ messages in thread From: Pufan Jin @ 2026-11-08 21:50 UTC (permalink / raw) To: Conor Dooley, Krzysztof Kozlowski, Michal Simek, Rob Herring Cc: devicetree, linux-arm-kernel, linux-kernel Document the ALINX AX7Z020B development board, built around the ALINX AC7Z020 system on module. Link: https://www.alinx.com/ Signed-off-by: Pufan Jin <cyan2254650260@gmail.com> --- Documentation/devicetree/bindings/soc/xilinx/xilinx.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Documentation/devicetree/bindings/soc/xilinx/xilinx.yaml b/Documentation/devicetree/bindings/soc/xilinx/xilinx.yaml index c9f99e0df2..87b331f296 100644 --- a/Documentation/devicetree/bindings/soc/xilinx/xilinx.yaml +++ b/Documentation/devicetree/bindings/soc/xilinx/xilinx.yaml @@ -20,6 +20,7 @@ properties: - items: - enum: - adapteva,parallella + - alinx,ac7z020 - digilent,zynq-zybo - digilent,zynq-zybo-z7 - ebang,ebaz4205 @@ -34,6 +35,11 @@ properties: - xlnx,zynq-zc770-xm013 - const: xlnx,zynq-7000 + - items: + - const: alinx,ax7z020b + - const: alinx,ac7z020 + - const: xlnx,zynq-7000 + - items: - const: avnet,zynq-microzed - const: xlnx,zynq-microzed -- 2.56.0 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] dt-bindings: soc: xilinx: Add ALINX AX7Z020B board 2026-11-08 21:50 ` [PATCH 1/2] dt-bindings: soc: xilinx: Add ALINX AX7Z020B board Pufan Jin @ 2026-11-08 21:59 ` sashiko-bot 0 siblings, 0 replies; 6+ messages in thread From: sashiko-bot @ 2026-11-08 21:59 UTC (permalink / raw) To: Pufan Jin; +Cc: devicetree, robh, conor+dt Thank you for your contribution! Sashiko AI review found 2 potential issues to consider: - [Low] dt-bindings: soc: xilinx: undocumented alinx vendor prefix - [Low] dt-bindings: soc: xilinx: standalone board entry for alinx,ac7z020 SoM -- commit 1e47b64f622951246602cf5bda819bb5e711a84e Author: Pufan Jin <cyan2254650260@gmail.com> dt-bindings: soc: xilinx: Add ALINX AX7Z020B board This commit documents the compatible strings for the ALINX AX7Z020B development board and the ALINX AC7Z020 system on module in the Xilinx SoC binding schema. Link: https://www.alinx.com/ > diff --git a/Documentation/devicetree/bindings/soc/xilinx/xilinx.yaml b/Documentation/devicetree/bindings/soc/xilinx/xilinx.yaml > index 5f33f7def6a32..349987962e33f 100644 > --- a/Documentation/devicetree/bindings/soc/xilinx/xilinx.yaml > +++ b/Documentation/devicetree/bindings/soc/xilinx/xilinx.yaml > @@ -20,6 +20,7 @@ properties: > - items: > - enum: > - adapteva,parallella > + - alinx,ac7z020 [Severity: Low] Should alinx,ac7z020 be listed in this two-item standalone board enum? AC7Z020 is a System on Module (.dtsi) that cannot boot without a carrier board, and the three-item entry below already covers the AX7Z020B carrier board paired with the AC7Z020 SoM. > - digilent,zynq-zybo > - digilent,zynq-zybo-z7 > - ebang,ebaz4205 > @@ -34,6 +35,11 @@ properties: > - xlnx,zynq-zc770-xm013 > - const: xlnx,zynq-7000 > > + - items: > + - const: alinx,ax7z020b > + - const: alinx,ac7z020 > + - const: xlnx,zynq-7000 [Severity: Low] Does the "alinx" vendor prefix need to be added to Documentation/devicetree/bindings/vendor-prefixes.yaml? Without an entry there, running make dt_binding_check or scripts/checkpatch.pl reports an undocumented vendor prefix for alinx,ax7z020b and alinx,ac7z020. -- Sashiko AI review · https://sashiko.dev/#/patchset/20261108215010.351256-1-cyan2254650260@gmail.com?part=1 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 2/2] ARM: dts: zynq: Add ALINX AX7Z020B development board 2026-11-08 21:50 [PATCH 0/2] ARM: dts: zynq: Add ALINX AX7Z020B development board Pufan Jin 2026-11-08 21:50 ` [PATCH 1/2] dt-bindings: soc: xilinx: Add ALINX AX7Z020B board Pufan Jin @ 2026-11-08 21:50 ` Pufan Jin 2026-11-08 22:01 ` sashiko-bot 2026-11-11 2:17 ` Andrew Lunn 1 sibling, 2 replies; 6+ messages in thread From: Pufan Jin @ 2026-11-08 21:50 UTC (permalink / raw) To: Conor Dooley, Krzysztof Kozlowski, Michal Simek, Rob Herring Cc: devicetree, linux-arm-kernel, linux-kernel Add devicetree support for the ALINX AX7Z020B development board. The board is built around the ALINX AC7Z020 system on module with a Zynq-7000 (XC7Z020-2CLG400I) SoC, 1 GB DDR3 SDRAM and 32 MB QSPI flash, and provides Gigabit Ethernet (JLSemi JL2121 PHY), USB 2.0 host, MicroSD slot, dual CAN buses (SN65HVD232 transceivers on MIO 10-13), I2C RTC/EEPROM/LM75 and the serial console on UART1. DevCFG FPGA manager is also enabled. The two SMA AD inputs and the spare differential pair are wired to XADC aux channels VAUX1, VAUX9 and VAUX12. The XADC hard macro is always accessible from the PS, so expose these channels via the driver's xlnx,channels property. Link: https://www.alinx.com/ Signed-off-by: Pufan Jin <cyan2254650260@gmail.com> --- arch/arm/boot/dts/xilinx/Makefile | 1 + .../boot/dts/xilinx/zynq-alinx-ac7z020.dtsi | 72 +++++++++ .../boot/dts/xilinx/zynq-alinx-ax7z020b.dts | 137 ++++++++++++++++++ 3 files changed, 210 insertions(+) create mode 100644 arch/arm/boot/dts/xilinx/zynq-alinx-ac7z020.dtsi create mode 100644 arch/arm/boot/dts/xilinx/zynq-alinx-ax7z020b.dts diff --git a/arch/arm/boot/dts/xilinx/Makefile b/arch/arm/boot/dts/xilinx/Makefile index 9233e539b1..5c4bcd9492 100644 --- a/arch/arm/boot/dts/xilinx/Makefile +++ b/arch/arm/boot/dts/xilinx/Makefile @@ -1,5 +1,6 @@ # SPDX-License-Identifier: GPL-2.0 dtb-$(CONFIG_ARCH_ZYNQ) += \ + zynq-alinx-ax7z020b.dtb \ zynq-cc108.dtb \ zynq-ebaz4205.dtb \ zynq-microzed.dtb \ diff --git a/arch/arm/boot/dts/xilinx/zynq-alinx-ac7z020.dtsi b/arch/arm/boot/dts/xilinx/zynq-alinx-ac7z020.dtsi new file mode 100644 index 0000000000..2da08424f1 --- /dev/null +++ b/arch/arm/boot/dts/xilinx/zynq-alinx-ac7z020.dtsi @@ -0,0 +1,72 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * DTS for ALINX AC7Z020 System on Module + * + * Copyright (C) 2026 Pufan Jin <cyan2254650260@gmail.com> + */ + +#include "zynq-7000.dtsi" + +/ { + compatible = "alinx,ac7z020", "xlnx,zynq-7000"; + + memory@0 { + device_type = "memory"; + reg = <0x0 0x40000000>; + }; +}; + +&clkc { + ps-clk-frequency = <33333333>; +}; + +&devcfg { + status = "okay"; +}; + +/ { + pmu@f8891000 { + interrupt-affinity = <&cpu0>, <&cpu1>; + }; +}; + +&qspi { + bootph-all; + status = "okay"; + num-cs = <1>; + + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0>; + spi-tx-bus-width = <1>; + spi-rx-bus-width = <4>; + spi-max-frequency = <50000000>; + m25p,fast-read; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "boot"; + reg = <0x00000000 0x00500000>; + }; + + partition@500000 { + label = "bootenv"; + reg = <0x00500000 0x00020000>; + }; + + partition@520000 { + label = "image"; + reg = <0x00520000 0x00a80000>; + }; + + partition@fa0000 { + label = "spare"; + reg = <0x00fa0000 0x01060000>; + }; + }; + }; +}; diff --git a/arch/arm/boot/dts/xilinx/zynq-alinx-ax7z020b.dts b/arch/arm/boot/dts/xilinx/zynq-alinx-ax7z020b.dts new file mode 100644 index 0000000000..4dfef96ad3 --- /dev/null +++ b/arch/arm/boot/dts/xilinx/zynq-alinx-ax7z020b.dts @@ -0,0 +1,137 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * DTS for ALINX AX7Z020B Development Board + * + * Copyright (C) 2026 Pufan Jin <cyan2254650260@gmail.com> + */ + +/dts-v1/; +#include "zynq-alinx-ac7z020.dtsi" +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/leds/common.h> + +/ { + model = "ALINX AX7Z020B Development Board"; + compatible = "alinx,ax7z020b", "alinx,ac7z020", "xlnx,zynq-7000"; + + aliases { + ethernet0 = &gem0; + serial0 = &uart1; + serial1 = &uart0; + mmc0 = &sdhci0; + spi0 = &qspi; + i2c0 = &i2c0; + }; + + chosen { + bootargs = ""; + stdout-path = "serial0:115200n8"; + }; + + usb_phy0: phy0 { + compatible = "usb-nop-xceiv"; + #phy-cells = <0>; + reset-gpios = <&gpio0 46 GPIO_ACTIVE_LOW>; + }; +}; + +&adc { + xlnx,channels { + #address-cells = <1>; + #size-cells = <0>; + + /* AD1: XADC_AD1P/N, E17/D18 */ + channel@2 { + reg = <2>; + }; + + /* AD9: XADC_AD9P/N, E18/E19 */ + channel@10 { + reg = <10>; + }; + + /* Spare pair: XADC_AD12P/N, F19/F20 */ + channel@13 { + reg = <13>; + }; + }; +}; + +&can0 { + status = "okay"; +}; + +&can1 { + status = "okay"; +}; + +&gem0 { + status = "okay"; + phy-mode = "rgmii-id"; + phy-handle = <ðernet_phy>; + + ethernet_phy: ethernet-phy@1 { + reg = <1>; + + leds { + #address-cells = <1>; + #size-cells = <0>; + + led@0 { + reg = <0>; + color = <LED_COLOR_ID_GREEN>; + function = LED_FUNCTION_LAN; + default-state = "keep"; + }; + + led@1 { + reg = <1>; + color = <LED_COLOR_ID_YELLOW>; + function = LED_FUNCTION_ACTIVITY; + default-state = "keep"; + }; + }; + }; +}; + +&i2c0 { + status = "okay"; + clock-frequency = <100000>; + + eeprom@50 { + compatible = "atmel,24c04"; + reg = <0x50>; + pagesize = <16>; + }; + + rtc@68 { + compatible = "dallas,ds1338"; + reg = <0x68>; + }; + + temperature-sensor@48 { + compatible = "national,lm75"; + reg = <0x48>; + }; +}; + +&sdhci0 { + bootph-all; + status = "okay"; + disable-wp; +}; + +&uart0 { + status = "okay"; +}; + +&uart1 { + bootph-all; + status = "okay"; +}; + +&usb0 { + status = "okay"; + dr_mode = "host"; + usb-phy = <&usb_phy0>; +}; -- 2.56.0 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] ARM: dts: zynq: Add ALINX AX7Z020B development board 2026-11-08 21:50 ` [PATCH 2/2] ARM: dts: zynq: Add ALINX AX7Z020B development board Pufan Jin @ 2026-11-08 22:01 ` sashiko-bot 2026-11-11 2:17 ` Andrew Lunn 1 sibling, 0 replies; 6+ messages in thread From: sashiko-bot @ 2026-11-08 22:01 UTC (permalink / raw) To: Pufan Jin; +Cc: devicetree, robh, conor+dt Thank you for your contribution! Sashiko AI review found 3 potential issues to consider: - [Low] ARM: dts: zynq: undocumented vendor prefix alinx in root compatible strings - [Low] ARM: dts: zynq: decimal unit-addresses in XADC channel@10 and channel@13 nodes - [Low] ARM: dts: zynq: split root node blocks in zynq-alinx-ac7z020.dtsi -- commit ad140ae8401a6613bfd0e62dbc79a92d188f222b Author: Pufan Jin <cyan2254650260@gmail.com> ARM: dts: zynq: Add ALINX AX7Z020B development board This commit adds devicetree support for the ALINX AC7Z020 system on module and the ALINX AX7Z020B development board. Link: https://www.alinx.com/ > diff --git a/arch/arm/boot/dts/xilinx/zynq-alinx-ac7z020.dtsi b/arch/arm/boot/dts/xilinx/zynq-alinx-ac7z020.dtsi > new file mode 100644 > index 0000000000000..2da08424f1a2a > --- /dev/null > +++ b/arch/arm/boot/dts/xilinx/zynq-alinx-ac7z020.dtsi > @@ -0,0 +1,72 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* > + * DTS for ALINX AC7Z020 System on Module > + * > + * Copyright (C) 2026 Pufan Jin <cyan2254650260@gmail.com> > + */ > + > +#include "zynq-7000.dtsi" > + > +/ { > + compatible = "alinx,ac7z020", "xlnx,zynq-7000"; [Severity: Low] Should the "alinx" vendor prefix used here and in zynq-alinx-ax7z020b.dts be documented in Documentation/devicetree/bindings/vendor-prefixes.yaml? Without an "^alinx,.*" entry there, checkpatch.pl and dtbs_check report an undocumented vendor prefix. > + > + memory@0 { > + device_type = "memory"; > + reg = <0x0 0x40000000>; > + }; > +}; > + > +&clkc { > + ps-clk-frequency = <33333333>; > +}; > + > +&devcfg { > + status = "okay"; > +}; > + > +/ { > + pmu@f8891000 { > + interrupt-affinity = <&cpu0>, <&cpu1>; > + }; > +}; [Severity: Low] This isn't a bug, but why reopen a second root node block after &clkc and &devcfg instead of placing pmu@f8891000 inside the initial / { ... }; block above per Documentation/devicetree/bindings/dts-coding-style.rst? [ ... ] > diff --git a/arch/arm/boot/dts/xilinx/zynq-alinx-ax7z020b.dts b/arch/arm/boot/dts/xilinx/zynq-alinx-ax7z020b.dts > new file mode 100644 > index 0000000000000..4dfef96ad376a > --- /dev/null > +++ b/arch/arm/boot/dts/xilinx/zynq-alinx-ax7z020b.dts [ ... ] > +&adc { > + xlnx,channels { > + #address-cells = <1>; > + #size-cells = <0>; > + > + /* AD1: XADC_AD1P/N, E17/D18 */ > + channel@2 { > + reg = <2>; > + }; > + > + /* AD9: XADC_AD9P/N, E18/E19 */ > + channel@10 { > + reg = <10>; > + }; > + > + /* Spare pair: XADC_AD12P/N, F19/F20 */ > + channel@13 { > + reg = <13>; > + }; > + }; > +}; [Severity: Low] Should channel@10 and channel@13 be named channel@a and channel@d? Unit-addresses after @ are lowercase hexadecimal without a 0x prefix, while reg = <10> and reg = <13> are decimal (0xa and 0xd). -- Sashiko AI review · https://sashiko.dev/#/patchset/20261108215010.351256-1-cyan2254650260@gmail.com?part=2 ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] ARM: dts: zynq: Add ALINX AX7Z020B development board 2026-11-08 21:50 ` [PATCH 2/2] ARM: dts: zynq: Add ALINX AX7Z020B development board Pufan Jin 2026-11-08 22:01 ` sashiko-bot @ 2026-11-11 2:17 ` Andrew Lunn 1 sibling, 0 replies; 6+ messages in thread From: Andrew Lunn @ 2026-11-11 2:17 UTC (permalink / raw) To: Pufan Jin Cc: Conor Dooley, Krzysztof Kozlowski, Michal Simek, Rob Herring, devicetree, linux-arm-kernel, linux-kernel > +&gem0 { > + status = "okay"; > + phy-mode = "rgmii-id"; > + phy-handle = <ðernet_phy>; > + > + ethernet_phy: ethernet-phy@1 { > + reg = <1>; > + It is better to have an MDIO node, with the PHY a child of that. Andrew ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-11-11 2:17 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-11-08 21:50 [PATCH 0/2] ARM: dts: zynq: Add ALINX AX7Z020B development board Pufan Jin 2026-11-08 21:50 ` [PATCH 1/2] dt-bindings: soc: xilinx: Add ALINX AX7Z020B board Pufan Jin 2026-11-08 21:59 ` sashiko-bot 2026-11-08 21:50 ` [PATCH 2/2] ARM: dts: zynq: Add ALINX AX7Z020B development board Pufan Jin 2026-11-08 22:01 ` sashiko-bot 2026-11-11 2:17 ` Andrew Lunn
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox