]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
arm64: zynqmp: Add output-enable pins to SOMs
authorNeal Frager <neal.frager@amd.com>
Thu, 31 Aug 2023 14:27:53 +0000 (16:27 +0200)
committerMichal Simek <michal.simek@amd.com>
Thu, 21 Sep 2023 11:20:11 +0000 (13:20 +0200)
Now that the zynqmp pinctrl driver supports the tri-state registers, make
sure that the pins requiring output-enable are configured appropriately for
SOMs.

Without it, all tristate setting for MIOs, which are not related to SOM
itself, are using default configuration which is not correct setting.
It means SDs, USBs, ethernet, etc. are not working properly.

In past it was fixed through calling tristate configuration via bootcmd:
usb_init=mw 0xFF180208 2020
kv260_gem3=mw 0xFF18020C 0xFC0 && gpio toggle gpio@ff0a000038 && \
  gpio toggle gpio@ff0a000038

Signed-off-by: Neal Frager <neal.frager@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/7ecd98b2a302c5c6628e0234482f23c38e721fd6.1693492064.git.michal.simek@amd.com
arch/arm/dts/zynqmp-sck-kr-g-revA.dts
arch/arm/dts/zynqmp-sck-kr-g-revB.dts
arch/arm/dts/zynqmp-sck-kv-g-revA.dts
arch/arm/dts/zynqmp-sck-kv-g-revB.dts

index d318773bd9d60a6c078dd224e1774fb4699f534f..30a0230d476782568fd08dc937255e844fdcdc7b 100644 (file)
                conf-tx {
                        pins = "MIO36";
                        bias-disable;
+                       output-enable;
                };
 
                mux {
                conf-bootstrap {
                        pins = "MIO45", "MIO47", "MIO49";
                        bias-disable;
+                       output-enable;
                        low-power-disable;
                };
 
                        pins = "MIO38", "MIO39", "MIO40",
                                "MIO41", "MIO42", "MIO43";
                        bias-disable;
+                       output-enable;
                        low-power-enable;
                };
 
                        slew-rate = <SLEW_RATE_SLOW>;
                        power-source = <IO_STANDARD_LVCMOS18>;
                        bias-disable;
+                       output-enable;
                };
 
                mux-mdio {
                        pins = "MIO54", "MIO56", "MIO57", "MIO58", "MIO59",
                        "MIO60", "MIO61", "MIO62", "MIO63";
                        bias-disable;
+                       output-enable;
                        drive-strength = <4>;
                        slew-rate = <SLEW_RATE_SLOW>;
                };
                        pins = "MIO66", "MIO68", "MIO69", "MIO70", "MIO71",
                        "MIO72", "MIO73", "MIO74", "MIO75";
                        bias-disable;
+                       output-enable;
                        drive-strength = <4>;
                        slew-rate = <SLEW_RATE_SLOW>;
                };
index 69dba0761b3752bd7e2b576199bf6a2d6fbee8d4..8f4c52d6d643264fe351109e913957f9fb9be922 100644 (file)
                conf-tx {
                        pins = "MIO36";
                        bias-disable;
+                       output-enable;
                };
 
                mux {
                conf-bootstrap {
                        pins = "MIO45", "MIO47", "MIO49";
                        bias-disable;
+                       output-enable;
                        low-power-disable;
                };
 
                        pins = "MIO38", "MIO39", "MIO40",
                                "MIO41", "MIO42", "MIO43";
                        bias-disable;
+                       output-enable;
                        low-power-enable;
                };
 
                        slew-rate = <SLEW_RATE_SLOW>;
                        power-source = <IO_STANDARD_LVCMOS18>;
                        bias-disable;
+                       output-enable;
                };
 
                mux-mdio {
                        pins = "MIO54", "MIO56", "MIO57", "MIO58", "MIO59",
                        "MIO60", "MIO61", "MIO62", "MIO63";
                        bias-disable;
+                       output-enable;
                        drive-strength = <4>;
                        slew-rate = <SLEW_RATE_SLOW>;
                };
                        pins = "MIO66", "MIO68", "MIO69", "MIO70", "MIO71",
                        "MIO72", "MIO73", "MIO74", "MIO75";
                        bias-disable;
+                       output-enable;
                        drive-strength = <4>;
                        slew-rate = <SLEW_RATE_SLOW>;
                };
index a81b3f6f51ad85c6b831c240f55c09de82276604..55bef1df75d000102f072640652ada68a8841e40 100644 (file)
                conf-tx {
                        pins = "MIO36";
                        bias-disable;
+                       output-enable;
                };
 
                mux {
                conf-bootstrap {
                        pins = "MIO71", "MIO73", "MIO75";
                        bias-disable;
+                       output-enable;
                        low-power-disable;
                };
 
                        pins = "MIO64", "MIO65", "MIO66",
                                "MIO67", "MIO68", "MIO69";
                        bias-disable;
+                       output-enable;
                        low-power-enable;
                };
 
                        slew-rate = <SLEW_RATE_SLOW>;
                        power-source = <IO_STANDARD_LVCMOS18>;
                        bias-disable;
+                       output-enable;
                };
 
                mux-mdio {
                        pins = "MIO54", "MIO56", "MIO57", "MIO58", "MIO59",
                        "MIO60", "MIO61", "MIO62", "MIO63";
                        bias-disable;
+                       output-enable;
                        drive-strength = <4>;
                        slew-rate = <SLEW_RATE_SLOW>;
                };
index f935f25c887f3cbb8bf7d392962b037d84cff096..1b1d9e772f5564ceff47d4afe4e8350d21f3bee5 100644 (file)
                conf-tx {
                        pins = "MIO36";
                        bias-disable;
+                       output-enable;
                };
 
                mux {
                conf-bootstrap {
                        pins = "MIO71", "MIO73", "MIO75";
                        bias-disable;
+                       output-enable;
                        low-power-disable;
                };
 
                        pins = "MIO64", "MIO65", "MIO66",
                                "MIO67", "MIO68", "MIO69";
                        bias-disable;
+                       output-enable;
                        low-power-enable;
                };
 
                        slew-rate = <SLEW_RATE_SLOW>;
                        power-source = <IO_STANDARD_LVCMOS18>;
                        bias-disable;
+                       output-enable;
                };
 
                mux-mdio {
                        pins = "MIO54", "MIO56", "MIO57", "MIO58", "MIO59",
                        "MIO60", "MIO61", "MIO62", "MIO63";
                        bias-disable;
+                       output-enable;
                        drive-strength = <4>;
                        slew-rate = <SLEW_RATE_SLOW>;
                };