linux-omap.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH 1/4] arm: omap: Add phy binding info for musb in plat data
@ 2013-05-17 13:22 Kishon Vijay Abraham I
  2013-05-17 13:22 ` [RFC PATCH 2/4] usb: phy: add a new API to get PHY ref by label Kishon Vijay Abraham I
                   ` (3 more replies)
  0 siblings, 4 replies; 12+ messages in thread
From: Kishon Vijay Abraham I @ 2013-05-17 13:22 UTC (permalink / raw)
  To: tony, balbi, linux-arm-kernel, linux-omap, linux-kernel,
	linux-usb, tomi.valkeinen
  Cc: linux, eballetbo, javier, gregkh, Kishon Vijay Abraham I

In order for controllers to get PHY in case of non dt boot, the phy
binding information (phy label) should be added in the platform
data of the controller.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
---
 arch/arm/mach-omap2/usb-musb.c |    6 +++++-
 include/linux/usb/musb.h       |    3 +++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/arch/arm/mach-omap2/usb-musb.c b/arch/arm/mach-omap2/usb-musb.c
index 3242a55..5ddbe39 100644
--- a/arch/arm/mach-omap2/usb-musb.c
+++ b/arch/arm/mach-omap2/usb-musb.c
@@ -85,8 +85,12 @@ void __init usb_musb_init(struct omap_musb_board_data *musb_board_data)
 	musb_plat.mode = board_data->mode;
 	musb_plat.extvbus = board_data->extvbus;
 
