devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/5] improvements and fixes for the phy-meson-gxl-usb2 driver
@ 2018-01-28 20:22 Martin Blumenstingl
       [not found] ` <20180128202245.25021-1-martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
  0 siblings, 1 reply; 10+ messages in thread
From: Martin Blumenstingl @ 2018-01-28 20:22 UTC (permalink / raw)
  To: robh+dt-DgEjT+Ai2ygdnm+yROfE0A, mark.rutland-5wv7dgnIgG8,
	kishon-l0cyMroinI0, devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-amlogic-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
  Cc: carlo-KA+7E9HrN00dnm+yROfE0A, khilman-rdvid1DuHRBWk0Htik3J/w,
	narmstrong-rdvid1DuHRBWk0Htik3J/w,
	jbrunet-rdvid1DuHRBWk0Htik3J/w, yixun.lan-LpR1jeaWuhtBDgjK7y7TUQ,
	Martin Blumenstingl

This contains two fixes and two (minor) fixes for the phy-meson-gxl-usb2
driver:
- a clock and reset line is used for the PHYs. this was not clear from
  the Amlogic GPL kernel sources since the clock is enabled very early
  in the boot process (either because the hardware defaults to "on",
  the bootrom enables it or a bootloader before BL3-3/u-boot enables it)
- we don't read the controller's dr_mode anymore because the USB2 PHY
  can only be switched into host mode if the USB3 PHY knows about it.
  Thus auto-detecting the mode doesn't work for this PHY so it's removed
  in patch #3
- do not log an error message when the phy-supply is not ready yet and
  we have to return -EPROBE_DEFER
- improve the naming of some U2P_R2 test mode registers


Martin Blumenstingl (5):
  dt-bindings: phy: meson-gxl-usb2-phy: add the reset line and clock
  phy: amlogic: phy-meson-gxl-usb2: support the clock and reset line
  phy: amlogic: phy-meson-gxl-usb2: default to host mode
  phy: amlogic: phy-meson-gxl-usb2: don't log an error on -EPROBE_DEFER
  phy: amlogic: phy-meson-gxl-usb2: rename some of the U2P_R2 registers

 .../devicetree/bindings/phy/meson-gxl-usb2-phy.txt |  4 ++
 drivers/phy/amlogic/Kconfig                        |  1 -
 drivers/phy/amlogic/phy-meson-gxl-usb2.c           | 78 ++++++++++++++++------
 3 files changed, 61 insertions(+), 22 deletions(-)

-- 
2.16.1

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 1/5] dt-bindings: phy: meson-gxl-usb2-phy: add the reset line and clock
       [not found] ` <20180128202245.25021-1-martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
@ 2018-01-28 20:22   ` Martin Blumenstingl
       [not found]     ` <20180128202245.25021-2-martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
  2018-01-28 20:22   ` [PATCH 2/5] phy: amlogic: phy-meson-gxl-usb2: support the clock and reset line Martin Blumenstingl
                     ` (5 subsequent siblings)
  6 siblings, 1 reply; 10+ messages in thread
From: Martin Blumenstingl @ 2018-01-28 20:22 UTC (permalink / raw)
  To: robh+dt-DgEjT+Ai2ygdnm+yROfE0A, mark.rutland-5wv7dgnIgG8,
	kishon-l0cyMroinI0, devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-amlogic-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
  Cc: carlo-KA+7E9HrN00dnm+yROfE0A, khilman-rdvid1DuHRBWk0Htik3J/w,
	narmstrong-rdvid1DuHRBWk0Htik3J/w,
	jbrunet-rdvid1DuHRBWk0Htik3J/w, yixun.lan-LpR1jeaWuhtBDgjK7y7TUQ,
	Martin Blumenstingl

The OTG capable USB2 PHY has a reset line (which is shared with other
components, such as the USB3 PHY for example) and a clock (which are
both part of different registers). Add the properties
for the reset line and clocks as optional ones since not all PHYs have
them (currently only the OTG capable PHY is known to use these).

Signed-off-by: Martin Blumenstingl <martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
---
 Documentation/devicetree/bindings/phy/meson-gxl-usb2-phy.txt | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/Documentation/devicetree/bindings/phy/meson-gxl-usb2-phy.txt b/Documentation/devicetree/bindings/phy/meson-gxl-usb2-phy.txt
