From 1b09377d3a84e127ade718ba92ad7a32d0fb181d Mon Sep 17 00:00:00 2001 From: Sai Krishna Potthuri Date: Wed, 11 Dec 2024 13:41:20 +0100 Subject: [PATCH 01/14] ARM: zynq: Replace 'io-standard' with 'power-source' property Replace 'io-standard' property with 'power-source' property in all zynq dts files to be in sync with Zynq Pinctrl driver. Signed-off-by: Sai Krishna Potthuri Signed-off-by: Michal Simek Reviewed-by: Peter Korsgaard Signed-off-by: Michal Simek Link: https://lore.kernel.org/r/cf45ed95fe0be083446d5aaf5f946f38acba7728.1733920873.git.michal.simek@amd.com --- arch/arm/boot/dts/xilinx/zynq-zc702.dts | 22 +++++++++++----------- arch/arm/boot/dts/xilinx/zynq-zc706.dts | 18 +++++++++--------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/arch/arm/boot/dts/xilinx/zynq-zc702.dts b/arch/arm/boot/dts/xilinx/zynq-zc702.dts index 6efdbca9d3ef..a933c0341b69 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zc702.dts +++ b/arch/arm/boot/dts/xilinx/zynq-zc702.dts @@ -210,7 +210,7 @@ mux { conf { groups = "can0_9_grp"; slew-rate = <0>; - io-standard = <1>; + power-source = <1>; }; conf-rx { @@ -233,7 +233,7 @@ mux { conf { groups = "ethernet0_0_grp"; slew-rate = <0>; - io-standard = <4>; + power-source = <4>; }; conf-rx { @@ -256,7 +256,7 @@ mux-mdio { conf-mdio { groups = "mdio0_0_grp"; slew-rate = <0>; - io-standard = <1>; + power-source = <1>; bias-disable; }; }; @@ -274,7 +274,7 @@ conf { "gpio0_10_grp", "gpio0_11_grp", "gpio0_12_grp", "gpio0_13_grp", "gpio0_14_grp"; slew-rate = <0>; - io-standard = <1>; + power-source = <1>; }; conf-pull-up { @@ -298,7 +298,7 @@ conf { groups = "i2c0_10_grp"; bias-pull-up; slew-rate = <0>; - io-standard = <1>; + power-source = <1>; }; }; @@ -311,7 +311,7 @@ mux { conf { groups = "gpio0_50_grp", "gpio0_51_grp"; slew-rate = <0>; - io-standard = <1>; + power-source = <1>; }; }; @@ -324,7 +324,7 @@ mux { conf { groups = "sdio0_2_grp"; slew-rate = <0>; - io-standard = <1>; + power-source = <1>; bias-disable; }; @@ -338,7 +338,7 @@ conf-cd { bias-high-impedance; bias-pull-up; slew-rate = <0>; - io-standard = <1>; + power-source = <1>; }; mux-wp { @@ -351,7 +351,7 @@ conf-wp { bias-high-impedance; bias-pull-up; slew-rate = <0>; - io-standard = <1>; + power-source = <1>; }; }; @@ -364,7 +364,7 @@ mux { conf { groups = "uart1_10_grp"; slew-rate = <0>; - io-standard = <1>; + power-source = <1>; }; conf-rx { @@ -387,7 +387,7 @@ mux { conf { groups = "usb0_0_grp"; slew-rate = <0>; - io-standard = <1>; + power-source = <1>; }; conf-rx { diff --git a/arch/arm/boot/dts/xilinx/zynq-zc706.dts b/arch/arm/boot/dts/xilinx/zynq-zc706.dts index 77943c16d33f..d21e3ae4ebb2 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zc706.dts +++ b/arch/arm/boot/dts/xilinx/zynq-zc706.dts @@ -150,7 +150,7 @@ mux { conf { groups = "ethernet0_0_grp"; slew-rate = <0>; - io-standard = <4>; + power-source = <4>; }; conf-rx { @@ -173,7 +173,7 @@ mux-mdio { conf-mdio { groups = "mdio0_0_grp"; slew-rate = <0>; - io-standard = <1>; + power-source = <1>; bias-disable; }; }; @@ -187,7 +187,7 @@ mux { conf { groups = "gpio0_7_grp", "gpio0_46_grp", "gpio0_47_grp"; slew-rate = <0>; - io-standard = <1>; + power-source = <1>; }; conf-pull-up { @@ -211,7 +211,7 @@ conf { groups = "i2c0_10_grp"; bias-pull-up; slew-rate = <0>; - io-standard = <1>; + power-source = <1>; }; }; @@ -224,7 +224,7 @@ mux { conf { groups = "sdio0_2_grp"; slew-rate = <0>; - io-standard = <1>; + power-source = <1>; bias-disable; }; @@ -238,7 +238,7 @@ conf-cd { bias-high-impedance; bias-pull-up; slew-rate = <0>; - io-standard = <1>; + power-source = <1>; }; mux-wp { @@ -251,7 +251,7 @@ conf-wp { bias-high-impedance; bias-pull-up; slew-rate = <0>; - io-standard = <1>; + power-source = <1>; }; }; @@ -264,7 +264,7 @@ mux { conf { groups = "uart1_10_grp"; slew-rate = <0>; - io-standard = <1>; + power-source = <1>; }; conf-rx { @@ -287,7 +287,7 @@ mux { conf { groups = "usb0_0_grp"; slew-rate = <0>; - io-standard = <1>; + power-source = <1>; }; conf-rx { From 876188600a261e867a6308cd30d01c2ab5c7bf48 Mon Sep 17 00:00:00 2001 From: Michal Simek Date: Wed, 11 Dec 2024 13:41:21 +0100 Subject: [PATCH 02/14] ARM: zynq: Remove deprecated device_type property Based on DT specification device_type property is deprecated and should be used only for cpu and memory nodes. That's why remove other usage. In this case ethernet phy. Signed-off-by: Michal Simek Link: https://lore.kernel.org/r/77152dc14271a2340f63e6d407f36293ed656d49.1733920873.git.michal.simek@amd.com --- arch/arm/boot/dts/xilinx/zynq-cc108.dts | 1 - arch/arm/boot/dts/xilinx/zynq-parallella.dts | 1 - arch/arm/boot/dts/xilinx/zynq-zc702.dts | 1 - arch/arm/boot/dts/xilinx/zynq-zc706.dts | 1 - arch/arm/boot/dts/xilinx/zynq-zc770-xm010.dts | 1 - arch/arm/boot/dts/xilinx/zynq-zc770-xm013.dts | 1 - arch/arm/boot/dts/xilinx/zynq-zed.dts | 1 - arch/arm/boot/dts/xilinx/zynq-zybo-z7.dts | 1 - arch/arm/boot/dts/xilinx/zynq-zybo.dts | 1 - 9 files changed, 9 deletions(-) diff --git a/arch/arm/boot/dts/xilinx/zynq-cc108.dts b/arch/arm/boot/dts/xilinx/zynq-cc108.dts index 8b9ab9bba23b..b930a5953b49 100644 --- a/arch/arm/boot/dts/xilinx/zynq-cc108.dts +++ b/arch/arm/boot/dts/xilinx/zynq-cc108.dts @@ -48,7 +48,6 @@ &gem0 { ethernet_phy: ethernet-phy@1 { reg = <1>; - device_type = "ethernet-phy"; }; }; diff --git a/arch/arm/boot/dts/xilinx/zynq-parallella.dts b/arch/arm/boot/dts/xilinx/zynq-parallella.dts index 54592aeb92b9..366af4fcf8d9 100644 --- a/arch/arm/boot/dts/xilinx/zynq-parallella.dts +++ b/arch/arm/boot/dts/xilinx/zynq-parallella.dts @@ -46,7 +46,6 @@ ethernet_phy: ethernet-phy@0 { compatible = "ethernet-phy-id0141.0e90", "ethernet-phy-ieee802.3-c22"; reg = <0>; - device_type = "ethernet-phy"; marvell,reg-init = <0x3 0x10 0xff00 0x1e>, <0x3 0x11 0xfff0 0xa>; }; diff --git a/arch/arm/boot/dts/xilinx/zynq-zc702.dts b/arch/arm/boot/dts/xilinx/zynq-zc702.dts index a933c0341b69..b77d2ae82606 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zc702.dts +++ b/arch/arm/boot/dts/xilinx/zynq-zc702.dts @@ -95,7 +95,6 @@ &gem0 { ethernet_phy: ethernet-phy@7 { reg = <7>; - device_type = "ethernet-phy"; }; }; diff --git a/arch/arm/boot/dts/xilinx/zynq-zc706.dts b/arch/arm/boot/dts/xilinx/zynq-zc706.dts index d21e3ae4ebb2..50636906981e 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zc706.dts +++ b/arch/arm/boot/dts/xilinx/zynq-zc706.dts @@ -46,7 +46,6 @@ &gem0 { ethernet_phy: ethernet-phy@7 { reg = <7>; - device_type = "ethernet-phy"; }; }; diff --git a/arch/arm/boot/dts/xilinx/zynq-zc770-xm010.dts b/arch/arm/boot/dts/xilinx/zynq-zc770-xm010.dts index 0dd352289a45..9bb5b3a5252f 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zc770-xm010.dts +++ b/arch/arm/boot/dts/xilinx/zynq-zc770-xm010.dts @@ -45,7 +45,6 @@ &gem0 { ethernet_phy: ethernet-phy@7 { reg = <7>; - device_type = "ethernet-phy"; }; }; diff --git a/arch/arm/boot/dts/xilinx/zynq-zc770-xm013.dts b/arch/arm/boot/dts/xilinx/zynq-zc770-xm013.dts index 38d96adc870c..3fd0d05588bb 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zc770-xm013.dts +++ b/arch/arm/boot/dts/xilinx/zynq-zc770-xm013.dts @@ -40,7 +40,6 @@ &gem1 { ethernet_phy: ethernet-phy@7 { reg = <7>; - device_type = "ethernet-phy"; }; }; diff --git a/arch/arm/boot/dts/xilinx/zynq-zed.dts b/arch/arm/boot/dts/xilinx/zynq-zed.dts index 6a5a93aa6552..63effb7809c5 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zed.dts +++ b/arch/arm/boot/dts/xilinx/zynq-zed.dts @@ -43,7 +43,6 @@ &gem0 { ethernet_phy: ethernet-phy@0 { reg = <0>; - device_type = "ethernet-phy"; }; }; diff --git a/arch/arm/boot/dts/xilinx/zynq-zybo-z7.dts b/arch/arm/boot/dts/xilinx/zynq-zybo-z7.dts index 7b87e10d3953..da76cfd65832 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zybo-z7.dts +++ b/arch/arm/boot/dts/xilinx/zynq-zybo-z7.dts @@ -49,7 +49,6 @@ &gem0 { ethernet_phy: ethernet-phy@0 { reg = <0>; - device_type = "ethernet-phy"; }; }; diff --git a/arch/arm/boot/dts/xilinx/zynq-zybo.dts b/arch/arm/boot/dts/xilinx/zynq-zybo.dts index 755f6f109d5a..4784ef115dad 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zybo.dts +++ b/arch/arm/boot/dts/xilinx/zynq-zybo.dts @@ -44,7 +44,6 @@ &gem0 { ethernet_phy: ethernet-phy@0 { reg = <0>; - device_type = "ethernet-phy"; }; }; From 41dc9d61ca2e99b98425c841808da08fd780e803 Mon Sep 17 00:00:00 2001 From: Michal Simek Date: Wed, 11 Dec 2024 13:41:22 +0100 Subject: [PATCH 03/14] ARM: zynq: DT: List OCM memory for all platforms Move OCM description from zc702 to all zynq boards. Signed-off-by: Michal Simek Link: https://lore.kernel.org/r/68da82d3d0733e33672562487a9df4a9374d8e1a.1733920873.git.michal.simek@amd.com --- arch/arm/boot/dts/xilinx/zynq-7000.dtsi | 11 +++++++++++ arch/arm/boot/dts/xilinx/zynq-zc702.dts | 13 ------------- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/arch/arm/boot/dts/xilinx/zynq-7000.dtsi b/arch/arm/boot/dts/xilinx/zynq-7000.dtsi index a7db3f3009f2..fe224d41320c 100644 --- a/arch/arm/boot/dts/xilinx/zynq-7000.dtsi +++ b/arch/arm/boot/dts/xilinx/zynq-7000.dtsi @@ -190,6 +190,17 @@ mc: memory-controller@f8006000 { reg = <0xf8006000 0x1000>; }; + ocm: sram@fffc0000 { + compatible = "mmio-sram"; + reg = <0xfffc0000 0x10000>; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0xfffc0000 0x10000>; + ocm-sram@0 { + reg = <0x0 0x10000>; + }; + }; + uart0: serial@e0000000 { compatible = "xlnx,xuartps", "cdns,uart-r1p8"; status = "disabled"; diff --git a/arch/arm/boot/dts/xilinx/zynq-zc702.dts b/arch/arm/boot/dts/xilinx/zynq-zc702.dts index b77d2ae82606..126c0b0ecdda 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zc702.dts +++ b/arch/arm/boot/dts/xilinx/zynq-zc702.dts @@ -63,19 +63,6 @@ usb_phy0: phy0 { }; }; -&amba { - ocm: sram@fffc0000 { - compatible = "mmio-sram"; - reg = <0xfffc0000 0x10000>; - #address-cells = <1>; - #size-cells = <1>; - ranges = <0 0xfffc0000 0x10000>; - ocm-sram@0 { - reg = <0x0 0x10000>; - }; - }; -}; - &can0 { status = "okay"; pinctrl-names = "default"; From 1a896b8fb3b1975ed3925d315eb6e73e338796b7 Mon Sep 17 00:00:00 2001 From: Michal Simek Date: Wed, 11 Dec 2024 13:41:23 +0100 Subject: [PATCH 04/14] ARM: zynq: Mark boot-phase-specific device nodes Tag boot specific device nodes which are required for booting. In our case this is sync up with U-Boot project where all these IPs are already tagged and tested. Signed-off-by: Michal Simek Link: https://lore.kernel.org/r/f25387e0123ee81f7d8246add3c6ec063f3cfa78.1733920873.git.michal.simek@amd.com --- arch/arm/boot/dts/xilinx/zynq-7000.dtsi | 4 ++++ arch/arm/boot/dts/xilinx/zynq-cc108.dts | 1 + arch/arm/boot/dts/xilinx/zynq-microzed.dts | 2 ++ arch/arm/boot/dts/xilinx/zynq-zc702.dts | 2 ++ arch/arm/boot/dts/xilinx/zynq-zc706.dts | 2 ++ arch/arm/boot/dts/xilinx/zynq-zc770-xm010.dts | 1 + arch/arm/boot/dts/xilinx/zynq-zc770-xm011.dts | 1 + arch/arm/boot/dts/xilinx/zynq-zc770-xm012.dts | 1 + arch/arm/boot/dts/xilinx/zynq-zc770-xm013.dts | 1 + arch/arm/boot/dts/xilinx/zynq-zed.dts | 2 ++ arch/arm/boot/dts/xilinx/zynq-zturn-common.dtsi | 3 +++ arch/arm/boot/dts/xilinx/zynq-zybo-z7.dts | 2 ++ arch/arm/boot/dts/xilinx/zynq-zybo.dts | 2 ++ 13 files changed, 24 insertions(+) diff --git a/arch/arm/boot/dts/xilinx/zynq-7000.dtsi b/arch/arm/boot/dts/xilinx/zynq-7000.dtsi index fe224d41320c..0dfe2ddd0b5f 100644 --- a/arch/arm/boot/dts/xilinx/zynq-7000.dtsi +++ b/arch/arm/boot/dts/xilinx/zynq-7000.dtsi @@ -93,6 +93,7 @@ replicator_in_port0: endpoint { }; amba: axi { + bootph-all; compatible = "simple-bus"; #address-cells = <1>; #size-cells = <1>; @@ -319,12 +320,14 @@ sdhci1: mmc@e0101000 { }; slcr: slcr@f8000000 { + bootph-all; #address-cells = <1>; #size-cells = <1>; compatible = "xlnx,zynq-slcr", "syscon", "simple-mfd"; reg = <0xF8000000 0x1000>; ranges; clkc: clkc@100 { + bootph-all; #clock-cells = <1>; compatible = "xlnx,ps7-clkc"; fclk-enable = <0>; @@ -409,6 +412,7 @@ ttc1: timer@f8002000 { }; scutimer: timer@f8f00600 { + bootph-all; interrupt-parent = <&intc>; interrupts = <1 13 0x301>; compatible = "arm,cortex-a9-twd-timer"; diff --git a/arch/arm/boot/dts/xilinx/zynq-cc108.dts b/arch/arm/boot/dts/xilinx/zynq-cc108.dts index b930a5953b49..5e542ded3d0c 100644 --- a/arch/arm/boot/dts/xilinx/zynq-cc108.dts +++ b/arch/arm/boot/dts/xilinx/zynq-cc108.dts @@ -58,6 +58,7 @@ &sdhci1 { }; &uart0 { + bootph-all; status = "okay"; }; diff --git a/arch/arm/boot/dts/xilinx/zynq-microzed.dts b/arch/arm/boot/dts/xilinx/zynq-microzed.dts index 6ed84fb15902..f2f560cc0c0d 100644 --- a/arch/arm/boot/dts/xilinx/zynq-microzed.dts +++ b/arch/arm/boot/dts/xilinx/zynq-microzed.dts @@ -46,10 +46,12 @@ ethernet_phy: ethernet-phy@0 { }; &sdhci0 { + bootph-all; status = "okay"; }; &uart1 { + bootph-all; status = "okay"; }; diff --git a/arch/arm/boot/dts/xilinx/zynq-zc702.dts b/arch/arm/boot/dts/xilinx/zynq-zc702.dts index 126c0b0ecdda..424e78f6c148 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zc702.dts +++ b/arch/arm/boot/dts/xilinx/zynq-zc702.dts @@ -390,12 +390,14 @@ conf-tx { }; &sdhci0 { + bootph-all; status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_sdhci0_default>; }; &uart1 { + bootph-all; status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_uart1_default>; diff --git a/arch/arm/boot/dts/xilinx/zynq-zc706.dts b/arch/arm/boot/dts/xilinx/zynq-zc706.dts index 50636906981e..199fb37257c2 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zc706.dts +++ b/arch/arm/boot/dts/xilinx/zynq-zc706.dts @@ -303,12 +303,14 @@ conf-tx { }; &sdhci0 { + bootph-all; status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_sdhci0_default>; }; &uart1 { + bootph-all; status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_uart1_default>; diff --git a/arch/arm/boot/dts/xilinx/zynq-zc770-xm010.dts b/arch/arm/boot/dts/xilinx/zynq-zc770-xm010.dts index 9bb5b3a5252f..02876f6d23a5 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zc770-xm010.dts +++ b/arch/arm/boot/dts/xilinx/zynq-zc770-xm010.dts @@ -84,6 +84,7 @@ partition@0 { }; &uart1 { + bootph-all; status = "okay"; }; diff --git a/arch/arm/boot/dts/xilinx/zynq-zc770-xm011.dts b/arch/arm/boot/dts/xilinx/zynq-zc770-xm011.dts index 56732e8f6ca1..ba040743e10d 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zc770-xm011.dts +++ b/arch/arm/boot/dts/xilinx/zynq-zc770-xm011.dts @@ -54,6 +54,7 @@ &spi0 { }; &uart1 { + bootph-all; status = "okay"; }; diff --git a/arch/arm/boot/dts/xilinx/zynq-zc770-xm012.dts b/arch/arm/boot/dts/xilinx/zynq-zc770-xm012.dts index d2359b789eb8..d6392d4ece9c 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zc770-xm012.dts +++ b/arch/arm/boot/dts/xilinx/zynq-zc770-xm012.dts @@ -60,5 +60,6 @@ &spi1 { }; &uart1 { + bootph-all; status = "okay"; }; diff --git a/arch/arm/boot/dts/xilinx/zynq-zc770-xm013.dts b/arch/arm/boot/dts/xilinx/zynq-zc770-xm013.dts index 3fd0d05588bb..f07af61eaa29 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zc770-xm013.dts +++ b/arch/arm/boot/dts/xilinx/zynq-zc770-xm013.dts @@ -72,5 +72,6 @@ eeprom: eeprom@2 { }; &uart0 { + bootph-all; status = "okay"; }; diff --git a/arch/arm/boot/dts/xilinx/zynq-zed.dts b/arch/arm/boot/dts/xilinx/zynq-zed.dts index 63effb7809c5..ff2b4e06efbb 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zed.dts +++ b/arch/arm/boot/dts/xilinx/zynq-zed.dts @@ -47,10 +47,12 @@ ethernet_phy: ethernet-phy@0 { }; &sdhci0 { + bootph-all; status = "okay"; }; &uart1 { + bootph-all; status = "okay"; }; diff --git a/arch/arm/boot/dts/xilinx/zynq-zturn-common.dtsi b/arch/arm/boot/dts/xilinx/zynq-zturn-common.dtsi index 33b02e05ce82..800e891495f5 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zturn-common.dtsi +++ b/arch/arm/boot/dts/xilinx/zynq-zturn-common.dtsi @@ -73,14 +73,17 @@ ethernet_phy: ethernet-phy@0 { }; &sdhci0 { + bootph-all; status = "okay"; }; &uart0 { + bootph-all; status = "okay"; }; &uart1 { + bootph-all; status = "okay"; }; diff --git a/arch/arm/boot/dts/xilinx/zynq-zybo-z7.dts b/arch/arm/boot/dts/xilinx/zynq-zybo-z7.dts index da76cfd65832..6983caa35b0d 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zybo-z7.dts +++ b/arch/arm/boot/dts/xilinx/zynq-zybo-z7.dts @@ -53,10 +53,12 @@ ethernet_phy: ethernet-phy@0 { }; &sdhci0 { + bootph-all; status = "okay"; }; &uart1 { + bootph-all; status = "okay"; }; diff --git a/arch/arm/boot/dts/xilinx/zynq-zybo.dts b/arch/arm/boot/dts/xilinx/zynq-zybo.dts index 4784ef115dad..f365693fe2f7 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zybo.dts +++ b/arch/arm/boot/dts/xilinx/zynq-zybo.dts @@ -48,10 +48,12 @@ ethernet_phy: ethernet-phy@0 { }; &sdhci0 { + bootph-all; status = "okay"; }; &uart1 { + bootph-all; status = "okay"; }; From a1c1ba9cc07675e3f6db08e9e4e694c8b7fa9162 Mon Sep 17 00:00:00 2001 From: Michal Simek Date: Wed, 11 Dec 2024 13:41:25 +0100 Subject: [PATCH 05/14] ARM: zynq: Wire smcc with nand/nor memories on zc770 platform Describe nor child flash node under smcc and enable it for xm012 extension card. And also describe nand flash memory for xm011 card. Signed-off-by: Michal Simek Link: https://lore.kernel.org/r/12e697975a1d026e811c2f63aa8bbbd0b9ff4f70.1733920873.git.michal.simek@amd.com --- arch/arm/boot/dts/xilinx/zynq-7000.dtsi | 7 ++++ arch/arm/boot/dts/xilinx/zynq-zc770-xm011.dts | 30 ++++++++++++++++ arch/arm/boot/dts/xilinx/zynq-zc770-xm012.dts | 34 +++++++++++++++++++ 3 files changed, 71 insertions(+) diff --git a/arch/arm/boot/dts/xilinx/zynq-7000.dtsi b/arch/arm/boot/dts/xilinx/zynq-7000.dtsi index 0dfe2ddd0b5f..82741c837e43 100644 --- a/arch/arm/boot/dts/xilinx/zynq-7000.dtsi +++ b/arch/arm/boot/dts/xilinx/zynq-7000.dtsi @@ -289,6 +289,8 @@ smcc: memory-controller@e000e000 { 0x2 0x0 0xe4000000 0x2000000>; /* SRAM/NOR CS1 region */ #address-cells = <2>; #size-cells = <1>; + interrupt-parent = <&intc>; + interrupts = <0 18 4>; nfc0: nand-controller@0,0 { compatible = "arm,pl353-nand-r2p1"; @@ -297,6 +299,11 @@ nfc0: nand-controller@0,0 { #address-cells = <1>; #size-cells = <0>; }; + nor0: flash@1,0 { + status = "disabled"; + compatible = "cfi-flash"; + reg = <1 0 0x2000000>; + }; }; sdhci0: mmc@e0100000 { diff --git a/arch/arm/boot/dts/xilinx/zynq-zc770-xm011.dts b/arch/arm/boot/dts/xilinx/zynq-zc770-xm011.dts index ba040743e10d..f9a086fe66d3 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zc770-xm011.dts +++ b/arch/arm/boot/dts/xilinx/zynq-zc770-xm011.dts @@ -47,6 +47,36 @@ eeprom: eeprom@52 { }; }; +&nfc0 { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + nand@0 { + reg = <0>; + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + partition@0 { + label = "nand-fsbl-uboot"; + reg = <0x0 0x1000000>; + }; + partition@1000000 { + label = "nand-linux"; + reg = <0x1000000 0x2000000>; + }; + partition@3000000 { + label = "nand-rootfs"; + reg = <0x3000000 0x200000>; + }; + }; + }; +}; + +&smcc { + status = "okay"; +}; + &spi0 { status = "okay"; num-cs = <4>; diff --git a/arch/arm/boot/dts/xilinx/zynq-zc770-xm012.dts b/arch/arm/boot/dts/xilinx/zynq-zc770-xm012.dts index d6392d4ece9c..24520e7d3965 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zc770-xm012.dts +++ b/arch/arm/boot/dts/xilinx/zynq-zc770-xm012.dts @@ -53,6 +53,40 @@ eeprom1: eeprom@52 { }; }; +&nor0 { + status = "okay"; + bank-width = <1>; + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + partition@0 { + label = "nor-fsbl-uboot"; + reg = <0x0 0x100000>; + }; + partition@100000 { + label = "nor-linux"; + reg = <0x100000 0x500000>; + }; + partition@600000 { + label = "nor-device-tree"; + reg = <0x600000 0x20000>; + }; + partition@620000 { + label = "nor-rootfs"; + reg = <0x620000 0x5e0000>; + }; + partition@c00000 { + label = "nor-bitstream"; + reg = <0xc00000 0x400000>; + }; + }; +}; + +&smcc { + status = "okay"; +}; + &spi1 { status = "okay"; num-cs = <4>; From 170166982142f4f5ffa392a80cb130f5a423874e Mon Sep 17 00:00:00 2001 From: Michal Simek Date: Wed, 11 Dec 2024 13:41:27 +0100 Subject: [PATCH 06/14] ARM: zynq: Define u-boot bootscrip addr via DT Define bootscript address in RAM via DT property. Adding default value to common DTSI. Platform DT description can remove this property or rewrite it. Signed-off-by: Michal Simek Link: https://lore.kernel.org/r/9252bb464c5c82fda6018ea450c6f453a5d8412c.1733920873.git.michal.simek@amd.com --- arch/arm/boot/dts/xilinx/zynq-7000.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/arm/boot/dts/xilinx/zynq-7000.dtsi b/arch/arm/boot/dts/xilinx/zynq-7000.dtsi index 82741c837e43..8a6bc3c4cadc 100644 --- a/arch/arm/boot/dts/xilinx/zynq-7000.dtsi +++ b/arch/arm/boot/dts/xilinx/zynq-7000.dtsi @@ -8,6 +8,13 @@ / { #size-cells = <1>; compatible = "xlnx,zynq-7000"; + options { + u-boot { + compatible = "u-boot,config"; + bootscr-address = /bits/ 64 <0x3000000>; + }; + }; + cpus { #address-cells = <1>; #size-cells = <0>; From 09b180054b8fe51f025a053c86be1572b1cda0ce Mon Sep 17 00:00:00 2001 From: Michal Simek Date: Wed, 11 Dec 2024 13:41:28 +0100 Subject: [PATCH 07/14] ARM: zynq: Point via nvmem0 alias to eeprom on zc702/zc706 EEPROM stores identification information about board like a board name, revision, serial number and ethernet MAC address. U-Boot is capable to read nvmemX aliases and read/display provided information when nvmem alias link is described. Signed-off-by: Michal Simek Link: https://lore.kernel.org/r/c4a28874455a8747638551cf09ba31aa803b8b09.1733920873.git.michal.simek@amd.com --- arch/arm/boot/dts/xilinx/zynq-zc702.dts | 3 ++- arch/arm/boot/dts/xilinx/zynq-zc706.dts | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/xilinx/zynq-zc702.dts b/arch/arm/boot/dts/xilinx/zynq-zc702.dts index 424e78f6c148..78645455c0a7 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zc702.dts +++ b/arch/arm/boot/dts/xilinx/zynq-zc702.dts @@ -16,6 +16,7 @@ aliases { i2c0 = &i2c0; serial0 = &uart1; mmc0 = &sdhci0; + nvmem0 = &eeprom; }; memory@0 { @@ -138,7 +139,7 @@ i2c@2 { #address-cells = <1>; #size-cells = <0>; reg = <2>; - eeprom@54 { + eeprom: eeprom@54 { compatible = "atmel,24c08"; reg = <0x54>; }; diff --git a/arch/arm/boot/dts/xilinx/zynq-zc706.dts b/arch/arm/boot/dts/xilinx/zynq-zc706.dts index 199fb37257c2..1ebf8e422c3c 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zc706.dts +++ b/arch/arm/boot/dts/xilinx/zynq-zc706.dts @@ -15,6 +15,7 @@ aliases { i2c0 = &i2c0; serial0 = &uart1; mmc0 = &sdhci0; + nvmem0 = &eeprom; }; memory@0 { @@ -99,7 +100,7 @@ i2c@2 { #address-cells = <1>; #size-cells = <0>; reg = <2>; - eeprom@54 { + eeprom: eeprom@54 { compatible = "atmel,24c08"; reg = <0x54>; }; From 44d9b5adcf798ff7572cef5479341967c9128297 Mon Sep 17 00:00:00 2001 From: Michal Simek Date: Wed, 11 Dec 2024 13:41:29 +0100 Subject: [PATCH 08/14] ARM: zynq: Define rtc alias on zc702/zc706 Define rtc alias on zc702/zc706 boards. Signed-off-by: Michal Simek Link: https://lore.kernel.org/r/9ee86a22d15fb127b8b31cf1ab6059ffb05ad55b.1733920873.git.michal.simek@amd.com --- arch/arm/boot/dts/xilinx/zynq-zc702.dts | 3 ++- arch/arm/boot/dts/xilinx/zynq-zc706.dts | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/xilinx/zynq-zc702.dts b/arch/arm/boot/dts/xilinx/zynq-zc702.dts index 78645455c0a7..047b16ca7c49 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zc702.dts +++ b/arch/arm/boot/dts/xilinx/zynq-zc702.dts @@ -17,6 +17,7 @@ aliases { serial0 = &uart1; mmc0 = &sdhci0; nvmem0 = &eeprom; + rtc0 = &rtc; }; memory@0 { @@ -161,7 +162,7 @@ i2c@4 { #address-cells = <1>; #size-cells = <0>; reg = <4>; - rtc@51 { + rtc: rtc@51 { compatible = "nxp,pcf8563"; reg = <0x51>; }; diff --git a/arch/arm/boot/dts/xilinx/zynq-zc706.dts b/arch/arm/boot/dts/xilinx/zynq-zc706.dts index 1ebf8e422c3c..1e38c5caec22 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zc706.dts +++ b/arch/arm/boot/dts/xilinx/zynq-zc706.dts @@ -16,6 +16,7 @@ aliases { serial0 = &uart1; mmc0 = &sdhci0; nvmem0 = &eeprom; + rtc0 = &rtc; }; memory@0 { @@ -122,7 +123,7 @@ i2c@4 { #address-cells = <1>; #size-cells = <0>; reg = <4>; - rtc@51 { + rtc: rtc@51 { compatible = "nxp,pcf8563"; reg = <0x51>; }; From 486691dde6cf07d84969f9f51d250135e4ec92a5 Mon Sep 17 00:00:00 2001 From: Michal Simek Date: Wed, 11 Dec 2024 13:41:30 +0100 Subject: [PATCH 09/14] ARM: zynq: Rename i2c?-gpio to i2c?-gpio-grp Anything ending with gpio/gpios is taken as gpio phande/description which is reported as the issue coming from gpio-consumer.yaml schema. That's why rename the gpio suffix to gpio-grp to avoid name collision. Signed-off-by: Michal Simek Link: https://lore.kernel.org/r/43b2f451bfd2ebce70f3ac6442586838d3e21951.1733920873.git.michal.simek@amd.com --- arch/arm/boot/dts/xilinx/zynq-zc702.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/xilinx/zynq-zc702.dts b/arch/arm/boot/dts/xilinx/zynq-zc702.dts index 047b16ca7c49..b18812353875 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zc702.dts +++ b/arch/arm/boot/dts/xilinx/zynq-zc702.dts @@ -290,7 +290,7 @@ conf { }; }; - pinctrl_i2c0_gpio: i2c0-gpio { + pinctrl_i2c0_gpio: i2c0-gpio-grp { mux { groups = "gpio0_50_grp", "gpio0_51_grp"; function = "gpio0"; From edb2e908dda4b8f9141c5db350f6130240731bf0 Mon Sep 17 00:00:00 2001 From: Michal Simek Date: Wed, 11 Dec 2024 13:41:31 +0100 Subject: [PATCH 10/14] ARM: zynq: Fix fpga region DT nodes name fpga-full is not aligned with the latest dt-schema. Generic name fpga-region should be used. Signed-off-by: Michal Simek Link: https://lore.kernel.org/r/0fcce9f0fa4fc2e170a7c5374d0b4063fa0bbd71.1733920873.git.michal.simek@amd.com --- arch/arm/boot/dts/xilinx/zynq-7000.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/xilinx/zynq-7000.dtsi b/arch/arm/boot/dts/xilinx/zynq-7000.dtsi index 8a6bc3c4cadc..4a29216a6d64 100644 --- a/arch/arm/boot/dts/xilinx/zynq-7000.dtsi +++ b/arch/arm/boot/dts/xilinx/zynq-7000.dtsi @@ -41,7 +41,7 @@ cpu1: cpu@1 { }; }; - fpga_full: fpga-full { + fpga_full: fpga-region { compatible = "fpga-region"; fpga-mgr = <&devcfg>; #address-cells = <1>; From dd6c921af2d3e2de1c49488432504d7f4f783bea Mon Sep 17 00:00:00 2001 From: Michal Simek Date: Wed, 11 Dec 2024 13:41:32 +0100 Subject: [PATCH 11/14] ARM: zynq: Enable QSPIs on platforms Enable QSPIs with default MTD layout used for testing. Zybos, Microzed and Zturn are only enabling controller without specifying MTD map. Signed-off-by: Michal Simek Link: https://lore.kernel.org/r/b10d922fec7fde0948205b266bf7e960113859c5.1733920873.git.michal.simek@amd.com --- arch/arm/boot/dts/xilinx/zynq-cc108.dts | 39 ++++++++++++++++++ arch/arm/boot/dts/xilinx/zynq-microzed.dts | 6 +++ arch/arm/boot/dts/xilinx/zynq-zc702.dts | 39 ++++++++++++++++++ arch/arm/boot/dts/xilinx/zynq-zc706.dts | 40 +++++++++++++++++++ arch/arm/boot/dts/xilinx/zynq-zc770-xm010.dts | 37 +++++++++++++++++ arch/arm/boot/dts/xilinx/zynq-zc770-xm013.dts | 39 ++++++++++++++++++ arch/arm/boot/dts/xilinx/zynq-zed.dts | 40 +++++++++++++++++++ .../boot/dts/xilinx/zynq-zturn-common.dtsi | 5 +++ arch/arm/boot/dts/xilinx/zynq-zybo-z7.dts | 6 +++ arch/arm/boot/dts/xilinx/zynq-zybo.dts | 6 +++ 10 files changed, 257 insertions(+) diff --git a/arch/arm/boot/dts/xilinx/zynq-cc108.dts b/arch/arm/boot/dts/xilinx/zynq-cc108.dts index 5e542ded3d0c..f5525c048426 100644 --- a/arch/arm/boot/dts/xilinx/zynq-cc108.dts +++ b/arch/arm/boot/dts/xilinx/zynq-cc108.dts @@ -18,6 +18,7 @@ / { aliases { ethernet0 = &gem0; serial0 = &uart0; + spi0 = &qspi; }; chosen { @@ -51,6 +52,44 @@ ethernet_phy: ethernet-phy@1 { }; }; +&qspi { + status = "okay"; + num-cs = <1>; + flash@0 { /* 16 MB */ + compatible = "jedec,spi-nor"; + reg = <0x0>; + spi-max-frequency = <50000000>; + spi-tx-bus-width = <1>; + spi-rx-bus-width = <4>; + #address-cells = <1>; + #size-cells = <1>; + partition@0 { + label = "qspi-fsbl-uboot-bs"; + reg = <0x0 0x400000>; /* 4MB */ + }; + partition@400000 { + label = "qspi-linux"; + reg = <0x400000 0x400000>; /* 4MB */ + }; + partition@800000 { + label = "qspi-rootfs"; + reg = <0x800000 0x400000>; /* 4MB */ + }; + partition@c00000 { + label = "qspi-devicetree"; + reg = <0xc00000 0x100000>; /* 1MB */ + }; + partition@d00000 { + label = "qspi-scratch"; + reg = <0xd00000 0x200000>; /* 2MB */ + }; + partition@f00000 { + label = "qspi-uboot-env"; + reg = <0xf00000 0x100000>; /* 1MB */ + }; + }; +}; + &sdhci1 { status = "okay"; broken-cd ; diff --git a/arch/arm/boot/dts/xilinx/zynq-microzed.dts b/arch/arm/boot/dts/xilinx/zynq-microzed.dts index f2f560cc0c0d..4c3e56980c98 100644 --- a/arch/arm/boot/dts/xilinx/zynq-microzed.dts +++ b/arch/arm/boot/dts/xilinx/zynq-microzed.dts @@ -13,6 +13,7 @@ / { aliases { ethernet0 = &gem0; serial0 = &uart1; + spi0 = &qspi; }; memory@0 { @@ -35,6 +36,11 @@ &clkc { ps-clk-frequency = <33333333>; }; +&qspi { + bootph-all; + status = "okay"; +}; + &gem0 { status = "okay"; phy-mode = "rgmii-id"; diff --git a/arch/arm/boot/dts/xilinx/zynq-zc702.dts b/arch/arm/boot/dts/xilinx/zynq-zc702.dts index b18812353875..6955637c5b1a 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zc702.dts +++ b/arch/arm/boot/dts/xilinx/zynq-zc702.dts @@ -15,6 +15,7 @@ aliases { ethernet0 = &gem0; i2c0 = &i2c0; serial0 = &uart1; + spi0 = &qspi; mmc0 = &sdhci0; nvmem0 = &eeprom; rtc0 = &rtc; @@ -391,6 +392,44 @@ conf-tx { }; }; +&qspi { + bootph-all; + status = "okay"; + num-cs = <1>; + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0x0>; + spi-tx-bus-width = <1>; + spi-rx-bus-width = <4>; + spi-max-frequency = <50000000>; + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + partition@0 { + label = "qspi-fsbl-uboot"; + reg = <0x0 0x100000>; + }; + partition@100000 { + label = "qspi-linux"; + reg = <0x100000 0x500000>; + }; + partition@600000 { + label = "qspi-device-tree"; + reg = <0x600000 0x20000>; + }; + partition@620000 { + label = "qspi-rootfs"; + reg = <0x620000 0x5e0000>; + }; + partition@c00000 { + label = "qspi-bitstream"; + reg = <0xc00000 0x400000>; + }; + }; + }; +}; + &sdhci0 { bootph-all; status = "okay"; diff --git a/arch/arm/boot/dts/xilinx/zynq-zc706.dts b/arch/arm/boot/dts/xilinx/zynq-zc706.dts index 1e38c5caec22..3b803c698473 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zc706.dts +++ b/arch/arm/boot/dts/xilinx/zynq-zc706.dts @@ -14,6 +14,7 @@ aliases { ethernet0 = &gem0; i2c0 = &i2c0; serial0 = &uart1; + spi0 = &qspi; mmc0 = &sdhci0; nvmem0 = &eeprom; rtc0 = &rtc; @@ -304,6 +305,45 @@ conf-tx { }; }; +&qspi { + bootph-all; + status = "okay"; + num-cs = <2>; + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0>, <1>; + parallel-memories = /bits/ 64 <0x1000000 0x1000000>; /* 16MB */ + spi-tx-bus-width = <1>; + spi-rx-bus-width = <4>; + spi-max-frequency = <50000000>; + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + partition@0 { + label = "qspi-fsbl-uboot"; + reg = <0x0 0x100000>; + }; + partition@100000 { + label = "qspi-linux"; + reg = <0x100000 0x500000>; + }; + partition@600000 { + label = "qspi-device-tree"; + reg = <0x600000 0x20000>; + }; + partition@620000 { + label = "qspi-rootfs"; + reg = <0x620000 0x5e0000>; + }; + partition@c00000 { + label = "qspi-bitstream"; + reg = <0xc00000 0x400000>; + }; + }; + }; +}; + &sdhci0 { bootph-all; status = "okay"; diff --git a/arch/arm/boot/dts/xilinx/zynq-zc770-xm010.dts b/arch/arm/boot/dts/xilinx/zynq-zc770-xm010.dts index 02876f6d23a5..5fe799c3c7cf 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zc770-xm010.dts +++ b/arch/arm/boot/dts/xilinx/zynq-zc770-xm010.dts @@ -15,6 +15,7 @@ aliases { ethernet0 = &gem0; i2c0 = &i2c0; serial0 = &uart1; + spi0 = &qspi; spi1 = &spi1; }; @@ -56,7 +57,43 @@ eeprom: eeprom@52 { compatible = "atmel,24c02"; reg = <0x52>; }; +}; +&qspi { + status = "okay"; + num-cs = <1>; + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0x0>; + spi-tx-bus-width = <1>; + spi-rx-bus-width = <4>; + spi-max-frequency = <50000000>; + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + partition@0 { + label = "qspi-fsbl-uboot"; + reg = <0x0 0x100000>; + }; + partition@100000 { + label = "qspi-linux"; + reg = <0x100000 0x500000>; + }; + partition@600000 { + label = "qspi-device-tree"; + reg = <0x600000 0x20000>; + }; + partition@620000 { + label = "qspi-rootfs"; + reg = <0x620000 0x5e0000>; + }; + partition@c00000 { + label = "qspi-bitstream"; + reg = <0xc00000 0x400000>; + }; + }; + }; }; &sdhci0 { diff --git a/arch/arm/boot/dts/xilinx/zynq-zc770-xm013.dts b/arch/arm/boot/dts/xilinx/zynq-zc770-xm013.dts index f07af61eaa29..103e87ea7253 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zc770-xm013.dts +++ b/arch/arm/boot/dts/xilinx/zynq-zc770-xm013.dts @@ -15,6 +15,7 @@ aliases { ethernet0 = &gem1; i2c0 = &i2c1; serial0 = &uart0; + spi0 = &qspi; spi1 = &spi0; }; @@ -57,6 +58,44 @@ si570: clock-generator@55 { }; }; +&qspi { + status = "okay"; + num-cs = <2>; + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0>, <1>; + parallel-memories = /bits/ 64 <0x1000000 0x1000000>; /* 16MB */ + spi-tx-bus-width = <1>; + spi-rx-bus-width = <4>; + spi-max-frequency = <50000000>; + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + partition@0 { + label = "qspi-fsbl-uboot"; + reg = <0x0 0x100000>; + }; + partition@100000 { + label = "qspi-linux"; + reg = <0x100000 0x500000>; + }; + partition@600000 { + label = "qspi-device-tree"; + reg = <0x600000 0x20000>; + }; + partition@620000 { + label = "qspi-rootfs"; + reg = <0x620000 0x5e0000>; + }; + partition@c00000 { + label = "qspi-bitstream"; + reg = <0xc00000 0x400000>; + }; + }; + }; +}; + &spi0 { status = "okay"; num-cs = <4>; diff --git a/arch/arm/boot/dts/xilinx/zynq-zed.dts b/arch/arm/boot/dts/xilinx/zynq-zed.dts index ff2b4e06efbb..52ba569b2b9f 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zed.dts +++ b/arch/arm/boot/dts/xilinx/zynq-zed.dts @@ -13,6 +13,7 @@ / { aliases { ethernet0 = &gem0; serial0 = &uart1; + spi0 = &qspi; mmc0 = &sdhci0; }; @@ -46,6 +47,45 @@ ethernet_phy: ethernet-phy@0 { }; }; +&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 = "qspi-fsbl-uboot"; + reg = <0x0 0x100000>; + }; + partition@100000 { + label = "qspi-linux"; + reg = <0x100000 0x500000>; + }; + partition@600000 { + label = "qspi-device-tree"; + reg = <0x600000 0x20000>; + }; + partition@620000 { + label = "qspi-rootfs"; + reg = <0x620000 0x5e0000>; + }; + partition@c00000 { + label = "qspi-bitstream"; + reg = <0xc00000 0x400000>; + }; + }; + }; +}; + &sdhci0 { bootph-all; status = "okay"; diff --git a/arch/arm/boot/dts/xilinx/zynq-zturn-common.dtsi b/arch/arm/boot/dts/xilinx/zynq-zturn-common.dtsi index 800e891495f5..defef9c8da13 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zturn-common.dtsi +++ b/arch/arm/boot/dts/xilinx/zynq-zturn-common.dtsi @@ -63,6 +63,11 @@ &clkc { ps-clk-frequency = <33333333>; }; +&qspi { + bootph-all; + status = "okay"; +}; + &gem0 { status = "okay"; phy-mode = "rgmii-id"; diff --git a/arch/arm/boot/dts/xilinx/zynq-zybo-z7.dts b/arch/arm/boot/dts/xilinx/zynq-zybo-z7.dts index 6983caa35b0d..5e4247da2285 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zybo-z7.dts +++ b/arch/arm/boot/dts/xilinx/zynq-zybo-z7.dts @@ -10,6 +10,7 @@ / { aliases { ethernet0 = &gem0; serial0 = &uart1; + spi0 = &qspi; }; memory@0 { @@ -52,6 +53,11 @@ ethernet_phy: ethernet-phy@0 { }; }; +&qspi { + bootph-all; + status = "okay"; +}; + &sdhci0 { bootph-all; status = "okay"; diff --git a/arch/arm/boot/dts/xilinx/zynq-zybo.dts b/arch/arm/boot/dts/xilinx/zynq-zybo.dts index f365693fe2f7..fbc7d1b12e94 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zybo.dts +++ b/arch/arm/boot/dts/xilinx/zynq-zybo.dts @@ -13,6 +13,7 @@ / { aliases { ethernet0 = &gem0; serial0 = &uart1; + spi0 = &qspi; mmc0 = &sdhci0; }; @@ -47,6 +48,11 @@ ethernet_phy: ethernet-phy@0 { }; }; +&qspi { + bootph-all; + status = "okay"; +}; + &sdhci0 { bootph-all; status = "okay"; From 2d20bcbe6cd754e7e9d819a73ffd08cfe913d08e Mon Sep 17 00:00:00 2001 From: Michal Simek Date: Wed, 11 Dec 2024 13:41:33 +0100 Subject: [PATCH 12/14] ARM: zynq: Add sdhci to alias node Ensure that controller will all the time use the same ID. Signed-off-by: Michal Simek Link: https://lore.kernel.org/r/9fa60b57e038d51ae6677fac6628ecd663ddd2cd.1733920873.git.michal.simek@amd.com --- arch/arm/boot/dts/xilinx/zynq-microzed.dts | 1 + arch/arm/boot/dts/xilinx/zynq-zybo-z7.dts | 1 + 2 files changed, 2 insertions(+) diff --git a/arch/arm/boot/dts/xilinx/zynq-microzed.dts b/arch/arm/boot/dts/xilinx/zynq-microzed.dts index 4c3e56980c98..20c04862679d 100644 --- a/arch/arm/boot/dts/xilinx/zynq-microzed.dts +++ b/arch/arm/boot/dts/xilinx/zynq-microzed.dts @@ -14,6 +14,7 @@ aliases { ethernet0 = &gem0; serial0 = &uart1; spi0 = &qspi; + mmc0 = &sdhci0; }; memory@0 { diff --git a/arch/arm/boot/dts/xilinx/zynq-zybo-z7.dts b/arch/arm/boot/dts/xilinx/zynq-zybo-z7.dts index 5e4247da2285..56b917eec783 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zybo-z7.dts +++ b/arch/arm/boot/dts/xilinx/zynq-zybo-z7.dts @@ -11,6 +11,7 @@ aliases { ethernet0 = &gem0; serial0 = &uart1; spi0 = &qspi; + mmc0 = &sdhci0; }; memory@0 { From e95da6b212e94c361f94f14735a8948083e3097b Mon Sep 17 00:00:00 2001 From: Michal Simek Date: Wed, 11 Dec 2024 13:41:34 +0100 Subject: [PATCH 13/14] ARM: zynq: Remove ethernet0 alias from Microzed Ethernet is not using alias for ID assignment that's why alias is not needed and can be removed. Signed-off-by: Michal Simek Link: https://lore.kernel.org/r/f4189063a8923ad380675f8e426e739ee3110baa.1733920873.git.michal.simek@amd.com --- arch/arm/boot/dts/xilinx/zynq-microzed.dts | 1 - 1 file changed, 1 deletion(-) diff --git a/arch/arm/boot/dts/xilinx/zynq-microzed.dts b/arch/arm/boot/dts/xilinx/zynq-microzed.dts index 20c04862679d..68b867e8369e 100644 --- a/arch/arm/boot/dts/xilinx/zynq-microzed.dts +++ b/arch/arm/boot/dts/xilinx/zynq-microzed.dts @@ -11,7 +11,6 @@ / { compatible = "avnet,zynq-microzed", "xlnx,zynq-microzed", "xlnx,zynq-7000"; aliases { - ethernet0 = &gem0; serial0 = &uart1; spi0 = &qspi; mmc0 = &sdhci0; From 6fd90200aae269daa2f0e86be7bf50246837f9f4 Mon Sep 17 00:00:00 2001 From: Michal Simek Date: Tue, 7 Jan 2025 08:01:33 +0100 Subject: [PATCH 14/14] ARM: zynq: Do not define address/size-cells for nand-controller There is no reason to define address/size-cells without defining child nodes in zynq-7000.dtsi. Define it in board file instead. Signed-off-by: Michal Simek Link: https://lore.kernel.org/r/7a3b9eb256b90ea19d35f8bbe3fd311890767974.1736233292.git.michal.simek@amd.com --- arch/arm/boot/dts/xilinx/zynq-7000.dtsi | 2 -- arch/arm/boot/dts/xilinx/zynq-ebaz4205.dts | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/xilinx/zynq-7000.dtsi b/arch/arm/boot/dts/xilinx/zynq-7000.dtsi index 4a29216a6d64..153b8d93cbee 100644 --- a/arch/arm/boot/dts/xilinx/zynq-7000.dtsi +++ b/arch/arm/boot/dts/xilinx/zynq-7000.dtsi @@ -303,8 +303,6 @@ nfc0: nand-controller@0,0 { compatible = "arm,pl353-nand-r2p1"; reg = <0 0 0x1000000>; status = "disabled"; - #address-cells = <1>; - #size-cells = <0>; }; nor0: flash@1,0 { status = "disabled"; diff --git a/arch/arm/boot/dts/xilinx/zynq-ebaz4205.dts b/arch/arm/boot/dts/xilinx/zynq-ebaz4205.dts index 53fa6dbfd8fd..14f644156a6f 100644 --- a/arch/arm/boot/dts/xilinx/zynq-ebaz4205.dts +++ b/arch/arm/boot/dts/xilinx/zynq-ebaz4205.dts @@ -51,6 +51,8 @@ &gpio0 { &nfc0 { status = "okay"; + #address-cells = <1>; + #size-cells = <0>; nand@0 { reg = <0>; };