-	if (cpu_is_omap44xx())
+	if (cpu_is_omap44xx()) {
 		musb_plat.has_mailbox = true;
+		musb_plat.phy_name = "omap-usb2";
+	} else if (cpu_is_omap34xx()) {
+		musb_plat.phy_name = "twl4030";
+	}
 
 	if (soc_is_am35xx()) {
 		oh_name = "am35x_otg_hs";
diff --git a/include/linux/usb/musb.h b/include/linux/usb/musb.h
index 053c268..c05d46d 100644
--- a/include/linux/usb/musb.h
+++ b/include/linux/usb/musb.h
@@ -104,6 +104,9 @@ struct musb_hdrc_platform_data {
 	/* for clk_get() */
 	const char	*clock;
 
+	/* phy device label */
+	const char	*phy_name;
+
 	/* (HOST or OTG) switch VBUS on/off */
 	int		(*set_vbus)(struct device *dev, int is_on);
 
-- 
1.7.10.4

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

* [RFC PATCH 2/4] usb: phy: add a new API to get PHY ref by label
  2013-05-17 13:22 [RFC PATCH 1/4] arm: omap: Add phy binding info for musb in plat data Kishon Vijay Abraham I
@ 2013-05-17 13:22 ` Kishon Vijay Abraham I
  2013-05-17 13:22 ` [RFC PATCH 3/4] usb: musb: omap: use the new API to get PHY reference " Kishon Vijay Abraham I
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 12+ messages in thread
From: Kishon Vijay Abraham I @ 2013-05-17 13:22 UTC (permalink / raw)
  To: tony, balbi, linux-arm-kernel, linux-omap, linux-kernel,
	linux-usb, tomi.valkeinen
  Cc: linux, eballetbo, javier, gregkh, Kishon Vijay Abraham I

After the devices are created using PLATFORM_DEVID_AUTO,
devm_usb_get_phy_dev and usb_get_phy_dev can't be used reliably
as it relies on the device_names passed in usb_bind_phy. So
added a new API to get the PHY reference by PHY label (PHY label
should be filled which creating the PHY).

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
---
 drivers/usb/phy/phy.c   |   78 +++++++++++++++++++++++++++++++++++++++++++++++
 include/linux/usb/phy.h |   16 ++++++++++
 2 files changed, 94 insertions(+)

diff --git a/drivers/usb/phy/phy.c b/drivers/usb/phy/phy.c
index a9984c7..0dfdc38 100644
--- a/drivers/usb/phy/phy.c
+++ b/drivers/usb/phy/phy.c
@@ -55,6 +55,21 @@ static struct usb_phy *__usb_find_phy_dev(struct device *dev,
 	return ERR_PTR(-ENODEV);
 }
 
+static struct usb_phy *__usb_find_phy_by_name(struct device *dev,
+	struct list_head *list, const char *name)
+{
+	struct usb_phy	*phy = NULL;
+
+	list_for_each_entry(phy, list, head) {
+		if (strcmp(name, phy->label))
+			continue;
+
+		return phy;
+	}
+
+	return ERR_PTR(-ENODEV);
+}
+
 static struct usb_phy *__of_usb_find_phy(struct device_node *node)
 {
 	struct usb_phy  *phy;
@@ -272,6 +287,69 @@ struct usb_phy *devm_usb_get_phy_dev(struct device *dev, u8 index)
 EXPORT_SYMBOL_GPL(devm_usb_get_phy_dev);
 
 /**
+ * usb_get_phy_by_name - find the USB PHY using device ptr and phy label
+ * @dev - device that requests this phy
+ * @name - the name of the phy
+ *
+ * Returns the phy driver, after getting a refcount to it; or
+ * -ENODEV if there is no such phy.  The caller is responsible for
+ * calling usb_put_phy() to release that count.
+ *
+ * For use by USB host and peripheral drivers.
+ */
+struct usb_phy *usb_get_phy_by_name(struct device *dev, const char *name)
+{
+	struct usb_phy	*phy = NULL;
+	unsigned long	flags;
+
+	spin_lock_irqsave(&phy_lock, flags);
+
+	phy = __usb_find_phy_by_name(dev, &phy_list, name);
+	if (IS_ERR(phy) || !try_module_get(phy->dev->driver->owner)) {
+		pr_err("unable to find transceiver\n");
+		goto err0;
+	}
+
+	get_device(phy->dev);
+
+err0:
+	spin_unlock_irqrestore(&phy_lock, flags);
+
+	return phy;
+}
+EXPORT_SYMBOL_GPL(usb_get_phy_by_name);
+
+/**
+ * devm_usb_get_phy_by_name - find the USB PHY using device ptr and phy label
+ * @dev - device that requests this phy
+ * @name - the label of the phy
+ *
+ * Gets the phy using usb_get_phy_by_name(), and associates a device with it
+ * using devres. On driver detach, release function is invoked on the devres
+ * data, then, devres data is freed.
+ *
+ * For use by USB host and peripheral drivers.
+ */
+struct usb_phy *devm_usb_get_phy_by_name(struct device *dev, const char *name)
+{
+	struct usb_phy **ptr, *phy;
+
+	ptr = devres_alloc(devm_usb_phy_release, sizeof(*ptr), GFP_KERNEL);
+	if (!ptr)
+		return NULL;
+
+	phy = usb_get_phy_by_name(dev, name);
+	if (!IS_ERR(phy)) {
+		*ptr = phy;
+		devres_add(dev, ptr);
+	} else
+		devres_free(ptr);
+
+	return phy;
+}
+EXPORT_SYMBOL_GPL(devm_usb_get_phy_by_name);
+
+/**
  * devm_usb_put_phy - release the USB PHY
  * @dev - device that wants to release this phy
  * @phy - the phy returned by devm_usb_get_phy()
diff --git a/include/linux/usb/phy.h b/include/linux/usb/phy.h
index 6b5978f..12fa4b1 100644
--- a/include/linux/usb/phy.h
+++ b/include/linux/usb/phy.h
@@ -188,6 +188,10 @@ extern struct usb_phy *devm_usb_get_phy(struct device *dev,
 	enum usb_phy_type type);
 extern struct usb_phy *usb_get_phy_dev(struct device *dev, u8 index);
 extern struct usb_phy *devm_usb_get_phy_dev(struct device *dev, u8 index);
+extern struct usb_phy *usb_get_phy_by_name(struct device *dev,
+	const char *name);
+extern struct usb_phy *devm_usb_get_phy_by_name(struct device *dev,
+	const char *name);
 extern struct usb_phy *devm_usb_get_phy_by_phandle(struct device *dev,
 	const char *phandle, u8 index);
 extern void usb_put_phy(struct usb_phy *);
@@ -216,6 +220,18 @@ static inline struct usb_phy *devm_usb_get_phy_dev(struct device *dev, u8 index)
 	return ERR_PTR(-ENXIO);
 }
 
+static inline struct usb_phy *usb_get_phy_by_name(struct device *dev,
+	const char *name)
+{
+	return ERR_PTR(-ENXIO);
+}
+
+static inline struct usb_phy *devm_usb_get_phy_by_name(struct device *dev,
+	const char *name)
+{
+	return ERR_PTR(-ENXIO);
+}
+
 static inline struct usb_phy *devm_usb_get_phy_by_phandle(struct device *dev,
 	const char *phandle, u8 index)
 {
-- 
1.7.10.4

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

* [RFC PATCH 3/4] usb: musb: omap: use the new API to get PHY reference by label
  2013-05-17 13:22 [RFC PATCH 1/4] arm: omap: Add phy binding info for musb in plat data Kishon Vijay Abraham I
  2013-05-17 13:22 ` [RFC PATCH 2/4] usb: phy: add a new API to get PHY ref by label Kishon Vijay Abraham I
@ 2013-05-17 13:22 ` Kishon Vijay Abraham I
  2013-05-17 13:22 ` [RFC PATCH 4/4] arm: omap: remove using usb_bind_phy for binding musb and phy Kishon Vijay Abraham I
  2013-05-28  5:18 ` [RFC PATCH 1/4] arm: omap: Add phy binding info for musb in plat data Kishon Vijay Abraham I
  3 siblings, 0 replies; 12+ messages in thread
From: Kishon Vijay Abraham I @ 2013-05-17 13:22 UTC (permalink / raw)
  To: tony, balbi, linux-arm-kernel, linux-omap, linux-kernel,
	linux-usb, tomi.valkeinen
  Cc: linux, eballetbo, javier, gregkh, Kishon Vijay Abraham I

After the devices are created using PLATFORM_DEVID_AUTO,
devm_usb_get_phy_dev and usb_get_phy_dev can't be used reliably
as it relies on the device_names passed in usb_bind_phy. So used the
new API devm_usb_get_phy_by_name to get the PHY reference.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
---
 drivers/usb/musb/musb_core.c |    1 +
 drivers/usb/musb/musb_core.h |    1 +
 drivers/usb/musb/omap2430.c  |    2 +-
 3 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
index 37a261a..00fbaf4 100644
--- a/drivers/usb/musb/musb_core.c
+++ b/drivers/usb/musb/musb_core.c
@@ -1864,6 +1864,7 @@ musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl)
 	musb->board_set_power = plat->set_power;
 	musb->min_power = plat->min_power;
 	musb->ops = plat->platform_ops;
+	musb->phy_name = plat->phy_name;
 
 	/* The musb_platform_init() call:
 	 *   - adjusts musb->mregs
diff --git a/drivers/usb/musb/musb_core.h b/drivers/usb/musb/musb_core.h
index 7fb4819..e9a9339 100644
--- a/drivers/usb/musb/musb_core.h
+++ b/drivers/usb/musb/musb_core.h
@@ -434,6 +434,7 @@ struct musb {
 	unsigned                double_buffer_not_ok:1;
 
 	struct musb_hdrc_config	*config;
+	const char		*phy_name;
 
 #ifdef MUSB_CONFIG_PROC_FS
 	struct proc_dir_entry *proc_entry;
diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c
index 3551f1a..be29aa7 100644
--- a/drivers/usb/musb/omap2430.c
+++ b/drivers/usb/musb/omap2430.c
@@ -352,7 +352,7 @@ static int omap2430_musb_init(struct musb *musb)
 		musb->xceiv = devm_usb_get_phy_by_phandle(dev->parent,
 		    "usb-phy", 0);
 	else
-		musb->xceiv = devm_usb_get_phy_dev(dev, 0);
+		musb->xceiv = devm_usb_get_phy_by_name(dev, musb->phy_name);
 
 	if (IS_ERR(musb->xceiv)) {
 		status = PTR_ERR(musb->xceiv);
-- 
1.7.10.4

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

* [RFC PATCH 4/4] arm: omap: remove using usb_bind_phy for binding musb and phy
  2013-05-17 13:22 [RFC PATCH 1/4] arm: omap: Add phy binding info for musb in plat data Kishon Vijay Abraham I
  2013-05-17 13:22 ` [RFC PATCH 2/4] usb: phy: add a new API to get PHY ref by label Kishon Vijay Abraham I
  2013-05-17 13:22 ` [RFC PATCH 3/4] usb: musb: omap: use the new API to get PHY reference " Kishon Vijay Abraham I
@ 2013-05-17 13:22 ` Kishon Vijay Abraham I
  2013-05-28  5:18 ` [RFC PATCH 1/4] arm: omap: Add phy binding info for musb in plat data Kishon Vijay Abraham I
  3 siblings, 0 replies; 12+ messages in thread
From: Kishon Vijay Abraham I @ 2013-05-17 13:22 UTC (permalink / raw)
  To: tony, balbi, linux-arm-kernel, linux-omap, linux-kernel,
	linux-usb, tomi.valkeinen
  Cc: eballetbo, gregkh, javier, linux, Kishon Vijay Abraham I

Now that MUSB for OMAP started using devm_usb_get_phy_by_name
which does not require PHY library to already have the binding
information, removed usb_bind_phy calls that binds the MUSB controller
with the PHY from the board files.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
---
 arch/arm/mach-omap2/board-2430sdp.c          |    1 -
 arch/arm/mach-omap2/board-3430sdp.c          |    1 -
 arch/arm/mach-omap2/board-4430sdp.c          |    1 -
 arch/arm/mach-omap2/board-cm-t35.c           |    1 -
 arch/arm/mach-omap2/board-devkit8000.c       |    1 -
 arch/arm/mach-omap2/board-igep0020.c         |    1 -
 arch/arm/mach-omap2/board-ldp.c              |    1 -
 arch/arm/mach-omap2/board-omap3beagle.c      |    1 -
 arch/arm/mach-omap2/board-omap3evm.c         |    1 -
 arch/arm/mach-omap2/board-omap3logic.c       |    1 -
 arch/arm/mach-omap2/board-omap3pandora.c     |    1 -
 arch/arm/mach-omap2/board-omap3stalker.c     |    1 -
 arch/arm/mach-omap2/board-omap3touchbook.c   |    1 -
 arch/arm/mach-omap2/board-omap4panda.c       |    1 -
 arch/arm/mach-omap2/board-overo.c            |    1 -
 arch/arm/mach-omap2/board-rm680.c            |    1 -
 arch/arm/mach-omap2/board-rx51.c             |    1 -
 arch/arm/mach-omap2/board-zoom-peripherals.c |    1 -
 18 files changed, 18 deletions(-)

diff --git a/arch/arm/mach-omap2/board-2430sdp.c b/arch/arm/mach-omap2/board-2430sdp.c
index 244d8a5..30d81f2 100644
--- a/arch/arm/mach-omap2/board-2430sdp.c
+++ b/arch/arm/mach-omap2/board-2430sdp.c
@@ -233,7 +233,6 @@ static void __init omap_2430sdp_init(void)
 	omap_hsmmc_init(mmc);
 
 	omap_mux_init_signal("usb0hs_stp", OMAP_PULL_ENA | OMAP_PULL_UP);
-	usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");
 	usb_musb_init(NULL);
 
 	board_smc91x_init();
diff --git a/arch/arm/mach-omap2/board-3430sdp.c b/arch/arm/mach-omap2/board-3430sdp.c
index 23b004a..7f431b4 100644
--- a/arch/arm/mach-omap2/board-3430sdp.c
+++ b/arch/arm/mach-omap2/board-3430sdp.c
@@ -590,7 +590,6 @@ static void __init omap_3430sdp_init(void)
 	omap_ads7846_init(1, gpio_pendown, 310, NULL);
 	omap_serial_init();
 	omap_sdrc_init(hyb18m512160af6_sdrc_params, NULL);
-	usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");
 	usb_musb_init(NULL);
 	board_smc91x_init();
 	board_flash_init(sdp_flash_partitions, chip_sel_3430, 0);
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
index 56a9a4f..5a05b5a 100644
--- a/arch/arm/mach-omap2/board-4430sdp.c
+++ b/arch/arm/mach-omap2/board-4430sdp.c
@@ -730,7 +730,6 @@ static void __init omap_4430sdp_init(void)
 	omap4_sdp4430_wifi_init();
 	omap4_twl6030_hsmmc_init(mmc);
 
-	usb_bind_phy("musb-hdrc.2.auto", 0, "omap-usb2.3.auto");
 	usb_musb_init(&musb_board_data);
 
 	status = omap_ethernet_init();
diff --git a/arch/arm/mach-omap2/board-cm-t35.c b/arch/arm/mach-omap2/board-cm-t35.c
index ee6218c..f9b4241 100644
--- a/arch/arm/mach-omap2/board-cm-t35.c
+++ b/arch/arm/mach-omap2/board-cm-t35.c
@@ -690,7 +690,6 @@ static void __init cm_t3x_common_init(void)
 	cm_t35_init_display();
 	omap_twl4030_audio_init("cm-t3x", NULL);
 
-	usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");
 	usb_musb_init(NULL);
 	cm_t35_init_usbh();
 	cm_t35_init_camera();
diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-omap2/board-devkit8000.c
index 5764205..8d24aab 100644
--- a/arch/arm/mach-omap2/board-devkit8000.c
+++ b/arch/arm/mach-omap2/board-devkit8000.c
@@ -593,7 +593,6 @@ static void __init devkit8000_init(void)
 
 	omap_ads7846_init(2, OMAP3_DEVKIT_TS_GPIO, 0, NULL);
 
-	usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");
 	usb_musb_init(NULL);
 	usbhs_init(&usbhs_bdata);
 	board_nand_init(devkit8000_nand_partitions,
diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-omap2/board-igep0020.c
index b54562d..5451c9c 100644
--- a/arch/arm/mach-omap2/board-igep0020.c
+++ b/arch/arm/mach-omap2/board-igep0020.c
@@ -628,7 +628,6 @@ static void __init igep_init(void)
 	omap_serial_init();
 	omap_sdrc_init(m65kxxxxam_sdrc_params,
 				  m65kxxxxam_sdrc_params);
-	usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");
 	usb_musb_init(NULL);
 
 	igep_flash_init();
diff --git a/arch/arm/mach-omap2/board-ldp.c b/arch/arm/mach-omap2/board-ldp.c
index d0d17bc..07423f2 100644
--- a/arch/arm/mach-omap2/board-ldp.c
+++ b/arch/arm/mach-omap2/board-ldp.c
@@ -376,7 +376,6 @@ static void __init omap_ldp_init(void)
 	omap_ads7846_init(1, 54, 310, NULL);
 	omap_serial_init();
 	omap_sdrc_init(NULL, NULL);
-	usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");
 	usb_musb_init(NULL);
 	board_nand_init(ldp_nand_partitions, ARRAY_SIZE(ldp_nand_partitions),
 			ZOOM_NAND_CS, 0, nand_default_timings);
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
index 04c1165..47d7dd7 100644
--- a/arch/arm/mach-omap2/board-omap3beagle.c
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
@@ -551,7 +551,6 @@ static void __init omap3_beagle_init(void)
 	omap_sdrc_init(mt46h32m32lf6_sdrc_params,
 				  mt46h32m32lf6_sdrc_params);
 
-	usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");
 	usb_musb_init(NULL);
 
 	usbhs_init(&usbhs_bdata);
diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c
index f76d0de..87ec1bf 100644
--- a/arch/arm/mach-omap2/board-omap3evm.c
+++ b/arch/arm/mach-omap2/board-omap3evm.c
@@ -704,7 +704,6 @@ static void __init omap3_evm_init(void)
 		omap_mux_init_gpio(135, OMAP_PIN_OUTPUT);
 		phy_data[0].reset_gpio = 135;
 	}
-	usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");
 	usb_musb_init(&musb_board_data);
 
 	usbhs_init_phys(phy_data, ARRAY_SIZE(phy_data));
diff --git a/arch/arm/mach-omap2/board-omap3logic.c b/arch/arm/mach-omap2/board-omap3logic.c
index bab51e6..16e4e2a 100644
--- a/arch/arm/mach-omap2/board-omap3logic.c
+++ b/arch/arm/mach-omap2/board-omap3logic.c
@@ -216,7 +216,6 @@ static void __init omap3logic_init(void)
 	board_mmc_init();
 	board_smsc911x_init();
 
-	usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");
 	usb_musb_init(NULL);
 
 	/* Ensure SDRC pins are mux'd for self-refresh */
diff --git a/arch/arm/mach-omap2/board-omap3pandora.c b/arch/arm/mach-omap2/board-omap3pandora.c
index 28133d5..6f730df 100644
--- a/arch/arm/mach-omap2/board-omap3pandora.c
+++ b/arch/arm/mach-omap2/board-omap3pandora.c
@@ -610,7 +610,6 @@ static void __init omap3pandora_init(void)
 	usbhs_init_phys(phy_data, ARRAY_SIZE(phy_data));
 	usbhs_init(&usbhs_bdata);
 
-	usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");
 	usb_musb_init(NULL);
 	gpmc_nand_init(&pandora_nand_data, NULL);
 
diff --git a/arch/arm/mach-omap2/board-omap3stalker.c b/arch/arm/mach-omap2/board-omap3stalker.c
index d37e6b1..6f6fc92 100644
--- a/arch/arm/mach-omap2/board-omap3stalker.c
+++ b/arch/arm/mach-omap2/board-omap3stalker.c
@@ -394,7 +394,6 @@ static void __init omap3_stalker_init(void)
 
 	omap_serial_init();
 	omap_sdrc_init(mt46h32m32lf6_sdrc_params, NULL);
-	usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");
 	usb_musb_init(NULL);
 
 	usbhs_init_phys(phy_data, ARRAY_SIZE(phy_data));
diff --git a/arch/arm/mach-omap2/board-omap3touchbook.c b/arch/arm/mach-omap2/board-omap3touchbook.c
index 7da48bc..bbff6de 100644
--- a/arch/arm/mach-omap2/board-omap3touchbook.c
+++ b/arch/arm/mach-omap2/board-omap3touchbook.c
@@ -367,7 +367,6 @@ static void __init omap3_touchbook_init(void)
 
 	/* Touchscreen and accelerometer */
 	omap_ads7846_init(4, OMAP3_TS_GPIO, 310, &ads7846_pdata);
-	usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");
 	usb_musb_init(NULL);
 
 	usbhs_init_phys(phy_data, ARRAY_SIZE(phy_data));
diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c
index 1e2c75e..7eca390 100644
--- a/arch/arm/mach-omap2/board-omap4panda.c
+++ b/arch/arm/mach-omap2/board-omap4panda.c
@@ -435,7 +435,6 @@ static void __init omap4_panda_init(void)
 	omap_sdrc_init(NULL, NULL);
 	omap4_twl6030_hsmmc_init(mmc);
 	omap4_ehci_init();
-	usb_bind_phy("musb-hdrc.2.auto", 0, "omap-usb2.3.auto");
 	usb_musb_init(&musb_board_data);
 	omap4_panda_display_init();
 }
diff --git a/arch/arm/mach-omap2/board-overo.c b/arch/arm/mach-omap2/board-overo.c
index 4ca6b68..d67ad70 100644
--- a/arch/arm/mach-omap2/board-overo.c
+++ b/arch/arm/mach-omap2/board-overo.c
@@ -472,7 +472,6 @@ static void __init overo_init(void)
 				  mt46h32m32lf6_sdrc_params);
 	board_nand_init(overo_nand_partitions,
 			ARRAY_SIZE(overo_nand_partitions), NAND_CS, 0, NULL);
-	usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");
 	usb_musb_init(NULL);
 
 	usbhs_init_phys(phy_data, ARRAY_SIZE(phy_data));
diff --git a/arch/arm/mach-omap2/board-rm680.c b/arch/arm/mach-omap2/board-rm680.c
index 345e8c4..cadeb5c 100644
--- a/arch/arm/mach-omap2/board-rm680.c
+++ b/arch/arm/mach-omap2/board-rm680.c
@@ -135,7 +135,6 @@ static void __init rm680_init(void)
 	sdrc_params = nokia_get_sdram_timings();
 	omap_sdrc_init(sdrc_params, sdrc_params);
 
-	usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");
 	usb_musb_init(NULL);
 	rm680_peripherals_init();
 }