index a105494a0fc9..b84a02ebffdf 100644
--- a/Documentation/devicetree/bindings/phy/meson-gxl-usb2-phy.txt
+++ b/Documentation/devicetree/bindings/phy/meson-gxl-usb2-phy.txt
@@ -6,6 +6,10 @@ Required properties:
 - #phys-cells:	must be 0 (see phy-bindings.txt in this directory)
 
 Optional properties:
+- clocks:	a phandle to the clock of this PHY
+- clock-names:	must be "phy"
+- resets:	a phandle to the reset line of this PHY
+- reset-names:	must be "phy"
 - phy-supply:	see phy-bindings.txt in this directory
 
 
-- 
2.16.1

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 2/5] phy: amlogic: phy-meson-gxl-usb2: support the clock and reset line
       [not found] ` <20180128202245.25021-1-martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
  2018-01-28 20:22   ` [PATCH 1/5] dt-bindings: phy: meson-gxl-usb2-phy: add the reset line and clock Martin Blumenstingl
@ 2018-01-28 20:22   ` Martin Blumenstingl
  2018-01-28 20:22   ` [PATCH 3/5] phy: amlogic: phy-meson-gxl-usb2: default to host mode Martin Blumenstingl
                     ` (4 subsequent siblings)
  6 siblings, 0 replies; 10+ messages in thread
From: Martin Blumenstingl @ 2018-01-28 20:22 UTC (permalink / raw)
  To: robh+dt-DgEjT+Ai2ygdnm+yROfE0A, mark.rutland-5wv7dgnIgG8,
	kishon-l0cyMroinI0, devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-amlogic-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
  Cc: carlo-KA+7E9HrN00dnm+yROfE0A, khilman-rdvid1DuHRBWk0Htik3J/w,
	narmstrong-rdvid1DuHRBWk0Htik3J/w,
	jbrunet-rdvid1DuHRBWk0Htik3J/w, yixun.lan-LpR1jeaWuhtBDgjK7y7TUQ,
	Martin Blumenstingl

The Meson GXL USB2 PHYs require an additional clock (USB) which has to
be enabled. If that clock is disabled then all PHY registers read 0x0.
Luckily for us that clock is always enabled (either by harddware
defaults, the bootrom, or any of the bootloaders before u-boot/BL3-3).

The OTG capable USB2 PHY additionally has a reset line (USB_OTG, which
is shared with other components, such as the USB3 PHY for example).

Extend the driver so it handles this clock and the shared reset line.
We only trigger the reset during the .init phase since it's a shared
reset line, so triggering it during the driver's .reset implementation
would effectively also only trigger it once anyways.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
---
 drivers/phy/amlogic/phy-meson-gxl-usb2.c | 44 ++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/drivers/phy/amlogic/phy-meson-gxl-usb2.c b/drivers/phy/amlogic/phy-meson-gxl-usb2.c
index e90c4ee25dfe..303b2b46af3c 100644
--- a/drivers/phy/amlogic/phy-meson-gxl-usb2.c
+++ b/drivers/phy/amlogic/phy-meson-gxl-usb2.c
@@ -11,11 +11,13 @@
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <linux/clk.h>
 #include <linux/delay.h>
 #include <linux/io.h>
 #include <linux/module.h>
 #include <linux/of_device.h>
 #include <linux/regmap.h>
+#include <linux/reset.h>
 #include <linux/phy/phy.h>
 #include <linux/platform_device.h>
 #include <linux/usb/of.h>
@@ -99,6 +101,8 @@ struct phy_meson_gxl_usb2_priv {
 	struct regmap		*regmap;
 	enum phy_mode		mode;
 	int			is_enabled;
+	struct clk		*clk;
+	struct reset_control	*reset;
 };
 
 static const struct regmap_config phy_meson_gxl_usb2_regmap_conf = {
@@ -108,6 +112,31 @@ static const struct regmap_config phy_meson_gxl_usb2_regmap_conf = {
 	.max_register = U2P_R3,
 };
 
+static int phy_meson_gxl_usb2_init(struct phy *phy)
+{
+	struct phy_meson_gxl_usb2_priv *priv = phy_get_drvdata(phy);
+	int ret;
+
+	ret = reset_control_reset(priv->reset);
+	if (ret)
+		return ret;
+
+	ret = clk_prepare_enable(priv->clk);
+	if (ret)
+		return ret;
+
+	return 0;
+}
+
+static int phy_meson_gxl_usb2_exit(struct phy *phy)
+{
+	struct phy_meson_gxl_usb2_priv *priv = phy_get_drvdata(phy);
+
+	clk_disable_unprepare(priv->clk);
+
+	return 0;
+}
+
 static int phy_meson_gxl_usb2_reset(struct phy *phy)
 {
 	struct phy_meson_gxl_usb2_priv *priv = phy_get_drvdata(phy);
@@ -195,6 +224,8 @@ static int phy_meson_gxl_usb2_power_on(struct phy *phy)
 }
 
 static const struct phy_ops phy_meson_gxl_usb2_ops = {
+	.init		= phy_meson_gxl_usb2_init,
+	.exit		= phy_meson_gxl_usb2_exit,
 	.power_on	= phy_meson_gxl_usb2_power_on,
 	.power_off	= phy_meson_gxl_usb2_power_off,
 	.set_mode	= phy_meson_gxl_usb2_set_mode,
@@ -240,6 +271,19 @@ static int phy_meson_gxl_usb2_probe(struct platform_device *pdev)
 	if (IS_ERR(priv->regmap))
 		return PTR_ERR(priv->regmap);
 
+	priv->clk = devm_clk_get(dev, "phy");
+	if (IS_ERR(priv->clk)) {
+		ret = PTR_ERR(priv->clk);
+		if (ret == -ENOENT)
+			priv->clk = NULL;
+		else
+			return ret;
+	}
+
+	priv->reset = devm_reset_control_get_optional_shared(dev, "phy");
+	if (IS_ERR(priv->reset))
+		return PTR_ERR(priv->reset);
+
 	phy = devm_phy_create(dev, NULL, &phy_meson_gxl_usb2_ops);
 	if (IS_ERR(phy)) {
 		dev_err(dev, "failed to create PHY\n");
-- 
2.16.1

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 3/5] phy: amlogic: phy-meson-gxl-usb2: default to host mode
       [not found] ` <20180128202245.25021-1-martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
  2018-01-28 20:22   ` [PATCH 1/5] dt-bindings: phy: meson-gxl-usb2-phy: add the reset line and clock Martin Blumenstingl
  2018-01-28 20:22   ` [PATCH 2/5] phy: amlogic: phy-meson-gxl-usb2: support the clock and reset line Martin Blumenstingl
