2023-05-02 13:40:11

by Michal Simek

[permalink] [raw]
Subject: [PATCH 00/23] arm64: zynqmp: Misc zynqmp changes

Hi,

the series is syncing the latest dt changes based on board status and the
latest DT schema.
The patches are based on
https://lore.kernel.org/all/[email protected]/

Thanks,
Michal


Amit Kumar Mahapatra (2):
arm64: zynqmp: Set qspi tx-buswidth to 4
arm64: zynqmp: Add mtd partition for secure OS storage area

Ashok Reddy Soma (1):
arm64: zynqmp: Fix usb node drive strength and slew rate

Michal Simek (15):
arm64: zynqmp: Describe TI phy as ethernet-phy-id
arm64: zynqmp: Fix usb reset over bootmode pins on zcu100
arm64: zynqmp: Sync node name address with reg (mailbox)
arm64: zynqmp: Add dmas, dp, rtc, watchdogs and opp nodes for SOM
arm64: zynqmp: Use assigned-clock-rates for setting up SD clock in SOM
arm64: zynqmp: Used fixed-partitions for QSPI in k26
arm64: zynqmp: Add gpio labels for modepin gpio
arm64: zynqmp: Add pinctrl emmc description to SM-K26
arm64: zynqmp: Switch to ethernet-phy-id in kv260
arm64: zynqmp: Setup clock for DP and DPDMA
arm64: zynqmp: Enable DP driver for SOMs
arm64: zynqmp: Rename ams_ps/pl node names
arm64: zynqmp: Enable AMS on SOM and other zcu10x boards
arm64: zynqmp: Describe bus-width for SD card on KV260
arm64: zynqmp: Add phase tags marking

Piyush Mehta (1):
arm64: zynqmp: Disable USB3.0 for zc1751-xm016-dc2

Radhey Shyam Pandey (2):
arm64: zynqmp: Add L2 cache nodes
arm64: zynqmp: Add pmu interrupt-affinity

Sai Krishna Potthuri (1):
arm64: zynqmp: Add resets property to sdhci nodes

Srinivas Neeli (1):
arm64: zynqmp: Add linux,code for gpio button

.../arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi | 15 +-
.../boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso | 20 +-
.../boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso | 20 +-
.../boot/dts/xilinx/zynqmp-sm-k26-revA.dts | 321 +++++++++++++-----
.../boot/dts/xilinx/zynqmp-zc1232-revA.dts | 2 +-
.../boot/dts/xilinx/zynqmp-zc1254-revA.dts | 2 +-
.../boot/dts/xilinx/zynqmp-zc1275-revA.dts | 2 +-
.../dts/xilinx/zynqmp-zc1751-xm015-dc1.dts | 10 +-
.../dts/xilinx/zynqmp-zc1751-xm016-dc2.dts | 10 +-
.../dts/xilinx/zynqmp-zc1751-xm018-dc4.dts | 2 +-
.../boot/dts/xilinx/zynqmp-zcu100-revC.dts | 32 +-
.../boot/dts/xilinx/zynqmp-zcu102-revA.dts | 42 ++-
.../boot/dts/xilinx/zynqmp-zcu102-revB.dts | 25 +-
.../boot/dts/xilinx/zynqmp-zcu104-revA.dts | 42 ++-
.../boot/dts/xilinx/zynqmp-zcu104-revC.dts | 42 ++-
.../boot/dts/xilinx/zynqmp-zcu106-revA.dts | 29 +-
.../boot/dts/xilinx/zynqmp-zcu111-revA.dts | 29 +-
arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 33 +-
18 files changed, 513 insertions(+), 165 deletions(-)

--
2.36.1


2023-05-02 13:40:14

by Michal Simek

[permalink] [raw]
Subject: [PATCH 12/23] arm64: zynqmp: Add mtd partition for secure OS storage area

From: Amit Kumar Mahapatra <[email protected]>

Update MTD partitions of Kria device trees to allocate 128KB of QSPI
memory for secure OS. Increased "SHA256" partition size & changed
starting address of "User" partition to accommodate the new partition
"Secure OS Storage"

Signed-off-by: Amit Kumar Mahapatra <[email protected]>
Signed-off-by: Michal Simek <[email protected]>
---

arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts b/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
index d3c6a9feb114..5fbc2fbd2638 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
@@ -83,7 +83,7 @@ &uart1 { /* MIO36/MIO37 */

&qspi { /* MIO 0-5 - U143 */
status = "okay";
- flash@0 { /* MT25QU512A */
+ spi_flash: flash@0 { /* MT25QU512A */
compatible = "mt25qu512a", "jedec,spi-nor"; /* 64MB */
#address-cells = <1>;
#size-cells = <1>;
@@ -161,13 +161,17 @@ partition@2220000 {
};
partition@2240000 {
label = "SHA256";
- reg = <0x2240000 0x10000>; /* 256B but 64KB sector */
+ reg = <0x2240000 0x40000>; /* 256B but 256KB sector */
read-only;
lock;
};
- partition@2250000 {
+ partition@2280000 {
+ label = "Secure OS Storage";
+ reg = <0x2280000 0x20000>; /* 128KB */
+ };
+ partition@22A0000 {
label = "User";
- reg = <0x2250000 0x1db0000>; /* 29.5 MB */
+ reg = <0x22A0000 0x1d60000>; /* 29.375 MB */
};
};
};
--
2.36.1

2023-05-02 13:40:16

by Michal Simek

[permalink] [raw]
Subject: [PATCH 13/23] arm64: zynqmp: Used fixed-partitions for QSPI in k26

Using fixed partitions is recommended way how to describe QSPI. Also add
label for qspi flash memory to be able to reference it in future.

Signed-off-by: Michal Simek <[email protected]>
---

.../boot/dts/xilinx/zynqmp-sm-k26-revA.dts | 169 +++++++++---------
1 file changed, 88 insertions(+), 81 deletions(-)

diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts b/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
index 5fbc2fbd2638..cb3e5c06fdc5 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
@@ -91,87 +91,94 @@ spi_flash: flash@0 { /* MT25QU512A */
spi-tx-bus-width = <4>;
spi-rx-bus-width = <4>;
spi-max-frequency = <40000000>; /* 40MHz */
- partition@0 {
- label = "Image Selector";
- reg = <0x0 0x80000>; /* 512KB */
- read-only;
- lock;
- };
- partition@80000 {
- label = "Image Selector Golden";
- reg = <0x80000 0x80000>; /* 512KB */
- read-only;
- lock;
- };
- partition@100000 {
- label = "Persistent Register";
- reg = <0x100000 0x20000>; /* 128KB */
- };
- partition@120000 {
- label = "Persistent Register Backup";
- reg = <0x120000 0x20000>; /* 128KB */
- };
- partition@140000 {
- label = "Open_1";
- reg = <0x140000 0xC0000>; /* 768KB */
- };
- partition@200000 {
- label = "Image A (FSBL, PMU, ATF, U-Boot)";
- reg = <0x200000 0xD00000>; /* 13MB */
- };
- partition@f00000 {
- label = "ImgSel Image A Catch";
- reg = <0xF00000 0x80000>; /* 512KB */
- read-only;
- lock;
- };
- partition@f80000 {
- label = "Image B (FSBL, PMU, ATF, U-Boot)";
- reg = <0xF80000 0xD00000>; /* 13MB */
- };
- partition@1c80000 {
- label = "ImgSel Image B Catch";
- reg = <0x1C80000 0x80000>; /* 512KB */
- read-only;
- lock;
- };
- partition@1d00000 {
- label = "Open_2";
- reg = <0x1D00000 0x100000>; /* 1MB */
- };
- partition@1e00000 {
- label = "Recovery Image";
- reg = <0x1E00000 0x200000>; /* 2MB */
- read-only;
- lock;
- };
- partition@2000000 {
- label = "Recovery Image Backup";
- reg = <0x2000000 0x200000>; /* 2MB */
- read-only;
- lock;
- };
- partition@2200000 {
- label = "U-Boot storage variables";
- reg = <0x2200000 0x20000>; /* 128KB */
- };
- partition@2220000 {
- label = "U-Boot storage variables backup";
- reg = <0x2220000 0x20000>; /* 128KB */
- };
- partition@2240000 {
- label = "SHA256";
- reg = <0x2240000 0x40000>; /* 256B but 256KB sector */
- read-only;
- lock;
- };
- partition@2280000 {
- label = "Secure OS Storage";
- reg = <0x2280000 0x20000>; /* 128KB */
- };
- partition@22A0000 {
- label = "User";
- reg = <0x22A0000 0x1d60000>; /* 29.375 MB */
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "Image Selector";
+ reg = <0x0 0x80000>; /* 512KB */
+ read-only;
+ lock;
+ };
+ partition@80000 {
+ label = "Image Selector Golden";
+ reg = <0x80000 0x80000>; /* 512KB */
+ read-only;
+ lock;
+ };
+ partition@100000 {
+ label = "Persistent Register";
+ reg = <0x100000 0x20000>; /* 128KB */
+ };
+ partition@120000 {
+ label = "Persistent Register Backup";
+ reg = <0x120000 0x20000>; /* 128KB */
+ };
+ partition@140000 {
+ label = "Open_1";
+ reg = <0x140000 0xC0000>; /* 768KB */
+ };
+ partition@200000 {
+ label = "Image A (FSBL, PMU, ATF, U-Boot)";
+ reg = <0x200000 0xD00000>; /* 13MB */
+ };
+ partition@f00000 {
+ label = "ImgSel Image A Catch";
+ reg = <0xF00000 0x80000>; /* 512KB */
+ read-only;
+ lock;
+ };
+ partition@f80000 {
+ label = "Image B (FSBL, PMU, ATF, U-Boot)";
+ reg = <0xF80000 0xD00000>; /* 13MB */
+ };
+ partition@1c80000 {
+ label = "ImgSel Image B Catch";
+ reg = <0x1C80000 0x80000>; /* 512KB */
+ read-only;
+ lock;
+ };
+ partition@1d00000 {
+ label = "Open_2";
+ reg = <0x1D00000 0x100000>; /* 1MB */
+ };
+ partition@1e00000 {
+ label = "Recovery Image";
+ reg = <0x1E00000 0x200000>; /* 2MB */
+ read-only;
+ lock;
+ };
+ partition@2000000 {
+ label = "Recovery Image Backup";
+ reg = <0x2000000 0x200000>; /* 2MB */
+ read-only;
+ lock;
+ };
+ partition@2200000 {
+ label = "U-Boot storage variables";
+ reg = <0x2200000 0x20000>; /* 128KB */
+ };
+ partition@2220000 {
+ label = "U-Boot storage variables backup";
+ reg = <0x2220000 0x20000>; /* 128KB */
+ };
+ partition@2240000 {
+ label = "SHA256";
+ reg = <0x2240000 0x40000>; /* 256B but 256KB sector */
+ read-only;
+ lock;
+ };
+ partition@2280000 {
+ label = "Secure OS Storage";
+ reg = <0x2280000 0x20000>; /* 128KB */
+ };
+ partition@22A0000 {
+ label = "User";
+ reg = <0x22A0000 0x1d60000>; /* 29.375 MB */
+ };
};
};
};
--
2.36.1

2023-05-02 13:40:52

by Michal Simek

[permalink] [raw]
Subject: [PATCH 16/23] arm64: zynqmp: Disable USB3.0 for zc1751-xm016-dc2

From: Piyush Mehta <[email protected]>

The board zynqmp-zc1751-xm016-dc2 support only USB2.0 that's why remove
USB3.0 DT configuration.

Signed-off-by: Piyush Mehta <[email protected]>
Signed-off-by: Michal Simek <[email protected]>
---

arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm016-dc2.dts | 2 --
1 file changed, 2 deletions(-)

diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm016-dc2.dts b/arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm016-dc2.dts
index a2031187d9b3..9e7564235b69 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm016-dc2.dts
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm016-dc2.dts
@@ -489,8 +489,6 @@ &usb1 {
&dwc3_1 {
status = "okay";
dr_mode = "host";
- snps,usb3_lpm_capable;
- maximum-speed = "super-speed";
};

&uart0 {
--
2.36.1

2023-05-02 13:41:06

by Michal Simek

[permalink] [raw]
Subject: [PATCH 18/23] arm64: zynqmp: Setup clock for DP and DPDMA

Clocks are coming from shared HW design where these frequencies should be
aligned with PLL setup.

Signed-off-by: Michal Simek <[email protected]>
---

arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi | 4 ++++
arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso | 2 ++
arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso | 2 ++
3 files changed, 8 insertions(+)

diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi b/arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi
index 681885c9bcbb..581221fdadf1 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi
@@ -248,10 +248,14 @@ &xilinx_ams {

&zynqmp_dpdma {
clocks = <&zynqmp_clk DPDMA_REF>;
+ assigned-clocks = <&zynqmp_clk DPDMA_REF>; /* apll */
};

&zynqmp_dpsub {
clocks = <&zynqmp_clk TOPSW_LSBUS>,
<&zynqmp_clk DP_AUDIO_REF>,
<&zynqmp_clk DP_VIDEO_REF>;
+ assigned-clocks = <&zynqmp_clk DP_STC_REF>,
+ <&zynqmp_clk DP_AUDIO_REF>,
+ <&zynqmp_clk DP_VIDEO_REF>; /* rpll, rpll, vpll */
};
diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso
index 817d756142ab..4f18b3efcced 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso
@@ -99,10 +99,12 @@ &zynqmp_dpsub {
status = "disabled";
phy-names = "dp-phy0", "dp-phy1";
phys = <&psgtr 1 PHY_TYPE_DP 0 0>, <&psgtr 0 PHY_TYPE_DP 1 0>;
+ assigned-clock-rates = <27000000>, <25000000>, <300000000>;
};

&zynqmp_dpdma {
status = "okay";
+ assigned-clock-rates = <600000000>;
};

&usb0 {
diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso
index e07cec231ee0..77bc806b15a1 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso
@@ -80,10 +80,12 @@ &zynqmp_dpsub {
status = "disabled";
phy-names = "dp-phy0", "dp-phy1";
phys = <&psgtr 1 PHY_TYPE_DP 0 0>, <&psgtr 0 PHY_TYPE_DP 1 0>;
+ assigned-clock-rates = <27000000>, <25000000>, <300000000>;
};

&zynqmp_dpdma {
status = "okay";
+ assigned-clock-rates = <600000000>;
};

&usb0 {
--
2.36.1

2023-05-02 13:41:08

by Michal Simek

[permalink] [raw]
Subject: [PATCH 20/23] arm64: zynqmp: Rename ams_ps/pl node names

Fix child node names to be aligned with commit 39dd2d1e251d ("dt-bindings:
iio: adc: Add Xilinx AMS binding documentation") which requires names as
ams-ps@ and ams-pl@.

Signed-off-by: Michal Simek <[email protected]>
---

arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
index 7bd3e816226a..d01d4334c95f 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
+++ b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
@@ -955,13 +955,13 @@ xilinx_ams: ams@ffa50000 {
#io-channel-cells = <1>;
ranges = <0 0 0xffa50800 0x800>;

- ams_ps: ams_ps@0 {
+ ams_ps: ams-ps@0 {
compatible = "xlnx,zynqmp-ams-ps";
status = "disabled";
reg = <0x0 0x400>;
};

- ams_pl: ams_pl@400 {
+ ams_pl: ams-pl@400 {
compatible = "xlnx,zynqmp-ams-pl";
status = "disabled";
reg = <0x400 0x400>;
--
2.36.1

2023-05-02 13:41:25

by Michal Simek

[permalink] [raw]
Subject: [PATCH 15/23] arm64: zynqmp: Add pinctrl emmc description to SM-K26

Production SOM has emmc on it and make sense to describe pin description to
be able use EMMC if it is not configured via psu_init.
(Still some regs are not handled but this is one step in that direction)

Signed-off-by: Michal Simek <[email protected]>
---

.../boot/dts/xilinx/zynqmp-sm-k26-revA.dts | 20 +++++++++++++++++++
1 file changed, 20 insertions(+)

diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts b/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
index c206021cccf7..e284979fd7b1 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
@@ -14,6 +14,7 @@
#include <dt-bindings/input/input.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/phy/phy.h>
+#include <dt-bindings/pinctrl/pinctrl-zynqmp.h>

/ {
model = "ZynqMP SM-K26 Rev1/B/A";
@@ -85,6 +86,23 @@ &uart1 { /* MIO36/MIO37 */
status = "okay";
};

+&pinctrl0 {
+ status = "okay";
+ pinctrl_sdhci0_default: sdhci0-default {
+ conf {
+ groups = "sdio0_0_grp";
+ slew-rate = <SLEW_RATE_SLOW>;
+ power-source = <IO_STANDARD_LVCMOS18>;
+ bias-disable;
+ };
+
+ mux {
+ groups = "sdio0_0_grp";
+ function = "sdio0";
+ };
+ };
+};
+
&qspi { /* MIO 0-5 - U143 */
status = "okay";
spi_flash: flash@0 { /* MT25QU512A */
@@ -189,6 +207,8 @@ partition@22A0000 {

&sdhci0 { /* MIO13-23 - 16GB emmc MTFC16GAPALBH-IT - U133A */
status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_sdhci0_default>;
non-removable;
disable-wp;
bus-width = <8>;
--
2.36.1

2023-05-02 13:41:29

by Michal Simek

[permalink] [raw]
Subject: [PATCH 21/23] arm64: zynqmp: Enable AMS on SOM and other zcu10x boards

AMS is used for monitoring system. Used for measuring voltages and
especially temperatures. Origin interface is IIO but via iio-hwmon it can
be moved to hwmon framework too (done for SOM and zcu100).

Signed-off-by: Michal Simek <[email protected]>
---

.../boot/dts/xilinx/zynqmp-sm-k26-revA.dts | 26 +++++++++++++++++++
.../boot/dts/xilinx/zynqmp-zcu100-revC.dts | 17 ++++++++++++
.../boot/dts/xilinx/zynqmp-zcu102-revA.dts | 12 +++++++++
.../boot/dts/xilinx/zynqmp-zcu104-revA.dts | 12 +++++++++
.../boot/dts/xilinx/zynqmp-zcu104-revC.dts | 12 +++++++++
5 files changed, 79 insertions(+)

diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts b/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
index e284979fd7b1..78ff6a9b3144 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
@@ -76,6 +76,20 @@ ds36-led {
default-state = "on";
};
};
+
+ ams {
+ compatible = "iio-hwmon";
+ io-channels = <&xilinx_ams 0>, <&xilinx_ams 1>, <&xilinx_ams 2>,
+ <&xilinx_ams 3>, <&xilinx_ams 4>, <&xilinx_ams 5>,
+ <&xilinx_ams 6>, <&xilinx_ams 7>, <&xilinx_ams 8>,
+ <&xilinx_ams 9>, <&xilinx_ams 10>, <&xilinx_ams 11>,
+ <&xilinx_ams 12>, <&xilinx_ams 13>, <&xilinx_ams 14>,
+ <&xilinx_ams 15>, <&xilinx_ams 16>, <&xilinx_ams 17>,
+ <&xilinx_ams 18>, <&xilinx_ams 19>, <&xilinx_ams 20>,
+ <&xilinx_ams 21>, <&xilinx_ams 22>, <&xilinx_ams 23>,
+ <&xilinx_ams 24>, <&xilinx_ams 25>, <&xilinx_ams 26>,
+ <&xilinx_ams 27>, <&xilinx_ams 28>, <&xilinx_ams 29>;
+ };
};

&modepin_gpio {
@@ -327,6 +341,18 @@ &gpio {
"", "", "", ""; /* 170 - 173 */
};

+&xilinx_ams {
+ status = "okay";
+};
+
+&ams_ps {
+ status = "okay";
+};
+
+&ams_pl {
+ status = "okay";
+};
+
&zynqmp_dpsub {
status = "okay";
};
diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-zcu100-revC.dts b/arch/arm64/boot/dts/xilinx/zynqmp-zcu100-revC.dts
index c99abb99efcb..c8be41d77cb9 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-zcu100-revC.dts
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-zcu100-revC.dts
@@ -59,6 +59,15 @@ switch-4 {
};
};

+ iio-hwmon {
+ compatible = "iio-hwmon";
+ io-channels = <&xilinx_ams 0>, <&xilinx_ams 1>, <&xilinx_ams 2>,
+ <&xilinx_ams 3>, <&xilinx_ams 4>, <&xilinx_ams 5>,
+ <&xilinx_ams 6>, <&xilinx_ams 7>, <&xilinx_ams 8>,
+ <&xilinx_ams 9>, <&xilinx_ams 10>,
+ <&xilinx_ams 11>, <&xilinx_ams 12>;
+ };
+
leds {
compatible = "gpio-leds";
led-ds2 {
@@ -581,6 +590,14 @@ &watchdog0 {
status = "okay";
};

+&xilinx_ams {
+ status = "okay";
+};
+
+&ams_ps {
+ status = "okay";
+};
+
&zynqmp_dpdma {
status = "okay";
};
diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-zcu102-revA.dts b/arch/arm64/boot/dts/xilinx/zynqmp-zcu102-revA.dts
index 5b6403865541..b2e1f3581f6b 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-zcu102-revA.dts
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-zcu102-revA.dts
@@ -1027,6 +1027,18 @@ &watchdog0 {
status = "okay";
};

+&xilinx_ams {
+ status = "okay";
+};
+
+&ams_ps {
+ status = "okay";
+};
+
+&ams_pl {
+ status = "okay";
+};
+
&zynqmp_dpdma {
status = "okay";
};
diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revA.dts b/arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revA.dts
index a74a2061431a..1f30c37c2e03 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revA.dts
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revA.dts
@@ -511,6 +511,18 @@ &watchdog0 {
status = "okay";
};

+&xilinx_ams {
+ status = "okay";
+};
+
+&ams_ps {
+ status = "okay";
+};
+
+&ams_pl {
+ status = "okay";
+};
+
&zynqmp_dpdma {
status = "okay";
};
diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revC.dts b/arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revC.dts
index 73972d83ed4d..474744278b97 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revC.dts
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revC.dts
@@ -523,6 +523,18 @@ &watchdog0 {
status = "okay";
};

+&xilinx_ams {
+ status = "okay";
+};
+
+&ams_ps {
+ status = "okay";
+};
+
+&ams_pl {
+ status = "okay";
+};
+
&zynqmp_dpdma {
status = "okay";
};
--
2.36.1

2023-05-02 13:41:31

by Michal Simek

[permalink] [raw]
Subject: [PATCH 14/23] arm64: zynqmp: Add gpio labels for modepin gpio

Using label helps with better chip identification.

Signed-off-by: Michal Simek <[email protected]>
---

arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts b/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
index cb3e5c06fdc5..c206021cccf7 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
@@ -77,6 +77,10 @@ ds36-led {
};
};

+&modepin_gpio {
+ label = "modepin";
+};
+
&uart1 { /* MIO36/MIO37 */
status = "okay";
};
--
2.36.1

2023-05-02 13:41:45

by Michal Simek

[permalink] [raw]
Subject: [PATCH 22/23] arm64: zynqmp: Describe bus-width for SD card on KV260

SD card is connected with 4 data lines which should be described properly.

Signed-off-by: Michal Simek <[email protected]>
---

arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso | 1 +
arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso | 1 +
2 files changed, 2 insertions(+)

diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso
index 776444714fad..dcc51b3adab0 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso
@@ -136,6 +136,7 @@ &sdhci1 { /* on CC with tuned parameters */
disable-wp;
xlnx,mio-bank = <1>;
assigned-clock-rates = <187498123>;
+ bus-width = <4>;
};

&gem3 { /* required by spec */
diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso
index 78d082a11492..3384df3d5920 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso
@@ -119,6 +119,7 @@ &sdhci1 { /* on CC with tuned parameters */
clk-phase-uhs-sdr25 = <120>, <60>;
clk-phase-uhs-ddr50 = <126>, <48>;
assigned-clock-rates = <187498123>;
+ bus-width = <4>;
};

&gem3 { /* required by spec */
--
2.36.1

2023-05-02 13:42:14

by Michal Simek

[permalink] [raw]
Subject: [PATCH 17/23] arm64: zynqmp: Switch to ethernet-phy-id in kv260

Use ethernet-phy-id compatible string to properly describe phy reset on
kv260 boards. Previous description wasn't correct because reset was done
for mdio bus to operate and it was in this case used for different purpose
which was eth phy reset. With ethernet-phy-id phy reset happens only for
the phy via phy framework.

Signed-off-by: Michal Simek <[email protected]>
---

arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso | 6 ++++--
arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso | 6 ++++--
2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso
index cb4a5126c4ec..817d756142ab 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso
@@ -146,16 +146,18 @@ &gem3 { /* required by spec */
mdio: mdio {
#address-cells = <1>;
#size-cells = <0>;
- reset-gpios = <&gpio 38 GPIO_ACTIVE_LOW>;
- reset-delay-us = <2>;

phy0: ethernet-phy@1 {
#phy-cells = <1>;
reg = <1>;
+ compatible = "ethernet-phy-id2000.a231";
ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_75_NS>;
ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
ti,dp83867-rxctrl-strap-quirk;
+ reset-assert-us = <100>;
+ reset-deassert-us = <280>;
+ reset-gpios = <&gpio 38 GPIO_ACTIVE_LOW>;
};
};
};
diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso
index 31bc120dee49..e07cec231ee0 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso
@@ -129,16 +129,18 @@ &gem3 { /* required by spec */
mdio: mdio {
#address-cells = <1>;
#size-cells = <0>;
- reset-gpios = <&gpio 38 GPIO_ACTIVE_LOW>;
- reset-delay-us = <2>;

phy0: ethernet-phy@1 {
#phy-cells = <1>;
reg = <1>;
+ compatible = "ethernet-phy-id2000.a231";
ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_75_NS>;
ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
ti,dp83867-rxctrl-strap-quirk;
+ reset-assert-us = <100>;
+ reset-deassert-us = <280>;
+ reset-gpios = <&gpio 38 GPIO_ACTIVE_LOW>;
};
};
};
--
2.36.1

2023-05-02 13:42:31

by Michal Simek

[permalink] [raw]
Subject: [PATCH 19/23] arm64: zynqmp: Enable DP driver for SOMs

DP DMA is already enabled that's why there is no reason to keep DP
disabled.

Signed-off-by: Michal Simek <[email protected]>
---

arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso | 2 +-
arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso
index 4f18b3efcced..776444714fad 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso
@@ -96,7 +96,7 @@ &sata {
};

&zynqmp_dpsub {
- status = "disabled";
+ status = "okay";
phy-names = "dp-phy0", "dp-phy1";
phys = <&psgtr 1 PHY_TYPE_DP 0 0>, <&psgtr 0 PHY_TYPE_DP 1 0>;
assigned-clock-rates = <27000000>, <25000000>, <300000000>;
diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso
index 77bc806b15a1..78d082a11492 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso
@@ -77,7 +77,7 @@ &psgtr {
};

&zynqmp_dpsub {
- status = "disabled";
+ status = "okay";
phy-names = "dp-phy0", "dp-phy1";
phys = <&psgtr 1 PHY_TYPE_DP 0 0>, <&psgtr 0 PHY_TYPE_DP 1 0>;
assigned-clock-rates = <27000000>, <25000000>, <300000000>;
--
2.36.1

2023-05-02 13:43:15

by Michal Simek

[permalink] [raw]
Subject: [PATCH 23/23] arm64: zynqmp: Add phase tags marking

bootph-all as phase tag was added to dt-schema
(dtschema/schemas/bootph.yaml) to cover U-Boot challenges with DT.
That's why add it also to Linux to be aligned with bootloader requirement.

Signed-off-by: Michal Simek <[email protected]>
---

---
arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi | 6 ++++++
arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts | 3 +++
arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 12 ++++++++++++
3 files changed, 21 insertions(+)

diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi b/arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi
index 581221fdadf1..719ea5d5ae88 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi
@@ -11,30 +11,35 @@
#include <dt-bindings/clock/xlnx-zynqmp-clk.h>
/ {
pss_ref_clk: pss_ref_clk {
+ bootph-all;
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <33333333>;
};

video_clk: video_clk {
+ bootph-all;
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <27000000>;
};

pss_alt_ref_clk: pss_alt_ref_clk {
+ bootph-all;
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <0>;
};

gt_crx_ref_clk: gt_crx_ref_clk {
+ bootph-all;
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <108000000>;
};

aux_ref_clk: aux_ref_clk {
+ bootph-all;
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <27000000>;
@@ -43,6 +48,7 @@ aux_ref_clk: aux_ref_clk {

&zynqmp_firmware {
zynqmp_clk: clock-controller {
+ bootph-all;
#clock-cells = <1>;
compatible = "xlnx,zynqmp-clk";
clocks = <&pss_ref_clk>, <&video_clk>, <&pss_alt_ref_clk>,
diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts b/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
index 78ff6a9b3144..8afdf4408a78 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
@@ -243,17 +243,20 @@ tpm@0 { /* slm9670 - U144 */

&i2c1 {
status = "okay";
+ bootph-all;
clock-frequency = <400000>;
scl-gpios = <&gpio 24 GPIO_ACTIVE_HIGH>;
sda-gpios = <&gpio 25 GPIO_ACTIVE_HIGH>;

eeprom: eeprom@50 { /* u46 - also at address 0x58 */
+ bootph-all;
compatible = "st,24c64", "atmel,24c64"; /* st m24c64 */
reg = <0x50>;
/* WP pin EE_WP_EN connected to slg7x644092@68 */
};

eeprom_cc: eeprom@51 { /* required by spec - also at address 0x59 */
+ bootph-all;
compatible = "st,24c64", "atmel,24c64"; /* st m24c64 */
reg = <0x51>;
};
diff --git a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
index d01d4334c95f..51b8349dcacd 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
+++ b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
@@ -127,6 +127,7 @@ rproc_1_fw_image: memory@3ef00000 {
};

zynqmp_ipi: zynqmp_ipi {
+ bootph-all;
compatible = "xlnx,zynqmp-ipi-mailbox";
interrupt-parent = <&gic>;
interrupts = <0 35 4>;
@@ -136,6 +137,7 @@ zynqmp_ipi: zynqmp_ipi {
ranges;

ipi_mailbox_pmu1: mailbox@ff9905c0 {
+ bootph-all;
reg = <0x0 0xff9905c0 0x0 0x20>,
<0x0 0xff9905e0 0x0 0x20>,
<0x0 0xff990e80 0x0 0x20>,
@@ -152,6 +154,7 @@ ipi_mailbox_pmu1: mailbox@ff9905c0 {
dcc: dcc {
compatible = "arm,dcc";
status = "disabled";
+ bootph-all;
};

pmu {
@@ -177,8 +180,10 @@ zynqmp_firmware: zynqmp-firmware {
compatible = "xlnx,zynqmp-firmware";
#power-domain-cells = <1>;
method = "smc";
+ bootph-all;

zynqmp_power: zynqmp-power {
+ bootph-all;
compatible = "xlnx,zynqmp-power";
interrupt-parent = <&gic>;
interrupts = <0 35 4>;
@@ -258,6 +263,7 @@ r5f-1 {

amba: axi {
compatible = "simple-bus";
+ bootph-all;
#address-cells = <2>;
#size-cells = <2>;
ranges;
@@ -699,6 +705,7 @@ pcie_intc: legacy-interrupt-controller {
};

qspi: spi@ff0f0000 {
+ bootph-all;
compatible = "xlnx,zynqmp-qspi-1.0";
status = "disabled";
clock-names = "ref_clk", "pclk";
@@ -745,6 +752,7 @@ sata: ahci@fd0c0000 {
};

sdhci0: mmc@ff160000 {
+ bootph-all;
compatible = "xlnx,zynqmp-8.9a", "arasan,sdhci-8.9a";
status = "disabled";
interrupt-parent = <&gic>;
@@ -759,6 +767,7 @@ sdhci0: mmc@ff160000 {
};

sdhci1: mmc@ff170000 {
+ bootph-all;
compatible = "xlnx,zynqmp-8.9a", "arasan,sdhci-8.9a";
status = "disabled";
interrupt-parent = <&gic>;
@@ -851,6 +860,7 @@ ttc3: timer@ff140000 {
};

uart0: serial@ff000000 {
+ bootph-all;
compatible = "xlnx,zynqmp-uart", "cdns,uart-r1p12";
status = "disabled";
interrupt-parent = <&gic>;
@@ -861,6 +871,7 @@ uart0: serial@ff000000 {
};

uart1: serial@ff010000 {
+ bootph-all;
compatible = "xlnx,zynqmp-uart", "cdns,uart-r1p12";
status = "disabled";
interrupt-parent = <&gic>;
@@ -982,6 +993,7 @@ zynqmp_dpdma: dma-controller@fd4c0000 {
};

zynqmp_dpsub: display@fd4a0000 {
+ bootph-all;
compatible = "xlnx,zynqmp-dpsub-1.7";
status = "disabled";
reg = <0x0 0xfd4a0000 0x0 0x1000>,
--
2.36.1

2023-05-10 08:46:22

by Laurent Pinchart

[permalink] [raw]
Subject: Re: [PATCH 20/23] arm64: zynqmp: Rename ams_ps/pl node names

Hi Michal,

Thank you for the patch.

On Tue, May 02, 2023 at 03:35:48PM +0200, Michal Simek wrote:
> Fix child node names to be aligned with commit 39dd2d1e251d ("dt-bindings:
> iio: adc: Add Xilinx AMS binding documentation") which requires names as
> ams-ps@ and ams-pl@.
>
> Signed-off-by: Michal Simek <[email protected]>

Reviewed-by: Laurent Pinchart <[email protected]>

> ---
>
> arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
> index 7bd3e816226a..d01d4334c95f 100644
> --- a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
> +++ b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
> @@ -955,13 +955,13 @@ xilinx_ams: ams@ffa50000 {
> #io-channel-cells = <1>;
> ranges = <0 0 0xffa50800 0x800>;
>
> - ams_ps: ams_ps@0 {
> + ams_ps: ams-ps@0 {
> compatible = "xlnx,zynqmp-ams-ps";
> status = "disabled";
> reg = <0x0 0x400>;
> };
>
> - ams_pl: ams_pl@400 {
> + ams_pl: ams-pl@400 {
> compatible = "xlnx,zynqmp-ams-pl";
> status = "disabled";
> reg = <0x400 0x400>;

--
Regards,

Laurent Pinchart

2023-05-16 11:01:42

by Michal Simek

[permalink] [raw]
Subject: Re: [PATCH 20/23] arm64: zynqmp: Rename ams_ps/pl node names



On 5/10/23 10:32, Laurent Pinchart wrote:
> Hi Michal,
>
> Thank you for the patch.
>
> On Tue, May 02, 2023 at 03:35:48PM +0200, Michal Simek wrote:
>> Fix child node names to be aligned with commit 39dd2d1e251d ("dt-bindings:
>> iio: adc: Add Xilinx AMS binding documentation") which requires names as
>> ams-ps@ and ams-pl@.
>>
>> Signed-off-by: Michal Simek <[email protected]>
>
> Reviewed-by: Laurent Pinchart <[email protected]>

Applied.
M

2023-05-16 11:11:27

by Michal Simek

[permalink] [raw]
Subject: Re: [PATCH 14/23] arm64: zynqmp: Add gpio labels for modepin gpio



On 5/2/23 15:35, Michal Simek wrote:
> Using label helps with better chip identification.
>
> Signed-off-by: Michal Simek <[email protected]>
> ---
>
> arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts b/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
> index cb3e5c06fdc5..c206021cccf7 100644
> --- a/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
> +++ b/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
> @@ -77,6 +77,10 @@ ds36-led {
> };
> };
>
> +&modepin_gpio {
> + label = "modepin";
> +};
> +
> &uart1 { /* MIO36/MIO37 */
> status = "okay";
> };

Applied.
M

--
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: http://www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Xilinx Microblaze
Maintainer of Linux kernel - Xilinx Zynq ARM and ZynqMP/Versal ARM64 SoCs
U-Boot custodian - Xilinx Microblaze/Zynq/ZynqMP/Versal/Versal NET SoCs
TF-A maintainer - Xilinx ZynqMP/Versal/Versal NET SoCs

2023-05-16 11:17:31

by Michal Simek

[permalink] [raw]
Subject: Re: [PATCH 00/23] arm64: zynqmp: Misc zynqmp changes



On 5/2/23 15:35, Michal Simek wrote:
> Hi,
>
> the series is syncing the latest dt changes based on board status and the
> latest DT schema.
> The patches are based on
> https://lore.kernel.org/all/[email protected]/
>
> Thanks,
> Michal
>
>
> Amit Kumar Mahapatra (2):
> arm64: zynqmp: Set qspi tx-buswidth to 4
> arm64: zynqmp: Add mtd partition for secure OS storage area
>
> Ashok Reddy Soma (1):
> arm64: zynqmp: Fix usb node drive strength and slew rate
>
> Michal Simek (15):
> arm64: zynqmp: Describe TI phy as ethernet-phy-id
> arm64: zynqmp: Fix usb reset over bootmode pins on zcu100
> arm64: zynqmp: Sync node name address with reg (mailbox)
> arm64: zynqmp: Add dmas, dp, rtc, watchdogs and opp nodes for SOM
> arm64: zynqmp: Use assigned-clock-rates for setting up SD clock in SOM
> arm64: zynqmp: Used fixed-partitions for QSPI in k26
> arm64: zynqmp: Add gpio labels for modepin gpio
> arm64: zynqmp: Add pinctrl emmc description to SM-K26
> arm64: zynqmp: Switch to ethernet-phy-id in kv260
> arm64: zynqmp: Setup clock for DP and DPDMA
> arm64: zynqmp: Enable DP driver for SOMs
> arm64: zynqmp: Rename ams_ps/pl node names
> arm64: zynqmp: Enable AMS on SOM and other zcu10x boards
> arm64: zynqmp: Describe bus-width for SD card on KV260
> arm64: zynqmp: Add phase tags marking
>
> Piyush Mehta (1):
> arm64: zynqmp: Disable USB3.0 for zc1751-xm016-dc2
>
> Radhey Shyam Pandey (2):
> arm64: zynqmp: Add L2 cache nodes
> arm64: zynqmp: Add pmu interrupt-affinity
>
> Sai Krishna Potthuri (1):
> arm64: zynqmp: Add resets property to sdhci nodes
>
> Srinivas Neeli (1):
> arm64: zynqmp: Add linux,code for gpio button
>
> .../arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi | 15 +-
> .../boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso | 20 +-
> .../boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso | 20 +-
> .../boot/dts/xilinx/zynqmp-sm-k26-revA.dts | 321 +++++++++++++-----
> .../boot/dts/xilinx/zynqmp-zc1232-revA.dts | 2 +-
> .../boot/dts/xilinx/zynqmp-zc1254-revA.dts | 2 +-
> .../boot/dts/xilinx/zynqmp-zc1275-revA.dts | 2 +-
> .../dts/xilinx/zynqmp-zc1751-xm015-dc1.dts | 10 +-
> .../dts/xilinx/zynqmp-zc1751-xm016-dc2.dts | 10 +-
> .../dts/xilinx/zynqmp-zc1751-xm018-dc4.dts | 2 +-
> .../boot/dts/xilinx/zynqmp-zcu100-revC.dts | 32 +-
> .../boot/dts/xilinx/zynqmp-zcu102-revA.dts | 42 ++-
> .../boot/dts/xilinx/zynqmp-zcu102-revB.dts | 25 +-
> .../boot/dts/xilinx/zynqmp-zcu104-revA.dts | 42 ++-
> .../boot/dts/xilinx/zynqmp-zcu104-revC.dts | 42 ++-
> .../boot/dts/xilinx/zynqmp-zcu106-revA.dts | 29 +-
> .../boot/dts/xilinx/zynqmp-zcu111-revA.dts | 29 +-
> arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 33 +-
> 18 files changed, 513 insertions(+), 165 deletions(-)
>

I have applied the most of these patches. The rest will be update and sent as v2.

Thanks,
Michal

--
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: http://www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Xilinx Microblaze
Maintainer of Linux kernel - Xilinx Zynq ARM and ZynqMP/Versal ARM64 SoCs
U-Boot custodian - Xilinx Microblaze/Zynq/ZynqMP/Versal/Versal NET SoCs
TF-A maintainer - Xilinx ZynqMP/Versal/Versal NET SoCs

2023-05-16 11:18:43

by Michal Simek

[permalink] [raw]
Subject: Re: [PATCH 19/23] arm64: zynqmp: Enable DP driver for SOMs



On 5/2/23 15:35, Michal Simek wrote:
> DP DMA is already enabled that's why there is no reason to keep DP
> disabled.
>
> Signed-off-by: Michal Simek <[email protected]>
> ---
>
> arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso | 2 +-
> arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso
> index 4f18b3efcced..776444714fad 100644
> --- a/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso
> +++ b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso
> @@ -96,7 +96,7 @@ &sata {
> };
>
> &zynqmp_dpsub {
> - status = "disabled";
> + status = "okay";
> phy-names = "dp-phy0", "dp-phy1";
> phys = <&psgtr 1 PHY_TYPE_DP 0 0>, <&psgtr 0 PHY_TYPE_DP 1 0>;
> assigned-clock-rates = <27000000>, <25000000>, <300000000>;
> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso
> index 77bc806b15a1..78d082a11492 100644
> --- a/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso
> +++ b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso
> @@ -77,7 +77,7 @@ &psgtr {
> };
>
> &zynqmp_dpsub {
> - status = "disabled";
> + status = "okay";
> phy-names = "dp-phy0", "dp-phy1";
> phys = <&psgtr 1 PHY_TYPE_DP 0 0>, <&psgtr 0 PHY_TYPE_DP 1 0>;
> assigned-clock-rates = <27000000>, <25000000>, <300000000>;

Applied.
M

--
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: http://www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Xilinx Microblaze
Maintainer of Linux kernel - Xilinx Zynq ARM and ZynqMP/Versal ARM64 SoCs
U-Boot custodian - Xilinx Microblaze/Zynq/ZynqMP/Versal/Versal NET SoCs
TF-A maintainer - Xilinx ZynqMP/Versal/Versal NET SoCs

2023-05-16 11:19:24

by Michal Simek

[permalink] [raw]
Subject: Re: [PATCH 22/23] arm64: zynqmp: Describe bus-width for SD card on KV260



On 5/2/23 15:35, Michal Simek wrote:
> SD card is connected with 4 data lines which should be described properly.
>
> Signed-off-by: Michal Simek <[email protected]>
> ---
>
> arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso | 1 +
> arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso | 1 +
> 2 files changed, 2 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso
> index 776444714fad..dcc51b3adab0 100644
> --- a/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso
> +++ b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso
> @@ -136,6 +136,7 @@ &sdhci1 { /* on CC with tuned parameters */
> disable-wp;
> xlnx,mio-bank = <1>;
> assigned-clock-rates = <187498123>;
> + bus-width = <4>;
> };
>
> &gem3 { /* required by spec */
> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso
> index 78d082a11492..3384df3d5920 100644
> --- a/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso
> +++ b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso
> @@ -119,6 +119,7 @@ &sdhci1 { /* on CC with tuned parameters */
> clk-phase-uhs-sdr25 = <120>, <60>;
> clk-phase-uhs-ddr50 = <126>, <48>;
> assigned-clock-rates = <187498123>;
> + bus-width = <4>;
> };
>
> &gem3 { /* required by spec */

Applied.
M

--
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: http://www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Xilinx Microblaze
Maintainer of Linux kernel - Xilinx Zynq ARM and ZynqMP/Versal ARM64 SoCs
U-Boot custodian - Xilinx Microblaze/Zynq/ZynqMP/Versal/Versal NET SoCs
TF-A maintainer - Xilinx ZynqMP/Versal/Versal NET SoCs

2023-05-16 11:20:19

by Michal Simek

[permalink] [raw]
Subject: Re: [PATCH 16/23] arm64: zynqmp: Disable USB3.0 for zc1751-xm016-dc2



On 5/2/23 15:35, Michal Simek wrote:
> From: Piyush Mehta <[email protected]>
>
> The board zynqmp-zc1751-xm016-dc2 support only USB2.0 that's why remove
> USB3.0 DT configuration.
>
> Signed-off-by: Piyush Mehta <[email protected]>
> Signed-off-by: Michal Simek <[email protected]>
> ---
>
> arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm016-dc2.dts | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm016-dc2.dts b/arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm016-dc2.dts
> index a2031187d9b3..9e7564235b69 100644
> --- a/arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm016-dc2.dts
> +++ b/arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm016-dc2.dts
> @@ -489,8 +489,6 @@ &usb1 {
> &dwc3_1 {
> status = "okay";
> dr_mode = "host";
> - snps,usb3_lpm_capable;
> - maximum-speed = "super-speed";
> };
>
> &uart0 {

Applied.
M

--
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: http://www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Xilinx Microblaze
Maintainer of Linux kernel - Xilinx Zynq ARM and ZynqMP/Versal ARM64 SoCs
U-Boot custodian - Xilinx Microblaze/Zynq/ZynqMP/Versal/Versal NET SoCs
TF-A maintainer - Xilinx ZynqMP/Versal/Versal NET SoCs

2023-05-16 11:22:37

by Michal Simek

[permalink] [raw]
Subject: Re: [PATCH 12/23] arm64: zynqmp: Add mtd partition for secure OS storage area



On 5/2/23 15:35, Michal Simek wrote:
> From: Amit Kumar Mahapatra <[email protected]>
>
> Update MTD partitions of Kria device trees to allocate 128KB of QSPI
> memory for secure OS. Increased "SHA256" partition size & changed
> starting address of "User" partition to accommodate the new partition
> "Secure OS Storage"
>
> Signed-off-by: Amit Kumar Mahapatra <[email protected]>
> Signed-off-by: Michal Simek <[email protected]>
> ---
>
> arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts | 12 ++++++++----
> 1 file changed, 8 insertions(+), 4 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts b/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
> index d3c6a9feb114..5fbc2fbd2638 100644
> --- a/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
> +++ b/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
> @@ -83,7 +83,7 @@ &uart1 { /* MIO36/MIO37 */
>
> &qspi { /* MIO 0-5 - U143 */
> status = "okay";
> - flash@0 { /* MT25QU512A */
> + spi_flash: flash@0 { /* MT25QU512A */
> compatible = "mt25qu512a", "jedec,spi-nor"; /* 64MB */
> #address-cells = <1>;
> #size-cells = <1>;
> @@ -161,13 +161,17 @@ partition@2220000 {
> };
> partition@2240000 {
> label = "SHA256";
> - reg = <0x2240000 0x10000>; /* 256B but 64KB sector */
> + reg = <0x2240000 0x40000>; /* 256B but 256KB sector */
> read-only;
> lock;
> };
> - partition@2250000 {
> + partition@2280000 {
> + label = "Secure OS Storage";
> + reg = <0x2280000 0x20000>; /* 128KB */
> + };
> + partition@22A0000 {
> label = "User";
> - reg = <0x2250000 0x1db0000>; /* 29.5 MB */
> + reg = <0x22A0000 0x1d60000>; /* 29.375 MB */
> };
> };
> };

Applied.
M

--
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: http://www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Xilinx Microblaze
Maintainer of Linux kernel - Xilinx Zynq ARM and ZynqMP/Versal ARM64 SoCs
U-Boot custodian - Xilinx Microblaze/Zynq/ZynqMP/Versal/Versal NET SoCs
TF-A maintainer - Xilinx ZynqMP/Versal/Versal NET SoCs

2023-05-16 11:23:18

by Michal Simek

[permalink] [raw]
Subject: Re: [PATCH 15/23] arm64: zynqmp: Add pinctrl emmc description to SM-K26



On 5/2/23 15:35, Michal Simek wrote:
> Production SOM has emmc on it and make sense to describe pin description to
> be able use EMMC if it is not configured via psu_init.
> (Still some regs are not handled but this is one step in that direction)
>
> Signed-off-by: Michal Simek <[email protected]>
> ---
>
> .../boot/dts/xilinx/zynqmp-sm-k26-revA.dts | 20 +++++++++++++++++++
> 1 file changed, 20 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts b/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
> index c206021cccf7..e284979fd7b1 100644
> --- a/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
> +++ b/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
> @@ -14,6 +14,7 @@
> #include <dt-bindings/input/input.h>
> #include <dt-bindings/gpio/gpio.h>
> #include <dt-bindings/phy/phy.h>
> +#include <dt-bindings/pinctrl/pinctrl-zynqmp.h>
>
> / {
> model = "ZynqMP SM-K26 Rev1/B/A";
> @@ -85,6 +86,23 @@ &uart1 { /* MIO36/MIO37 */
> status = "okay";
> };
>
> +&pinctrl0 {
> + status = "okay";
> + pinctrl_sdhci0_default: sdhci0-default {
> + conf {
> + groups = "sdio0_0_grp";
> + slew-rate = <SLEW_RATE_SLOW>;
> + power-source = <IO_STANDARD_LVCMOS18>;
> + bias-disable;
> + };
> +
> + mux {
> + groups = "sdio0_0_grp";
> + function = "sdio0";
> + };
> + };
> +};
> +
> &qspi { /* MIO 0-5 - U143 */
> status = "okay";
> spi_flash: flash@0 { /* MT25QU512A */
> @@ -189,6 +207,8 @@ partition@22A0000 {
>
> &sdhci0 { /* MIO13-23 - 16GB emmc MTFC16GAPALBH-IT - U133A */
> status = "okay";
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_sdhci0_default>;
> non-removable;
> disable-wp;
> bus-width = <8>;

Applied.
M

--
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: http://www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Xilinx Microblaze
Maintainer of Linux kernel - Xilinx Zynq ARM and ZynqMP/Versal ARM64 SoCs
U-Boot custodian - Xilinx Microblaze/Zynq/ZynqMP/Versal/Versal NET SoCs
TF-A maintainer - Xilinx ZynqMP/Versal/Versal NET SoCs

2023-05-16 11:23:19

by Michal Simek

[permalink] [raw]
Subject: Re: [PATCH 21/23] arm64: zynqmp: Enable AMS on SOM and other zcu10x boards



On 5/2/23 15:35, Michal Simek wrote:
> AMS is used for monitoring system. Used for measuring voltages and
> especially temperatures. Origin interface is IIO but via iio-hwmon it can
> be moved to hwmon framework too (done for SOM and zcu100).
>
> Signed-off-by: Michal Simek <[email protected]>
> ---
>
> .../boot/dts/xilinx/zynqmp-sm-k26-revA.dts | 26 +++++++++++++++++++
> .../boot/dts/xilinx/zynqmp-zcu100-revC.dts | 17 ++++++++++++
> .../boot/dts/xilinx/zynqmp-zcu102-revA.dts | 12 +++++++++
> .../boot/dts/xilinx/zynqmp-zcu104-revA.dts | 12 +++++++++
> .../boot/dts/xilinx/zynqmp-zcu104-revC.dts | 12 +++++++++
> 5 files changed, 79 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts b/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
> index e284979fd7b1..78ff6a9b3144 100644
> --- a/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
> +++ b/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
> @@ -76,6 +76,20 @@ ds36-led {
> default-state = "on";
> };
> };
> +
> + ams {
> + compatible = "iio-hwmon";
> + io-channels = <&xilinx_ams 0>, <&xilinx_ams 1>, <&xilinx_ams 2>,
> + <&xilinx_ams 3>, <&xilinx_ams 4>, <&xilinx_ams 5>,
> + <&xilinx_ams 6>, <&xilinx_ams 7>, <&xilinx_ams 8>,
> + <&xilinx_ams 9>, <&xilinx_ams 10>, <&xilinx_ams 11>,
> + <&xilinx_ams 12>, <&xilinx_ams 13>, <&xilinx_ams 14>,
> + <&xilinx_ams 15>, <&xilinx_ams 16>, <&xilinx_ams 17>,
> + <&xilinx_ams 18>, <&xilinx_ams 19>, <&xilinx_ams 20>,
> + <&xilinx_ams 21>, <&xilinx_ams 22>, <&xilinx_ams 23>,
> + <&xilinx_ams 24>, <&xilinx_ams 25>, <&xilinx_ams 26>,
> + <&xilinx_ams 27>, <&xilinx_ams 28>, <&xilinx_ams 29>;
> + };
> };
>
> &modepin_gpio {
> @@ -327,6 +341,18 @@ &gpio {
> "", "", "", ""; /* 170 - 173 */
> };
>
> +&xilinx_ams {
> + status = "okay";
> +};
> +
> +&ams_ps {
> + status = "okay";
> +};
> +
> +&ams_pl {
> + status = "okay";
> +};
> +
> &zynqmp_dpsub {
> status = "okay";
> };
> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-zcu100-revC.dts b/arch/arm64/boot/dts/xilinx/zynqmp-zcu100-revC.dts
> index c99abb99efcb..c8be41d77cb9 100644
> --- a/arch/arm64/boot/dts/xilinx/zynqmp-zcu100-revC.dts
> +++ b/arch/arm64/boot/dts/xilinx/zynqmp-zcu100-revC.dts
> @@ -59,6 +59,15 @@ switch-4 {
> };
> };
>
> + iio-hwmon {
> + compatible = "iio-hwmon";
> + io-channels = <&xilinx_ams 0>, <&xilinx_ams 1>, <&xilinx_ams 2>,
> + <&xilinx_ams 3>, <&xilinx_ams 4>, <&xilinx_ams 5>,
> + <&xilinx_ams 6>, <&xilinx_ams 7>, <&xilinx_ams 8>,
> + <&xilinx_ams 9>, <&xilinx_ams 10>,
> + <&xilinx_ams 11>, <&xilinx_ams 12>;
> + };
> +
> leds {
> compatible = "gpio-leds";
> led-ds2 {
> @@ -581,6 +590,14 @@ &watchdog0 {
> status = "okay";
> };
>
> +&xilinx_ams {
> + status = "okay";
> +};
> +
> +&ams_ps {
> + status = "okay";
> +};
> +
> &zynqmp_dpdma {
> status = "okay";
> };
> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-zcu102-revA.dts b/arch/arm64/boot/dts/xilinx/zynqmp-zcu102-revA.dts
> index 5b6403865541..b2e1f3581f6b 100644
> --- a/arch/arm64/boot/dts/xilinx/zynqmp-zcu102-revA.dts
> +++ b/arch/arm64/boot/dts/xilinx/zynqmp-zcu102-revA.dts
> @@ -1027,6 +1027,18 @@ &watchdog0 {
> status = "okay";
> };
>
> +&xilinx_ams {
> + status = "okay";
> +};
> +
> +&ams_ps {
> + status = "okay";
> +};
> +
> +&ams_pl {
> + status = "okay";
> +};
> +
> &zynqmp_dpdma {
> status = "okay";
> };
> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revA.dts b/arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revA.dts
> index a74a2061431a..1f30c37c2e03 100644
> --- a/arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revA.dts
> +++ b/arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revA.dts
> @@ -511,6 +511,18 @@ &watchdog0 {
> status = "okay";
> };
>
> +&xilinx_ams {
> + status = "okay";
> +};
> +
> +&ams_ps {
> + status = "okay";
> +};
> +
> +&ams_pl {
> + status = "okay";
> +};
> +
> &zynqmp_dpdma {
> status = "okay";
> };
> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revC.dts b/arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revC.dts
> index 73972d83ed4d..474744278b97 100644
> --- a/arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revC.dts
> +++ b/arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revC.dts
> @@ -523,6 +523,18 @@ &watchdog0 {
> status = "okay";
> };
>
> +&xilinx_ams {
> + status = "okay";
> +};
> +
> +&ams_ps {
> + status = "okay";
> +};
> +
> +&ams_pl {
> + status = "okay";
> +};
> +
> &zynqmp_dpdma {
> status = "okay";
> };

Applied.
M

--
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: http://www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Xilinx Microblaze
Maintainer of Linux kernel - Xilinx Zynq ARM and ZynqMP/Versal ARM64 SoCs
U-Boot custodian - Xilinx Microblaze/Zynq/ZynqMP/Versal/Versal NET SoCs
TF-A maintainer - Xilinx ZynqMP/Versal/Versal NET SoCs

2023-05-16 11:27:14

by Michal Simek

[permalink] [raw]
Subject: Re: [PATCH 23/23] arm64: zynqmp: Add phase tags marking



On 5/2/23 15:35, Michal Simek wrote:
> bootph-all as phase tag was added to dt-schema
> (dtschema/schemas/bootph.yaml) to cover U-Boot challenges with DT.
> That's why add it also to Linux to be aligned with bootloader requirement.
>
> Signed-off-by: Michal Simek <[email protected]>
> ---
>
> ---
> arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi | 6 ++++++
> arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts | 3 +++
> arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 12 ++++++++++++
> 3 files changed, 21 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi b/arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi
> index 581221fdadf1..719ea5d5ae88 100644
> --- a/arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi
> +++ b/arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi
> @@ -11,30 +11,35 @@
> #include <dt-bindings/clock/xlnx-zynqmp-clk.h>
> / {
> pss_ref_clk: pss_ref_clk {
> + bootph-all;
> compatible = "fixed-clock";
> #clock-cells = <0>;
> clock-frequency = <33333333>;
> };
>
> video_clk: video_clk {
> + bootph-all;
> compatible = "fixed-clock";
> #clock-cells = <0>;
> clock-frequency = <27000000>;
> };
>
> pss_alt_ref_clk: pss_alt_ref_clk {
> + bootph-all;
> compatible = "fixed-clock";
> #clock-cells = <0>;
> clock-frequency = <0>;
> };
>
> gt_crx_ref_clk: gt_crx_ref_clk {
> + bootph-all;
> compatible = "fixed-clock";
> #clock-cells = <0>;
> clock-frequency = <108000000>;
> };
>
> aux_ref_clk: aux_ref_clk {
> + bootph-all;
> compatible = "fixed-clock";
> #clock-cells = <0>;
> clock-frequency = <27000000>;
> @@ -43,6 +48,7 @@ aux_ref_clk: aux_ref_clk {
>
> &zynqmp_firmware {
> zynqmp_clk: clock-controller {
> + bootph-all;
> #clock-cells = <1>;
> compatible = "xlnx,zynqmp-clk";
> clocks = <&pss_ref_clk>, <&video_clk>, <&pss_alt_ref_clk>,
> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts b/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
> index 78ff6a9b3144..8afdf4408a78 100644
> --- a/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
> +++ b/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
> @@ -243,17 +243,20 @@ tpm@0 { /* slm9670 - U144 */
>
> &i2c1 {
> status = "okay";
> + bootph-all;
> clock-frequency = <400000>;
> scl-gpios = <&gpio 24 GPIO_ACTIVE_HIGH>;
> sda-gpios = <&gpio 25 GPIO_ACTIVE_HIGH>;
>
> eeprom: eeprom@50 { /* u46 - also at address 0x58 */
> + bootph-all;
> compatible = "st,24c64", "atmel,24c64"; /* st m24c64 */
> reg = <0x50>;
> /* WP pin EE_WP_EN connected to slg7x644092@68 */
> };
>
> eeprom_cc: eeprom@51 { /* required by spec - also at address 0x59 */
> + bootph-all;
> compatible = "st,24c64", "atmel,24c64"; /* st m24c64 */
> reg = <0x51>;
> };
> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
> index d01d4334c95f..51b8349dcacd 100644
> --- a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
> +++ b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
> @@ -127,6 +127,7 @@ rproc_1_fw_image: memory@3ef00000 {
> };
>
> zynqmp_ipi: zynqmp_ipi {
> + bootph-all;
> compatible = "xlnx,zynqmp-ipi-mailbox";
> interrupt-parent = <&gic>;
> interrupts = <0 35 4>;
> @@ -136,6 +137,7 @@ zynqmp_ipi: zynqmp_ipi {
> ranges;
>
> ipi_mailbox_pmu1: mailbox@ff9905c0 {
> + bootph-all;
> reg = <0x0 0xff9905c0 0x0 0x20>,
> <0x0 0xff9905e0 0x0 0x20>,
> <0x0 0xff990e80 0x0 0x20>,
> @@ -152,6 +154,7 @@ ipi_mailbox_pmu1: mailbox@ff9905c0 {
> dcc: dcc {
> compatible = "arm,dcc";
> status = "disabled";
> + bootph-all;
> };
>
> pmu {
> @@ -177,8 +180,10 @@ zynqmp_firmware: zynqmp-firmware {
> compatible = "xlnx,zynqmp-firmware";
> #power-domain-cells = <1>;
> method = "smc";
> + bootph-all;
>
> zynqmp_power: zynqmp-power {
> + bootph-all;
> compatible = "xlnx,zynqmp-power";
> interrupt-parent = <&gic>;
> interrupts = <0 35 4>;
> @@ -258,6 +263,7 @@ r5f-1 {
>
> amba: axi {
> compatible = "simple-bus";
> + bootph-all;
> #address-cells = <2>;
> #size-cells = <2>;
> ranges;
> @@ -699,6 +705,7 @@ pcie_intc: legacy-interrupt-controller {
> };
>
> qspi: spi@ff0f0000 {
> + bootph-all;
> compatible = "xlnx,zynqmp-qspi-1.0";
> status = "disabled";
> clock-names = "ref_clk", "pclk";
> @@ -745,6 +752,7 @@ sata: ahci@fd0c0000 {
> };
>
> sdhci0: mmc@ff160000 {
> + bootph-all;
> compatible = "xlnx,zynqmp-8.9a", "arasan,sdhci-8.9a";
> status = "disabled";
> interrupt-parent = <&gic>;
> @@ -759,6 +767,7 @@ sdhci0: mmc@ff160000 {
> };
>
> sdhci1: mmc@ff170000 {
> + bootph-all;
> compatible = "xlnx,zynqmp-8.9a", "arasan,sdhci-8.9a";
> status = "disabled";
> interrupt-parent = <&gic>;
> @@ -851,6 +860,7 @@ ttc3: timer@ff140000 {
> };
>
> uart0: serial@ff000000 {
> + bootph-all;
> compatible = "xlnx,zynqmp-uart", "cdns,uart-r1p12";
> status = "disabled";
> interrupt-parent = <&gic>;
> @@ -861,6 +871,7 @@ uart0: serial@ff000000 {
> };
>
> uart1: serial@ff010000 {
> + bootph-all;
> compatible = "xlnx,zynqmp-uart", "cdns,uart-r1p12";
> status = "disabled";
> interrupt-parent = <&gic>;
> @@ -982,6 +993,7 @@ zynqmp_dpdma: dma-controller@fd4c0000 {
> };
>
> zynqmp_dpsub: display@fd4a0000 {
> + bootph-all;
> compatible = "xlnx,zynqmp-dpsub-1.7";
> status = "disabled";
> reg = <0x0 0xfd4a0000 0x0 0x1000>,

Applied.
M

--
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: http://www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Xilinx Microblaze
Maintainer of Linux kernel - Xilinx Zynq ARM and ZynqMP/Versal ARM64 SoCs
U-Boot custodian - Xilinx Microblaze/Zynq/ZynqMP/Versal/Versal NET SoCs
TF-A maintainer - Xilinx ZynqMP/Versal/Versal NET SoCs


2023-05-16 11:34:14

by Michal Simek

[permalink] [raw]
Subject: Re: [PATCH 18/23] arm64: zynqmp: Setup clock for DP and DPDMA



On 5/2/23 15:35, Michal Simek wrote:
> Clocks are coming from shared HW design where these frequencies should be
> aligned with PLL setup.
>
> Signed-off-by: Michal Simek <[email protected]>
> ---
>
> arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi | 4 ++++
> arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso | 2 ++
> arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso | 2 ++
> 3 files changed, 8 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi b/arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi
> index 681885c9bcbb..581221fdadf1 100644
> --- a/arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi
> +++ b/arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi
> @@ -248,10 +248,14 @@ &xilinx_ams {
>
> &zynqmp_dpdma {
> clocks = <&zynqmp_clk DPDMA_REF>;
> + assigned-clocks = <&zynqmp_clk DPDMA_REF>; /* apll */
> };
>
> &zynqmp_dpsub {
> clocks = <&zynqmp_clk TOPSW_LSBUS>,
> <&zynqmp_clk DP_AUDIO_REF>,
> <&zynqmp_clk DP_VIDEO_REF>;
> + assigned-clocks = <&zynqmp_clk DP_STC_REF>,
> + <&zynqmp_clk DP_AUDIO_REF>,
> + <&zynqmp_clk DP_VIDEO_REF>; /* rpll, rpll, vpll */
> };
> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso
> index 817d756142ab..4f18b3efcced 100644
> --- a/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso
> +++ b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso
> @@ -99,10 +99,12 @@ &zynqmp_dpsub {
> status = "disabled";
> phy-names = "dp-phy0", "dp-phy1";
> phys = <&psgtr 1 PHY_TYPE_DP 0 0>, <&psgtr 0 PHY_TYPE_DP 1 0>;
> + assigned-clock-rates = <27000000>, <25000000>, <300000000>;
> };
>
> &zynqmp_dpdma {
> status = "okay";
> + assigned-clock-rates = <600000000>;
> };
>
> &usb0 {
> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso
> index e07cec231ee0..77bc806b15a1 100644
> --- a/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso
> +++ b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso
> @@ -80,10 +80,12 @@ &zynqmp_dpsub {
> status = "disabled";
> phy-names = "dp-phy0", "dp-phy1";
> phys = <&psgtr 1 PHY_TYPE_DP 0 0>, <&psgtr 0 PHY_TYPE_DP 1 0>;
> + assigned-clock-rates = <27000000>, <25000000>, <300000000>;
> };
>
> &zynqmp_dpdma {
> status = "okay";
> + assigned-clock-rates = <600000000>;
> };
>
> &usb0 {

Applied.
M

--
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: http://www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Xilinx Microblaze
Maintainer of Linux kernel - Xilinx Zynq ARM and ZynqMP/Versal ARM64 SoCs
U-Boot custodian - Xilinx Microblaze/Zynq/ZynqMP/Versal/Versal NET SoCs
TF-A maintainer - Xilinx ZynqMP/Versal/Versal NET SoCs

2023-05-16 11:44:02

by Michal Simek

[permalink] [raw]
Subject: Re: [PATCH 17/23] arm64: zynqmp: Switch to ethernet-phy-id in kv260



On 5/2/23 15:35, Michal Simek wrote:
> Use ethernet-phy-id compatible string to properly describe phy reset on
> kv260 boards. Previous description wasn't correct because reset was done
> for mdio bus to operate and it was in this case used for different purpose
> which was eth phy reset. With ethernet-phy-id phy reset happens only for
> the phy via phy framework.
>
> Signed-off-by: Michal Simek <[email protected]>
> ---
>
> arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso | 6 ++++--
> arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso | 6 ++++--
> 2 files changed, 8 insertions(+), 4 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso
> index cb4a5126c4ec..817d756142ab 100644
> --- a/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso
> +++ b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dtso
> @@ -146,16 +146,18 @@ &gem3 { /* required by spec */
> mdio: mdio {
> #address-cells = <1>;
> #size-cells = <0>;
> - reset-gpios = <&gpio 38 GPIO_ACTIVE_LOW>;
> - reset-delay-us = <2>;
>
> phy0: ethernet-phy@1 {
> #phy-cells = <1>;
> reg = <1>;
> + compatible = "ethernet-phy-id2000.a231";
> ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
> ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_75_NS>;
> ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
> ti,dp83867-rxctrl-strap-quirk;
> + reset-assert-us = <100>;
> + reset-deassert-us = <280>;
> + reset-gpios = <&gpio 38 GPIO_ACTIVE_LOW>;
> };
> };
> };
> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso
> index 31bc120dee49..e07cec231ee0 100644
> --- a/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso
> +++ b/arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dtso
> @@ -129,16 +129,18 @@ &gem3 { /* required by spec */
> mdio: mdio {
> #address-cells = <1>;
> #size-cells = <0>;
> - reset-gpios = <&gpio 38 GPIO_ACTIVE_LOW>;
> - reset-delay-us = <2>;
>
> phy0: ethernet-phy@1 {
> #phy-cells = <1>;
> reg = <1>;
> + compatible = "ethernet-phy-id2000.a231";
> ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
> ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_75_NS>;
> ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
> ti,dp83867-rxctrl-strap-quirk;
> + reset-assert-us = <100>;
> + reset-deassert-us = <280>;
> + reset-gpios = <&gpio 38 GPIO_ACTIVE_LOW>;
> };
> };
> };


Applied.
M


--
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: http://www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Xilinx Microblaze
Maintainer of Linux kernel - Xilinx Zynq ARM and ZynqMP/Versal ARM64 SoCs
U-Boot custodian - Xilinx Microblaze/Zynq/ZynqMP/Versal/Versal NET SoCs
TF-A maintainer - Xilinx ZynqMP/Versal/Versal NET SoCs