diff --git a/arch/arm/mach-omap2/board-rx51.c b/arch/arm/mach-omap2/board-rx51.c
index d2ea68e..0d16d37 100644
--- a/arch/arm/mach-omap2/board-rx51.c
+++ b/arch/arm/mach-omap2/board-rx51.c
@@ -99,7 +99,6 @@ static void __init rx51_init(void)
 	sdrc_params = nokia_get_sdram_timings();
 	omap_sdrc_init(sdrc_params, sdrc_params);
 
-	usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");
 	usb_musb_init(&musb_board_data);
 	rx51_peripherals_init();
 
diff --git a/arch/arm/mach-omap2/board-zoom-peripherals.c b/arch/arm/mach-omap2/board-zoom-peripherals.c
index a90375d..d05db2d 100644
--- a/arch/arm/mach-omap2/board-zoom-peripherals.c
+++ b/arch/arm/mach-omap2/board-zoom-peripherals.c
@@ -353,7 +353,6 @@ void __init zoom_peripherals_init(void)
 	omap_i2c_init();
 	pwm_add_table(zoom_pwm_lookup, ARRAY_SIZE(zoom_pwm_lookup));
 	platform_add_devices(zoom_devices, ARRAY_SIZE(zoom_devices));
-	usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");
 	usb_musb_init(NULL);
 	enable_board_wakeup_source();
 	omap_serial_init();