@ 2018-01-28 20:22   ` Martin Blumenstingl
  2018-01-28 20:22   ` [PATCH 4/5] phy: amlogic: phy-meson-gxl-usb2: don't log an error on -EPROBE_DEFER Martin Blumenstingl
                     ` (3 subsequent siblings)
  6 siblings, 0 replies; 10+ messages in thread
From: Martin Blumenstingl @ 2018-01-28 20:22 UTC (permalink / raw)
  To: robh+dt-DgEjT+Ai2ygdnm+yROfE0A, mark.rutland-5wv7dgnIgG8,
	kishon-l0cyMroinI0, devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-amlogic-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
  Cc: carlo-KA+7E9HrN00dnm+yROfE0A, khilman-rdvid1DuHRBWk0Htik3J/w,
	narmstrong-rdvid1DuHRBWk0Htik3J/w,
	jbrunet-rdvid1DuHRBWk0Htik3J/w, yixun.lan-LpR1jeaWuhtBDgjK7y7TUQ,
	Martin Blumenstingl

The USB2 PHY can switch between PHY_MODE_USB_HOST and
PHY_MODE_USB_DEVICE. However, it cannot do it on it's own since it
requires re-routing of the corresponding USB pins from dwc3 (which is
used for host-mode) to dwc2 (which is used for device-mode).
Thus we don't need to auto-detect the mode based on the USB controller,
which simplifies the driver code.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
---
 drivers/phy/amlogic/Kconfig              |  1 -
 drivers/phy/amlogic/phy-meson-gxl-usb2.c | 15 ++-------------
 2 files changed, 2 insertions(+), 14 deletions(-)

diff --git a/drivers/phy/amlogic/Kconfig b/drivers/phy/amlogic/Kconfig
index 2f690d24203a..23fe1cda2f70 100644
--- a/drivers/phy/amlogic/Kconfig
+++ b/drivers/phy/amlogic/Kconfig
@@ -18,7 +18,6 @@ config PHY_MESON_GXL_USB2
 	default ARCH_MESON
 	depends on OF && (ARCH_MESON || COMPILE_TEST)
 	depends on USB_SUPPORT
-	select USB_COMMON
 	select GENERIC_PHY
 	select REGMAP_MMIO
 	help
diff --git a/drivers/phy/amlogic/phy-meson-gxl-usb2.c b/drivers/phy/amlogic/phy-meson-gxl-usb2.c
index 303b2b46af3c..ee3c2c0c8572 100644
--- a/drivers/phy/amlogic/phy-meson-gxl-usb2.c
+++ b/drivers/phy/amlogic/phy-meson-gxl-usb2.c
@@ -20,7 +20,6 @@
 #include <linux/reset.h>
 #include <linux/phy/phy.h>
 #include <linux/platform_device.h>
-#include <linux/usb/of.h>
 
 /* bits [31:27] are read-only */
 #define U2P_R0							0x0
@@ -253,18 +252,8 @@ static int phy_meson_gxl_usb2_probe(struct platform_device *pdev)
 	if (IS_ERR(base))
 		return PTR_ERR(base);
 
-	switch (of_usb_get_dr_mode_by_phy(dev->of_node, -1)) {
-	case USB_DR_MODE_PERIPHERAL:
-		priv->mode = PHY_MODE_USB_DEVICE;
-		break;
-	case USB_DR_MODE_OTG:
-		priv->mode = PHY_MODE_USB_OTG;
-		break;
-	case USB_DR_MODE_HOST:
-	default:
-		priv->mode = PHY_MODE_USB_HOST;
-		break;
-	}
+	/* start in host mode */
+	priv->mode = PHY_MODE_USB_HOST;
 
 	priv->regmap = devm_regmap_init_mmio(dev, base,
 					     &phy_meson_gxl_usb2_regmap_conf);
-- 
2.16.1

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 4/5] phy: amlogic: phy-meson-gxl-usb2: don't log an error on -EPROBE_DEFER
       [not found] ` <20180128202245.25021-1-martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
                     ` (2 preceding siblings ...)
  2018-01-28 20:22   ` [PATCH 3/5] phy: amlogic: phy-meson-gxl-usb2: default to host mode Martin Blumenstingl
@ 2018-01-28 20:22   ` Martin Blumenstingl
  2018-01-28 20:22   ` [PATCH 5/5] phy: amlogic: phy-meson-gxl-usb2: rename some of the U2P_R2 registers Martin Blumenstingl
                     ` (2 subsequent siblings)
  6 siblings, 0 replies; 10+ messages in thread
From: Martin Blumenstingl @ 2018-01-28 20:22 UTC (permalink / raw)
  To: robh+dt-DgEjT+Ai2ygdnm+yROfE0A, mark.rutland-5wv7dgnIgG8,
	kishon-l0cyMroinI0, devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-amlogic-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
  Cc: carlo-KA+7E9HrN00dnm+yROfE0A, khilman-rdvid1DuHRBWk0Htik3J/w,
	narmstrong-rdvid1DuHRBWk0Htik3J/w,
	jbrunet-rdvid1DuHRBWk0Htik3J/w, yixun.lan-LpR1jeaWuhtBDgjK7y7TUQ,
	Martin Blumenstingl

devm_phy_create can return -EPROBE_DEFER if the phy-supply is not ready
yet. Silence this warning as the driver framework will re-attempt
registering the PHY - this second try works without any errors. So only
log actual errors to keep the kernel log free of misleading error
messages.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
---
 drivers/phy/amlogic/phy-meson-gxl-usb2.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/phy/amlogic/phy-meson-gxl-usb2.c b/drivers/phy/amlogic/phy-meson-gxl-usb2.c
index ee3c2c0c8572..f062fc7f0a3a 100644
--- a/drivers/phy/amlogic/phy-meson-gxl-usb2.c
+++ b/drivers/phy/amlogic/phy-meson-gxl-usb2.c
@@ -240,6 +240,7 @@ static int phy_meson_gxl_usb2_probe(struct platform_device *pdev)
 	struct phy_meson_gxl_usb2_priv *priv;
 	struct phy *phy;
 	void __iomem *base;
+	int ret;
 
 	priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
 	if (!priv)
@@ -275,8 +276,11 @@ static int phy_meson_gxl_usb2_probe(struct platform_device *pdev)
 
 	phy = devm_phy_create(dev, NULL, &phy_meson_gxl_usb2_ops);
 	if (IS_ERR(phy)) {
-		dev_err(dev, "failed to create PHY\n");
-		return PTR_ERR(phy);
+		ret = PTR_ERR(phy);
+		if (ret != -EPROBE_DEFER)
+			dev_err(dev, "failed to create PHY\n");
+
+		return ret;
 	}
 
 	phy_set_drvdata(phy, priv);
-- 
2.16.1

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 5/5] phy: amlogic: phy-meson-gxl-usb2: rename some of the U2P_R2 registers
       [not found] ` <20180128202245.25021-1-martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
                     ` (3 preceding siblings ...)
  2018-01-28 20:22   ` [PATCH 4/5] phy: amlogic: phy-meson-gxl-usb2: don't log an error on -EPROBE_DEFER Martin Blumenstingl