-- 
1.7.10.4

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

* Re: [RFC PATCH 1/4] arm: omap: Add phy binding info for musb in plat data
  2013-05-17 13:22 [RFC PATCH 1/4] arm: omap: Add phy binding info for musb in plat data Kishon Vijay Abraham I
                   ` (2 preceding siblings ...)
  2013-05-17 13:22 ` [RFC PATCH 4/4] arm: omap: remove using usb_bind_phy for binding musb and phy Kishon Vijay Abraham I
@ 2013-05-28  5:18 ` Kishon Vijay Abraham I
  2013-06-13 13:05   ` Tomi Valkeinen
  3 siblings, 1 reply; 12+ messages in thread
From: Kishon Vijay Abraham I @ 2013-05-28  5:18 UTC (permalink / raw)
  To: Kishon Vijay Abraham I, tony
  Cc: linux, eballetbo, gregkh, linux-usb, linux-kernel, balbi,
	tomi.valkeinen, javier, linux-omap, linux-arm-kernel

Hi Tony,

On Friday 17 May 2013 06:52 PM, Kishon Vijay Abraham I wrote:
> In order for controllers to get PHY in case of non dt boot, the phy
> binding information (phy label) should be added in the platform
> data of the controller.

This series would be needed to get MUSB working in OMAP3 boards for 
non-dt boot case. Do you think this is good enough to go in this rc cycle?