@ 2018-01-28 20:22   ` Martin Blumenstingl
  2018-02-09  8:27   ` [PATCH 0/5] improvements and fixes for the phy-meson-gxl-usb2 driver Yixun Lan
  2018-02-16 12:21   ` Kishon Vijay Abraham I
  6 siblings, 0 replies; 10+ messages in thread
From: Martin Blumenstingl @ 2018-01-28 20:22 UTC (permalink / raw)
  To: robh+dt-DgEjT+Ai2ygdnm+yROfE0A, mark.rutland-5wv7dgnIgG8,
	kishon-l0cyMroinI0, devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-amlogic-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
  Cc: carlo-KA+7E9HrN00dnm+yROfE0A, khilman-rdvid1DuHRBWk0Htik3J/w,
	narmstrong-rdvid1DuHRBWk0Htik3J/w,
	jbrunet-rdvid1DuHRBWk0Htik3J/w, yixun.lan-LpR1jeaWuhtBDgjK7y7TUQ,
	Martin Blumenstingl

The U2P_R2 register provides "test mode" functionality for bits 17:0.
These are only used during SoC development and should be left untouched
on production SoC versions.
Rename these register definitions to indicate that these are for "test
mode" only.

While here, also merge the definitions for U2P_R2_DATA_IN_MASK and
U2P_R2_DATA_IN_EN_MASK (bits 0:7) because Amlogic's internal
documentation suggests that these bits belong together. The old
definition was not taken from the documentation but rather from a struct
definition in the Amlogic GPL kernel sources.

No functional changes.

Suggested-by: Yixun Lan <yixun.lan-LpR1jeaWuhtBDgjK7y7TUQ@public.gmane.org>
Signed-off-by: Martin Blumenstingl <martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
---
 drivers/phy/amlogic/phy-meson-gxl-usb2.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/phy/amlogic/phy-meson-gxl-usb2.c b/drivers/phy/amlogic/phy-meson-gxl-usb2.c
index f062fc7f0a3a..9f9b5414b97a 100644
--- a/drivers/phy/amlogic/phy-meson-gxl-usb2.c
+++ b/drivers/phy/amlogic/phy-meson-gxl-usb2.c
@@ -71,12 +71,11 @@
 
 /* bits [31:14] are read-only */
 #define U2P_R2							0x8
-	#define U2P_R2_DATA_IN_MASK				GENMASK(3, 0)
-	#define U2P_R2_DATA_IN_EN_MASK				GENMASK(7, 4)
-	#define U2P_R2_ADDR_MASK				GENMASK(11, 8)
-	#define U2P_R2_DATA_OUT_SEL				BIT(12)
-	#define U2P_R2_CLK					BIT(13)
-	#define U2P_R2_DATA_OUT_MASK				GENMASK(17, 14)
+	#define U2P_R2_TESTDATA_IN_MASK				GENMASK(7, 0)
+	#define U2P_R2_TESTADDR_MASK				GENMASK(11, 8)
+	#define U2P_R2_TESTDATA_OUT_SEL				BIT(12)
+	#define U2P_R2_TESTCLK					BIT(13)
+	#define U2P_R2_TESTDATA_OUT_MASK			GENMASK(17, 14)
 	#define U2P_R2_ACA_PIN_RANGE_C				BIT(18)
 	#define U2P_R2_ACA_PIN_RANGE_B				BIT(19)
 	#define U2P_R2_ACA_PIN_RANGE_A				BIT(20)
-- 
2.16.1

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/5] dt-bindings: phy: meson-gxl-usb2-phy: add the reset line and clock
       [not found]     ` <20180128202245.25021-2-martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
@ 2018-02-05  6:07       ` Rob Herring
  0 siblings, 0 replies; 10+ messages in thread
From: Rob Herring @ 2018-02-05  6:07 UTC (permalink / raw)
  To: Martin Blumenstingl
  Cc: mark.rutland-5wv7dgnIgG8, kishon-l0cyMroinI0,
	devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-amlogic-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	carlo-KA+7E9HrN00dnm+yROfE0A, khilman-rdvid1DuHRBWk0Htik3J/w,
	narmstrong-rdvid1DuHRBWk0Htik3J/w,
	jbrunet-rdvid1DuHRBWk0Htik3J/w, yixun.lan-LpR1jeaWuhtBDgjK7y7TUQ

On Sun, Jan 28, 2018 at 09:22:41PM +0100, Martin Blumenstingl wrote:
> The OTG capable USB2 PHY has a reset line (which is shared with other
> components, such as the USB3 PHY for example) and a clock (which are
> both part of different registers). Add the properties
> for the reset line and clocks as optional ones since not all PHYs have
> them (currently only the OTG capable PHY is known to use these).
> 
> Signed-off-by: Martin Blumenstingl <martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
> ---
>  Documentation/devicetree/bindings/phy/meson-gxl-usb2-phy.txt | 4 ++++
>  1 file changed, 4 insertions(+)

Reviewed-by: Rob Herring <robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 0/5] improvements and fixes for the phy-meson-gxl-usb2 driver
       [not found] ` <20180128202245.25021-1-martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
                     ` (4 preceding siblings ...)
  2018-01-28 20:22   ` [PATCH 5/5] phy: amlogic: phy-meson-gxl-usb2: rename some of the U2P_R2 registers Martin Blumenstingl
@ 2018-02-09  8:27   ` Yixun Lan
       [not found]     ` <9b5295ea-74a2-7bb1-744e-6e8eb76f2673-LpR1jeaWuhtBDgjK7y7TUQ@public.gmane.org>
  2018-02-16 12:21   ` Kishon Vijay Abraham I
  6 siblings, 1 reply; 10+ messages in thread
From: Yixun Lan @ 2018-02-09  8:27 UTC (permalink / raw)
  To: Martin Blumenstingl, robh+dt-DgEjT+Ai2ygdnm+yROfE0A,
	mark.rutland-5wv7dgnIgG8, kishon-l0cyMroinI0,
	devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-amlogic-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
  Cc: yixun.lan-LpR1jeaWuhtBDgjK7y7TUQ, carlo-KA+7E9HrN00dnm+yROfE0A,
	khilman-rdvid1DuHRBWk0Htik3J/w,
	narmstrong-rdvid1DuHRBWk0Htik3J/w,
	jbrunet-rdvid1DuHRBWk0Htik3J/w



On 01/29/18 04:22, Martin Blumenstingl wrote:
> This contains two fixes and two (minor) fixes for the phy-meson-gxl-usb2
> driver:
> - a clock and reset line is used for the PHYs. this was not clear from
>   the Amlogic GPL kernel sources since the clock is enabled very early
>   in the boot process (either because the hardware defaults to "on",
>   the bootrom enables it or a bootloader before BL3-3/u-boot enables it)
> - we don't read the controller's dr_mode anymore because the USB2 PHY
>   can only be switched into host mode if the USB3 PHY knows about it.
>   Thus auto-detecting the mode doesn't work for this PHY so it's removed
>   in patch #3
> - do not log an error message when the phy-supply is not ready yet and
>   we have to return -EPROBE_DEFER
> - improve the naming of some U2P_R2 test mode registers
> 
> 
> Martin Blumenstingl (5):
>   dt-bindings: phy: meson-gxl-usb2-phy: add the reset line and clock
>   phy: amlogic: phy-meson-gxl-usb2: support the clock and reset line
>   phy: amlogic: phy-meson-gxl-usb2: default to host mode
>   phy: amlogic: phy-meson-gxl-usb2: don't log an error on -EPROBE_DEFER
>   phy: amlogic: phy-meson-gxl-usb2: rename some of the U2P_R2 registers
> 
>  .../devicetree/bindings/phy/meson-gxl-usb2-phy.txt |  4 ++
>  drivers/phy/amlogic/Kconfig                        |  1 -
>  drivers/phy/amlogic/phy-meson-gxl-usb2.c           | 78 ++++++++++++++++------
>  3 files changed, 61 insertions(+), 22 deletions(-)
> 

Hi Martin

  thanks for your great work for pushing the USB driver upstream.

  I've test your whole series[1] on AXG S400 board and it works fine here.

Yixun


[1] the whole patch series include

[RFC usb-next v8 0/3] initialize (multiple) PHYs for a HCD
https://lkml.kernel.org/r/20180125000053.9387-1-martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org

[PATCH 0/3] DWC3 support for Amlogic Meson AXG and GXL SoCs
https://lkml.kernel.org/r/20180128200333.20093-1-martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org

[PATCH v2 0/2] Meson GXL USB3 PHY driver
https://lkml.kernel.org/r/20180128201554.23889-1-martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org

[PATCH 1/5] dt-bindings: phy: meson-gxl-usb2-phy: add the reset line and
clock
https://lkml.kernel.org/r/20180128202245.25021-1-martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 0/5] improvements and fixes for the phy-meson-gxl-usb2 driver
       [not found]     ` <9b5295ea-74a2-7bb1-744e-6e8eb76f2673-LpR1jeaWuhtBDgjK7y7TUQ@public.gmane.org>