Thanks
Kishon

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

* Re: [RFC PATCH 1/4] arm: omap: Add phy binding info for musb in plat data
  2013-05-28  5:18 ` [RFC PATCH 1/4] arm: omap: Add phy binding info for musb in plat data Kishon Vijay Abraham I
@ 2013-06-13 13:05   ` Tomi Valkeinen
  2013-06-14  5:35     ` Kishon Vijay Abraham I
  0 siblings, 1 reply; 12+ messages in thread
From: Tomi Valkeinen @ 2013-06-13 13:05 UTC (permalink / raw)
  To: Kishon Vijay Abraham I, tony
  Cc: linux, eballetbo, gregkh, linux-usb, linux-kernel, balbi, javier,
	linux-omap, linux-arm-kernel


[-- Attachment #1.1: Type: text/plain, Size: 586 bytes --]

Hi,

On 28/05/13 08:18, Kishon Vijay Abraham I wrote:
> Hi Tony,
> 
> On Friday 17 May 2013 06:52 PM, Kishon Vijay Abraham I wrote:
>> In order for controllers to get PHY in case of non dt boot, the phy
>> binding information (phy label) should be added in the platform
>> data of the controller.
> 
> This series would be needed to get MUSB working in OMAP3 boards for
> non-dt boot case. Do you think this is good enough to go in this rc cycle?

Did this or some other solution go forward? I'm still unable to boot
with usb-gadget-ethernet with v3.10-rc5.

 Tomi



[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 901 bytes --]

[-- Attachment #2: Type: text/plain, Size: 176 bytes --]

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* Re: [RFC PATCH 1/4] arm: omap: Add phy binding info for musb in plat data
  2013-06-13 13:05   ` Tomi Valkeinen