@ 2018-02-11 21:18       ` Martin Blumenstingl
  0 siblings, 0 replies; 10+ messages in thread
From: Martin Blumenstingl @ 2018-02-11 21:18 UTC (permalink / raw)
  To: Yixun Lan
  Cc: robh+dt-DgEjT+Ai2ygdnm+yROfE0A, mark.rutland-5wv7dgnIgG8,
	kishon-l0cyMroinI0, devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-amlogic-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	carlo-KA+7E9HrN00dnm+yROfE0A, khilman-rdvid1DuHRBWk0Htik3J/w,
	Neil Armstrong, jbrunet-rdvid1DuHRBWk0Htik3J/w

Hi Yixun,

On Fri, Feb 9, 2018 at 9:27 AM, Yixun Lan <yixun.lan-LpR1jeaWuhtBDgjK7y7TUQ@public.gmane.org> wrote:
>
>
> On 01/29/18 04:22, Martin Blumenstingl wrote:
>> This contains two fixes and two (minor) fixes for the phy-meson-gxl-usb2
>> driver:
>> - a clock and reset line is used for the PHYs. this was not clear from
>>   the Amlogic GPL kernel sources since the clock is enabled very early
>>   in the boot process (either because the hardware defaults to "on",
>>   the bootrom enables it or a bootloader before BL3-3/u-boot enables it)
>> - we don't read the controller's dr_mode anymore because the USB2 PHY
>>   can only be switched into host mode if the USB3 PHY knows about it.
>>   Thus auto-detecting the mode doesn't work for this PHY so it's removed
>>   in patch #3
>> - do not log an error message when the phy-supply is not ready yet and
>>   we have to return -EPROBE_DEFER
>> - improve the naming of some U2P_R2 test mode registers
>>
>>
>> Martin Blumenstingl (5):
>>   dt-bindings: phy: meson-gxl-usb2-phy: add the reset line and clock
>>   phy: amlogic: phy-meson-gxl-usb2: support the clock and reset line
>>   phy: amlogic: phy-meson-gxl-usb2: default to host mode
>>   phy: amlogic: phy-meson-gxl-usb2: don't log an error on -EPROBE_DEFER
>>   phy: amlogic: phy-meson-gxl-usb2: rename some of the U2P_R2 registers
>>
>>  .../devicetree/bindings/phy/meson-gxl-usb2-phy.txt |  4 ++
>>  drivers/phy/amlogic/Kconfig                        |  1 -
>>  drivers/phy/amlogic/phy-meson-gxl-usb2.c           | 78 ++++++++++++++++------
>>  3 files changed, 61 insertions(+), 22 deletions(-)
>>
>
> Hi Martin
>
>   thanks for your great work for pushing the USB driver upstream.
you're welcome - I hope that most problems are sorted out in the latest version

>   I've test your whole series[1] on AXG S400 board and it works fine here.
many thanks!
I just re-sent v9 of "initialize (multiple) PHYs for a HCD" and v2
"DWC3 support for Amlogic Meson AXG and GXL SoCs" which both include
fixes based on the feedback I got. I added your "Tested-by" to all
applicable patches, which I hope is fine for you!

I will re-send the USB2 and USB3 PHY patches once -rc1 is out if
Kishon wants me to re-send those with all Reviewed-by/Tested-by's
collected.

> Yixun
>
>
> [1] the whole patch series include
>
> [RFC usb-next v8 0/3] initialize (multiple) PHYs for a HCD
> https://lkml.kernel.org/r/20180125000053.9387-1-martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org
>
> [PATCH 0/3] DWC3 support for Amlogic Meson AXG and GXL SoCs
> https://lkml.kernel.org/r/20180128200333.20093-1-martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org
>
> [PATCH v2 0/2] Meson GXL USB3 PHY driver
> https://lkml.kernel.org/r/20180128201554.23889-1-martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org
>
> [PATCH 1/5] dt-bindings: phy: meson-gxl-usb2-phy: add the reset line and
> clock
> https://lkml.kernel.org/r/20180128202245.25021-1-martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org


Regards
Martin
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 0/5] improvements and fixes for the phy-meson-gxl-usb2 driver
       [not found] ` <20180128202245.25021-1-martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
                     ` (5 preceding siblings ...)
  2018-02-09  8:27   ` [PATCH 0/5] improvements and fixes for the phy-meson-gxl-usb2 driver Yixun Lan