@ 2013-06-14  5:35     ` Kishon Vijay Abraham I
  2013-06-14  5:47       ` Tony Lindgren
  0 siblings, 1 reply; 12+ messages in thread
From: Kishon Vijay Abraham I @ 2013-06-14  5:35 UTC (permalink / raw)
  To: Tomi Valkeinen
  Cc: tony, balbi, linux-arm-kernel, linux-omap, linux-kernel,
	linux-usb, linux, eballetbo, javier, gregkh

Hi,

On Thursday 13 June 2013 06:35 PM, Tomi Valkeinen wrote:
> Hi,
>
> On 28/05/13 08:18, Kishon Vijay Abraham I wrote:
>> Hi Tony,
>>
>> On Friday 17 May 2013 06:52 PM, Kishon Vijay Abraham I wrote:
>>> In order for controllers to get PHY in case of non dt boot, the phy
>>> binding information (phy label) should be added in the platform
>>> data of the controller.
>>
>> This series would be needed to get MUSB working in OMAP3 boards for
>> non-dt boot case. Do you think this is good enough to go in this rc cycle?
>
> Did this or some other solution go forward? I'm still unable to boot
> with usb-gadget-ethernet with v3.10-rc5.

No. I think Tony is ok to take this only during next merge window.

Thanks
Kishon

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

* Re: [RFC PATCH 1/4] arm: omap: Add phy binding info for musb in plat data
  2013-06-14  5:35     ` Kishon Vijay Abraham I
@ 2013-06-14  5:47       ` Tony Lindgren
  2013-06-14  6:36         ` Tomi Valkeinen
  0 siblings, 1 reply; 12+ messages in thread
From: Tony Lindgren @ 2013-06-14  5:47 UTC (permalink / raw)
  To: Kishon Vijay Abraham I
  Cc: Tomi Valkeinen, balbi, linux-arm-kernel, linux-omap,
	linux-kernel, linux-usb, linux, eballetbo, javier, gregkh

* Kishon Vijay Abraham I <kishon@ti.com> [130613 22:41]:
> Hi,
> 
> On Thursday 13 June 2013 06:35 PM, Tomi Valkeinen wrote:
> >Hi,
> >
> >On 28/05/13 08:18, Kishon Vijay Abraham I wrote:
> >>Hi Tony,
> >>
> >>On Friday 17 May 2013 06:52 PM, Kishon Vijay Abraham I wrote:
> >>>In order for controllers to get PHY in case of non dt boot, the phy
> >>>binding information (phy label) should be added in the platform
> >>>data of the controller.
> >>
> >>This series would be needed to get MUSB working in OMAP3 boards for
> >>non-dt boot case. Do you think this is good enough to go in this rc cycle?
> >
> >Did this or some other solution go forward? I'm still unable to boot
> >with usb-gadget-ethernet with v3.10-rc5.
> 
> No. I think Tony is ok to take this only during next merge window.

Yes I'll apply them to omap-for-v3.11/fixes-non-critical. We really
should have basic functionaly tested and working always before the
merge window so we only need to do minimal fixes during the -rc cycle.

Regards,

Tony

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

* Re: [RFC PATCH 1/4] arm: omap: Add phy binding info for musb in plat data
  2013-06-14  5:47       ` Tony Lindgren
@ 2013-06-14  6:36         ` Tomi Valkeinen
  2013-06-14  7:33           ` Tony Lindgren
  0 siblings, 1 reply; 12+ messages in thread
From: Tomi Valkeinen @ 2013-06-14  6:36 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: Kishon Vijay Abraham I, balbi, linux-arm-kernel, linux-omap,
	linux-kernel, linux-usb, linux, eballetbo, javier, gregkh

[-- Attachment #1: Type: text/plain, Size: 1388 bytes --]

On 14/06/13 08:47, Tony Lindgren wrote:
> * Kishon Vijay Abraham I <kishon@ti.com> [130613 22:41]:
>> Hi,
>>
>> On Thursday 13 June 2013 06:35 PM, Tomi Valkeinen wrote:
>>> Hi,
>>>
>>> On 28/05/13 08:18, Kishon Vijay Abraham I wrote:
>>>> Hi Tony,
>>>>
>>>> On Friday 17 May 2013 06:52 PM, Kishon Vijay Abraham I wrote:
>>>>> In order for controllers to get PHY in case of non dt boot, the phy
>>>>> binding information (phy label) should be added in the platform
>>>>> data of the controller.
>>>>
>>>> This series would be needed to get MUSB working in OMAP3 boards for
>>>> non-dt boot case. Do you think this is good enough to go in this rc cycle?
>>>
>>> Did this or some other solution go forward? I'm still unable to boot
>>> with usb-gadget-ethernet with v3.10-rc5.
>>
>> No. I think Tony is ok to take this only during next merge window.
> 
> Yes I'll apply them to omap-for-v3.11/fixes-non-critical. We really
> should have basic functionaly tested and working always before the
> merge window so we only need to do minimal fixes during the -rc cycle.

I'm mostly interested in the USB gadget ethernet for the boards I have,
but if I'm not mistaken, all USB gadget support for many OMAP boards is
broken in v3.10. Shouldn't that be fixed, no matter if it's a minimal
fix or not? Or is there some other, more minimal, way to fix this?

 Tomi



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 901 bytes --]

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

* Re: [RFC PATCH 1/4] arm: omap: Add phy binding info for musb in plat data
  2013-06-14  6:36         ` Tomi Valkeinen
@ 2013-06-14  7:33           ` Tony Lindgren
       [not found]             ` <20130614073314.GA20992-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
  0 siblings, 1 reply; 12+ messages in thread
From: Tony Lindgren @ 2013-06-14  7:33 UTC (permalink / raw)
  To: Tomi Valkeinen
  Cc: Kishon Vijay Abraham I, balbi, linux-arm-kernel, linux-omap,
	linux-kernel, linux-usb, linux, eballetbo, javier, gregkh

* Tomi Valkeinen <tomi.valkeinen@ti.com> [130613 23:42]:
> On 14/06/13 08:47, Tony Lindgren wrote:
> > * Kishon Vijay Abraham I <kishon@ti.com> [130613 22:41]:
> >> Hi,
> >>
> >> On Thursday 13 June 2013 06:35 PM, Tomi Valkeinen wrote:
> >>> Hi,
> >>>
> >>> On 28/05/13 08:18, Kishon Vijay Abraham I wrote:
> >>>> Hi Tony,
> >>>>
> >>>> On Friday 17 May 2013 06:52 PM, Kishon Vijay Abraham I wrote:
> >>>>> In order for controllers to get PHY in case of non dt boot, the phy
> >>>>> binding information (phy label) should be added in the platform
> >>>>> data of the controller.
> >>>>
> >>>> This series would be needed to get MUSB working in OMAP3 boards for
> >>>> non-dt boot case. Do you think this is good enough to go in this rc cycle?
> >>>
> >>> Did this or some other solution go forward? I'm still unable to boot
> >>> with usb-gadget-ethernet with v3.10-rc5.
> >>
> >> No. I think Tony is ok to take this only during next merge window.
> > 
> > Yes I'll apply them to omap-for-v3.11/fixes-non-critical. We really
> > should have basic functionaly tested and working always before the
> > merge window so we only need to do minimal fixes during the -rc cycle.
> 
> I'm mostly interested in the USB gadget ethernet for the boards I have,
> but if I'm not mistaken, all USB gadget support for many OMAP boards is
> broken in v3.10. Shouldn't that be fixed, no matter if it's a minimal
> fix or not? Or is there some other, more minimal, way to fix this?

Yes it's unfortunate it's broken. But frankly I'm pretty tired of this
constant fixing up of basic things for omaps after every merge window.

If some patches are not tested properly, then everybody,
_do_not_try_to_merge_broken_patches_upstream_. Let them float on the
mailing lists until they get fixed or forgotten. Simple as that.

If we want to fix something this late in the merge window, the patches
must have a clear description what caused the regression and what happens
without the patches. These patches don't have that. And they are marked
RFC also. So actually I'm not applying any of them before the regression
descriptions are there and the patches have been reposted without RFC
and have sufficient acks from people.

Regards,

Tony

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

* Re: [RFC PATCH 1/4] arm: omap: Add phy binding info for musb in plat data
       [not found]             ` <20130614073314.GA20992-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