@ 2018-02-16 12:21   ` Kishon Vijay Abraham I
  6 siblings, 0 replies; 10+ messages in thread
From: Kishon Vijay Abraham I @ 2018-02-16 12:21 UTC (permalink / raw)
  To: Martin Blumenstingl, robh+dt-DgEjT+Ai2ygdnm+yROfE0A,
	mark.rutland-5wv7dgnIgG8, devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-amlogic-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
  Cc: carlo-KA+7E9HrN00dnm+yROfE0A, khilman-rdvid1DuHRBWk0Htik3J/w,
	narmstrong-rdvid1DuHRBWk0Htik3J/w,
	jbrunet-rdvid1DuHRBWk0Htik3J/w, yixun.lan-LpR1jeaWuhtBDgjK7y7TUQ



On Monday 29 January 2018 01:52 AM, Martin Blumenstingl wrote:
> This contains two fixes and two (minor) fixes for the phy-meson-gxl-usb2
> driver:
> - a clock and reset line is used for the PHYs. this was not clear from
>   the Amlogic GPL kernel sources since the clock is enabled very early
>   in the boot process (either because the hardware defaults to "on",
>   the bootrom enables it or a bootloader before BL3-3/u-boot enables it)
> - we don't read the controller's dr_mode anymore because the USB2 PHY
>   can only be switched into host mode if the USB3 PHY knows about it.
>   Thus auto-detecting the mode doesn't work for this PHY so it's removed
>   in patch #3
> - do not log an error message when the phy-supply is not ready yet and
>   we have to return -EPROBE_DEFER
> - improve the naming of some U2P_R2 test mode registers

merged, thanks!

-Kishon
> 
> 
> Martin Blumenstingl (5):
>   dt-bindings: phy: meson-gxl-usb2-phy: add the reset line and clock
>   phy: amlogic: phy-meson-gxl-usb2: support the clock and reset line
>   phy: amlogic: phy-meson-gxl-usb2: default to host mode
>   phy: amlogic: phy-meson-gxl-usb2: don't log an error on -EPROBE_DEFER
>   phy: amlogic: phy-meson-gxl-usb2: rename some of the U2P_R2 registers
> 
>  .../devicetree/bindings/phy/meson-gxl-usb2-phy.txt |  4 ++
>  drivers/phy/amlogic/Kconfig                        |  1 -
>  drivers/phy/amlogic/phy-meson-gxl-usb2.c           | 78 ++++++++++++++++------
>  3 files changed, 61 insertions(+), 22 deletions(-)
> 
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2018-02-16 12:21 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-28 20:22 [PATCH 0/5] improvements and fixes for the phy-meson-gxl-usb2 driver Martin Blumenstingl
     [not found] ` <20180128202245.25021-1-martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
2018-01-28 20:22   ` [PATCH 1/5] dt-bindings: phy: meson-gxl-usb2-phy: add the reset line and clock Martin Blumenstingl
     [not found]     ` <20180128202245.25021-2-martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
2018-02-05  6:07       ` Rob Herring
2018-01-28 20:22   ` [PATCH 2/5] phy: amlogic: phy-meson-gxl-usb2: support the clock and reset line Martin Blumenstingl
2018-01-28 20:22   ` [PATCH 3/5] phy: amlogic: phy-meson-gxl-usb2: default to host mode Martin Blumenstingl
2018-01-28 20:22   ` [PATCH 4/5] phy: amlogic: phy-meson-gxl-usb2: don't log an error on -EPROBE_DEFER Martin Blumenstingl
2018-01-28 20:22   ` [PATCH 5/5] phy: amlogic: phy-meson-gxl-usb2: rename some of the U2P_R2 registers Martin Blumenstingl
2018-02-09  8:27   ` [PATCH 0/5] improvements and fixes for the phy-meson-gxl-usb2 driver Yixun Lan
     [not found]     ` <9b5295ea-74a2-7bb1-744e-6e8eb76f2673-LpR1jeaWuhtBDgjK7y7TUQ@public.gmane.org>
2018-02-11 21:18       ` Martin Blumenstingl
2018-02-16 12:21   ` Kishon Vijay Abraham I

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).