@ 2013-06-14  8:17               ` Tomi Valkeinen
  2013-06-14  9:21                 ` Kishon Vijay Abraham I
  0 siblings, 1 reply; 12+ messages in thread
From: Tomi Valkeinen @ 2013-06-14  8:17 UTC (permalink / raw)
  To: Kishon Vijay Abraham I
  Cc: Tony Lindgren, balbi-l0cyMroinI0,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linux-omap-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	linux-usb-u79uwXL29TY76Z2rM5mHXA, linux-lFZ/pmaqli7XmaaqVzeoHQ,
	eballetbo-Re5JQEeQqe8AvxtiuMwx3w, javier-0uQlZySMnqxg9hUCZPvPmw,
	gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r

[-- Attachment #1: Type: text/plain, Size: 874 bytes --]

On 14/06/13 10:33, Tony Lindgren wrote:

> If we want to fix something this late in the merge window, the patches
> must have a clear description what caused the regression and what happens
> without the patches. These patches don't have that. And they are marked
> RFC also. So actually I'm not applying any of them before the regression
> descriptions are there and the patches have been reposted without RFC
> and have sufficient acks from people.

No disagreement there.

Kishon, I tested the patches on top of v3.10-rc5, booting with nfs root
via usb gadget eth:

Overo: works
Beagle: works, but I need to reconnect the usb cable after kernel is up
Beagle-xm: doesn't work. The cable is detected correctly, though
Panda: works

The problems with Beagles are there even without these patches, so they
do make things better (fix Overo).

 Tomi



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 901 bytes --]

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

* Re: [RFC PATCH 1/4] arm: omap: Add phy binding info for musb in plat data
  2013-06-14  8:17               ` Tomi Valkeinen
@ 2013-06-14  9:21                 ` Kishon Vijay Abraham I
  0 siblings, 0 replies; 12+ messages in thread
From: Kishon Vijay Abraham I @ 2013-06-14  9:21 UTC (permalink / raw)
  To: Tomi Valkeinen, balbi
  Cc: Tony Lindgren, linux-arm-kernel, linux-omap, linux-kernel,
	linux-usb, linux, eballetbo, javier, gregkh

Hi,

On Friday 14 June 2013 01:47 PM, Tomi Valkeinen wrote:
> On 14/06/13 10:33, Tony Lindgren wrote:
>
>> If we want to fix something this late in the merge window, the patches
>> must have a clear description what caused the regression and what happens
>> without the patches. These patches don't have that. And they are marked
>> RFC also. So actually I'm not applying any of them before the regression
>> descriptions are there and the patches have been reposted without RFC
>> and have sufficient acks from people.

I posted this as RFC since this series uses _label_ and initially Felipe 
din't want to find PHYs by _label_.
After the device names are created using PLATFORM_DEVID_AUTO, our 
original method of binding by device names doesn't work reliable (since 
the device name changes). And I couldn't think of any other way to find 
the PHY other than using _label_. So I just wanted to know if it's ok to 
use _label_ or if there is any other better way to find PHYs.

>
> No disagreement there.
>
> Kishon, I tested the patches on top of v3.10-rc5, booting with nfs root
> via usb gadget eth:
>
> Overo: works
> Beagle: works, but I need to reconnect the usb cable after kernel is up
> Beagle-xm: doesn't work. The cable is detected correctly, though
> Panda: works
>
> The problems with Beagles are there even without these patches, so they
> do make things better (fix Overo).

Thanks for testing this. I'll post a new version removing RFC after 
Felipe ACKs it.

Thanks
Kishon

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

end of thread, other threads:[~2013-06-14  9:21 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-05-17 13:22 [RFC PATCH 1/4] arm: omap: Add phy binding info for musb in plat data Kishon Vijay Abraham I
2013-05-17 13:22 ` [RFC PATCH 2/4] usb: phy: add a new API to get PHY ref by label Kishon Vijay Abraham I
2013-05-17 13:22 ` [RFC PATCH 3/4] usb: musb: omap: use the new API to get PHY reference " Kishon Vijay Abraham I
2013-05-17 13:22 ` [RFC PATCH 4/4] arm: omap: remove using usb_bind_phy for binding musb and phy Kishon Vijay Abraham I
2013-05-28  5:18 ` [RFC PATCH 1/4] arm: omap: Add phy binding info for musb in plat data Kishon Vijay Abraham I
2013-06-13 13:05   ` Tomi Valkeinen
2013-06-14  5:35     ` Kishon Vijay Abraham I
2013-06-14  5:47       ` Tony Lindgren
2013-06-14  6:36         ` Tomi Valkeinen
2013-06-14  7:33           ` Tony Lindgren
     [not found]             ` <20130614073314.GA20992-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2013-06-14  8:17               ` Tomi Valkeinen
2013-06-14  9: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).