* [PATCH 0/7] musb: sunxi: Add support for run-time changing dr-mode through sysfs
@ 2016-08-14 18:27 Hans de Goede
2016-08-14 18:27 ` [PATCH 1/7] phy-sun4i-usb: Use bool where appropriate Hans de Goede
` (6 more replies)
0 siblings, 7 replies; 8+ messages in thread
From: Hans de Goede @ 2016-08-14 18:27 UTC (permalink / raw)
To: linux-arm-kernel
Hi All,
Here is a patch series which implements run-time changing the dr-mode
of sunxi musb controllers through the (already existing) musb "mode"
sysfs attribute.
This is useful on boards where there is no id pin, e.g. some tv-boxes
use the musb controller to get an extra usb A port without needing
a hub chip. Except for the missing id pin when using a usb A<->A cable
these ports can do peripheral mode just fine. This series makes it
possible to do e.g. this by doing echo "peripheral" > mode before
plugging in the usb A<->A cable.
This series has both sun4i-usb-phy driver and sunxi-musb-glue changes,
both are necessary for the run-time changing to work, but they can be
merged independently without breaking anything.
Please review (and if no issues are found merge).
Thanks & Regards,
Hans
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 1/7] phy-sun4i-usb: Use bool where appropriate
2016-08-14 18:27 [PATCH 0/7] musb: sunxi: Add support for run-time changing dr-mode through sysfs Hans de Goede
@ 2016-08-14 18:27 ` Hans de Goede
2016-08-14 18:27 ` [PATCH 2/7] phy-sun4i-usb: Refactor forced session ending Hans de Goede
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Hans de Goede @ 2016-08-14 18:27 UTC (permalink / raw)
To: linux-arm-kernel
We're using bool as true/false type in most places in phy-sun4i-usb.c
for consistency fixup the remaining uses of ints which are ever only
0 or 1 to be bools too.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
drivers/phy/phy-sun4i-usb.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/phy/phy-sun4i-usb.c b/drivers/phy/phy-sun4i-usb.c
index fcf4d95e..1cb84a8 100644
--- a/drivers/phy/phy-sun4i-usb.c
+++ b/drivers/phy/phy-sun4i-usb.c
@@ -445,7 +445,8 @@ static void sun4i_usb_phy0_id_vbus_det_scan(struct work_struct *work)
struct sun4i_usb_phy_data *data =
container_of(work, struct sun4i_usb_phy_data, detect.work);
struct phy *phy0 = data->phys[0].phy;
- int id_det, vbus_det, id_notify = 0, vbus_notify = 0;
+ bool id_notify = false, vbus_notify = false;
+ int id_det, vbus_det;
if (phy0 == NULL)
return;
@@ -474,13 +475,13 @@ static void sun4i_usb_phy0_id_vbus_det_scan(struct work_struct *work)
}
sun4i_usb_phy0_set_id_detect(phy0, id_det);
data->id_det = id_det;
- id_notify = 1;
+ id_notify = true;
}
if (vbus_det != data->vbus_det) {
sun4i_usb_phy0_set_vbus_detect(phy0, vbus_det);
data->vbus_det = vbus_det;
- vbus_notify = 1;
+ vbus_notify = true;
}
mutex_unlock(&phy0->mutex);
--
2.7.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/7] phy-sun4i-usb: Refactor forced session ending
2016-08-14 18:27 [PATCH 0/7] musb: sunxi: Add support for run-time changing dr-mode through sysfs Hans de Goede
2016-08-14 18:27 ` [PATCH 1/7] phy-sun4i-usb: Use bool where appropriate Hans de Goede
@ 2016-08-14 18:27 ` Hans de Goede
2016-08-14 18:27 ` [PATCH 3/7] phy-sun4i-usb: Simplify missing dr_mode handling Hans de Goede
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Hans de Goede @ 2016-08-14 18:27 UTC (permalink / raw)
To: linux-arm-kernel
The phy-sun4i-usb code supports forced ending a session on systems
which lack Vbus detection, to allow switching between host and peripheral
mode on such systems.
Role switching via the musb driver "mode" sysfs attribute requires force
ending the session too. This commit refactors the code to allow other
parts of the phy-sun4i-usb code to request a forced session end.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
drivers/phy/phy-sun4i-usb.c | 27 +++++++++++++--------------
1 file changed, 13 insertions(+), 14 deletions(-)
diff --git a/drivers/phy/phy-sun4i-usb.c b/drivers/phy/phy-sun4i-usb.c
index 1cb84a8..02cb65e 100644
--- a/drivers/phy/phy-sun4i-usb.c
+++ b/drivers/phy/phy-sun4i-usb.c
@@ -133,6 +133,7 @@ struct sun4i_usb_phy_data {
struct power_supply *vbus_power_supply;
struct notifier_block vbus_power_nb;
bool vbus_power_nb_registered;
+ bool force_session_end;
int id_det_irq;
int vbus_det_irq;
int id_det;
@@ -445,7 +446,7 @@ static void sun4i_usb_phy0_id_vbus_det_scan(struct work_struct *work)
struct sun4i_usb_phy_data *data =
container_of(work, struct sun4i_usb_phy_data, detect.work);
struct phy *phy0 = data->phys[0].phy;
- bool id_notify = false, vbus_notify = false;
+ bool force_session_end, id_notify = false, vbus_notify = false;
int id_det, vbus_det;
if (phy0 == NULL)
@@ -461,14 +462,17 @@ static void sun4i_usb_phy0_id_vbus_det_scan(struct work_struct *work)
return;
}
+ force_session_end = data->force_session_end;
+ data->force_session_end = false;
+
if (id_det != data->id_det) {
- /*
- * When a host cable (id == 0) gets plugged in on systems
- * without vbus detection report vbus low for long enough for
- * the musb-ip to end the current device session.
- */
+ /* id-change, force session end if we've no vbus detection */
if (data->dr_mode == USB_DR_MODE_OTG &&
- !sun4i_usb_phy0_have_vbus_det(data) && id_det == 0) {
+ !sun4i_usb_phy0_have_vbus_det(data))
+ force_session_end = true;
+
+ /* When entering host mode (id = 0) force end the session now */
+ if (force_session_end && id_det == 0) {
sun4i_usb_phy0_set_vbus_detect(phy0, 0);
msleep(200);
sun4i_usb_phy0_set_vbus_detect(phy0, 1);
@@ -489,13 +493,8 @@ static void sun4i_usb_phy0_id_vbus_det_scan(struct work_struct *work)
if (id_notify) {
extcon_set_cable_state_(data->extcon, EXTCON_USB_HOST,
!id_det);
- /*
- * When a host cable gets unplugged (id == 1) on systems
- * without vbus detection report vbus low for long enough to
- * the musb-ip to end the current host session.
- */
- if (data->dr_mode == USB_DR_MODE_OTG &&
- !sun4i_usb_phy0_have_vbus_det(data) && id_det == 1) {
+ /* When leaving host mode force end the session here */
+ if (force_session_end && id_det == 1) {
mutex_lock(&phy0->mutex);
sun4i_usb_phy0_set_vbus_detect(phy0, 0);
msleep(1000);
--
2.7.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 3/7] phy-sun4i-usb: Simplify missing dr_mode handling
2016-08-14 18:27 [PATCH 0/7] musb: sunxi: Add support for run-time changing dr-mode through sysfs Hans de Goede
2016-08-14 18:27 ` [PATCH 1/7] phy-sun4i-usb: Use bool where appropriate Hans de Goede
2016-08-14 18:27 ` [PATCH 2/7] phy-sun4i-usb: Refactor forced session ending Hans de Goede
@ 2016-08-14 18:27 ` Hans de Goede
2016-08-14 18:27 ` [PATCH 4/7] phy-sun4i-usb: Add support for phy_set_mode Hans de Goede
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Hans de Goede @ 2016-08-14 18:27 UTC (permalink / raw)
To: linux-arm-kernel
If we cannot get dr_mode or no id gpio is specified simply assume
peripheral mode, as this is always safe.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
drivers/phy/phy-sun4i-usb.c | 43 ++++++++++++++-----------------------------
1 file changed, 14 insertions(+), 29 deletions(-)
diff --git a/drivers/phy/phy-sun4i-usb.c b/drivers/phy/phy-sun4i-usb.c
index 02cb65e..d0f6e30 100644
--- a/drivers/phy/phy-sun4i-usb.c
+++ b/drivers/phy/phy-sun4i-usb.c
@@ -124,7 +124,6 @@ struct sun4i_usb_phy_data {
bool regulator_on;
int index;
} phys[MAX_PHYS];
- int first_phy;
/* phy0 / otg related variables */
struct extcon_dev *extcon;
bool phy0_init;
@@ -325,10 +324,12 @@ static int sun4i_usb_phy_exit(struct phy *_phy)
static int sun4i_usb_phy0_get_id_det(struct sun4i_usb_phy_data *data)
{
switch (data->dr_mode) {
- case USB_DR_MODE_OTG:
- return gpiod_get_value_cansleep(data->id_det_gpio);
case USB_DR_MODE_HOST:
return 0;
+ case USB_DR_MODE_OTG:
+ if (data->id_det_gpio)
+ return gpiod_get_value_cansleep(data->id_det_gpio);
+ /* Fallback to peripheral mode */
case USB_DR_MODE_PERIPHERAL:
default:
return 1;
@@ -539,8 +540,7 @@ static struct phy *sun4i_usb_phy_xlate(struct device *dev,
{
struct sun4i_usb_phy_data *data = dev_get_drvdata(dev);
- if (args->args[0] < data->first_phy ||
- args->args[0] >= data->cfg->num_phys)
+ if (args->args[0] >= data->cfg->num_phys)
return ERR_PTR(-ENODEV);
return data->phys[args->args[0]].phy;
@@ -615,33 +615,18 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev)
}
data->dr_mode = of_usb_get_dr_mode_by_phy(np, 0);
- switch (data->dr_mode) {
- case USB_DR_MODE_OTG:
- /* otg without id_det makes no sense, and is not supported */
- if (!data->id_det_gpio) {
- dev_err(dev, "usb0_id_det missing or invalid\n");
- return -ENODEV;
- }
- /* fall through */
- case USB_DR_MODE_HOST:
- case USB_DR_MODE_PERIPHERAL:
- data->extcon = devm_extcon_dev_allocate(dev,
- sun4i_usb_phy0_cable);
- if (IS_ERR(data->extcon))
- return PTR_ERR(data->extcon);
- ret = devm_extcon_dev_register(dev, data->extcon);
- if (ret) {
- dev_err(dev, "failed to register extcon: %d\n", ret);
- return ret;
- }
- break;
- default:
- dev_info(dev, "dr_mode unknown, not registering usb phy0\n");
- data->first_phy = 1;
+ data->extcon = devm_extcon_dev_allocate(dev, sun4i_usb_phy0_cable);
+ if (IS_ERR(data->extcon))
+ return PTR_ERR(data->extcon);
+
+ ret = devm_extcon_dev_register(dev, data->extcon);
+ if (ret) {
+ dev_err(dev, "failed to register extcon: %d\n", ret);
+ return ret;
}
- for (i = data->first_phy; i < data->cfg->num_phys; i++) {
+ for (i = 0; i < data->cfg->num_phys; i++) {
struct sun4i_usb_phy *phy = data->phys + i;
char name[16];
--
2.7.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 4/7] phy-sun4i-usb: Add support for phy_set_mode
2016-08-14 18:27 [PATCH 0/7] musb: sunxi: Add support for run-time changing dr-mode through sysfs Hans de Goede
` (2 preceding siblings ...)
2016-08-14 18:27 ` [PATCH 3/7] phy-sun4i-usb: Simplify missing dr_mode handling Hans de Goede
@ 2016-08-14 18:27 ` Hans de Goede
2016-08-14 18:27 ` [PATCH 5/7] phy-sun4i-usb: Warn when external vbus is detected Hans de Goede
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Hans de Goede @ 2016-08-14 18:27 UTC (permalink / raw)
To: linux-arm-kernel
Together with some musb sunxi glue changes this allows run-time dr_mode
switching support via the "mode" musb sysfs attribute.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
drivers/phy/phy-sun4i-usb.c | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/drivers/phy/phy-sun4i-usb.c b/drivers/phy/phy-sun4i-usb.c
index d0f6e30..fd66991 100644
--- a/drivers/phy/phy-sun4i-usb.c
+++ b/drivers/phy/phy-sun4i-usb.c
@@ -426,6 +426,29 @@ static int sun4i_usb_phy_power_off(struct phy *_phy)
return 0;
}
+static int sun4i_usb_phy_set_mode(struct phy *_phy, enum phy_mode mode)
+{
+ struct sun4i_usb_phy *phy = phy_get_drvdata(_phy);
+ struct sun4i_usb_phy_data *data = to_sun4i_usb_phy_data(phy);
+
+ if (phy->index != 0)
+ return -EINVAL;
+
+ switch (mode) {
+ case PHY_MODE_USB_HOST: data->dr_mode = USB_DR_MODE_HOST; break;
+ case PHY_MODE_USB_DEVICE: data->dr_mode = USB_DR_MODE_PERIPHERAL; break;
+ case PHY_MODE_USB_OTG: data->dr_mode = USB_DR_MODE_OTG; break;
+ default:
+ return -EINVAL;
+ }
+
+ dev_info(&_phy->dev, "Changing dr_mode to %d\n", (int)data->dr_mode);
+ data->force_session_end = true;
+ queue_delayed_work(system_wq, &data->detect, 0);
+
+ return 0;
+}
+
void sun4i_usb_phy_set_squelch_detect(struct phy *_phy, bool enabled)
{
struct sun4i_usb_phy *phy = phy_get_drvdata(_phy);
@@ -439,6 +462,7 @@ static const struct phy_ops sun4i_usb_phy_ops = {
.exit = sun4i_usb_phy_exit,
.power_on = sun4i_usb_phy_power_on,
.power_off = sun4i_usb_phy_power_off,
+ .set_mode = sun4i_usb_phy_set_mode,
.owner = THIS_MODULE,
};
--
2.7.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 5/7] phy-sun4i-usb: Warn when external vbus is detected
2016-08-14 18:27 [PATCH 0/7] musb: sunxi: Add support for run-time changing dr-mode through sysfs Hans de Goede
` (3 preceding siblings ...)
2016-08-14 18:27 ` [PATCH 4/7] phy-sun4i-usb: Add support for phy_set_mode Hans de Goede
@ 2016-08-14 18:27 ` Hans de Goede
2016-08-14 18:28 ` [PATCH 6/7] musb: sunxi: Always register both host and udc when build with dual-role support Hans de Goede
2016-08-14 18:28 ` [PATCH 7/7] musb: sunxi: Add support for platform_set_mode Hans de Goede
6 siblings, 0 replies; 8+ messages in thread
From: Hans de Goede @ 2016-08-14 18:27 UTC (permalink / raw)
To: linux-arm-kernel
Warn when external vbus is detected when we're trying to enable our
own vbus.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
drivers/phy/phy-sun4i-usb.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/phy/phy-sun4i-usb.c b/drivers/phy/phy-sun4i-usb.c
index fd66991..ffe599e 100644
--- a/drivers/phy/phy-sun4i-usb.c
+++ b/drivers/phy/phy-sun4i-usb.c
@@ -389,8 +389,10 @@ static int sun4i_usb_phy_power_on(struct phy *_phy)
/* For phy0 only turn on Vbus if we don't have an ext. Vbus */
if (phy->index == 0 && sun4i_usb_phy0_have_vbus_det(data) &&
- data->vbus_det)
+ data->vbus_det) {
+ dev_warn(&_phy->dev, "External vbus detected, not enabling our own vbus\n");
return 0;
+ }
ret = regulator_enable(phy->vbus);
if (ret)
--
2.7.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 6/7] musb: sunxi: Always register both host and udc when build with dual-role support
2016-08-14 18:27 [PATCH 0/7] musb: sunxi: Add support for run-time changing dr-mode through sysfs Hans de Goede
` (4 preceding siblings ...)
2016-08-14 18:27 ` [PATCH 5/7] phy-sun4i-usb: Warn when external vbus is detected Hans de Goede
@ 2016-08-14 18:28 ` Hans de Goede
2016-08-14 18:28 ` [PATCH 7/7] musb: sunxi: Add support for platform_set_mode Hans de Goede
6 siblings, 0 replies; 8+ messages in thread
From: Hans de Goede @ 2016-08-14 18:28 UTC (permalink / raw)
To: linux-arm-kernel
On sunxi the handling of host- / peripheral-only mode is fully taken care
of in the phy driver. So we can always safely let the musb-core register
both the host and udc.
Besides a nice cleanup, this is also a preparation patch for adding
run-time dr_mode switching support via the "mode" musb sysfs attribute
and the platform_set_mode() callback.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
drivers/usb/musb/sunxi.c | 22 ++--------------------
1 file changed, 2 insertions(+), 20 deletions(-)
diff --git a/drivers/usb/musb/sunxi.c b/drivers/usb/musb/sunxi.c
index c6ee166..868db03 100644
--- a/drivers/usb/musb/sunxi.c
+++ b/drivers/usb/musb/sunxi.c
@@ -615,26 +615,8 @@ static int sunxi_musb_probe(struct platform_device *pdev)
}
memset(&pdata, 0, sizeof(pdata));
- switch (usb_get_dr_mode(&pdev->dev)) {
-#if defined CONFIG_USB_MUSB_DUAL_ROLE || defined CONFIG_USB_MUSB_HOST
- case USB_DR_MODE_HOST:
- pdata.mode = MUSB_PORT_MODE_HOST;
- break;
-#endif
-#if defined CONFIG_USB_MUSB_DUAL_ROLE || defined CONFIG_USB_MUSB_GADGET
- case USB_DR_MODE_PERIPHERAL:
- pdata.mode = MUSB_PORT_MODE_GADGET;
- break;
-#endif
-#ifdef CONFIG_USB_MUSB_DUAL_ROLE
- case USB_DR_MODE_OTG:
- pdata.mode = MUSB_PORT_MODE_DUAL_ROLE;
- break;
-#endif
- default:
- dev_err(&pdev->dev, "Invalid or missing 'dr_mode' property\n");
- return -EINVAL;
- }
+ /* devicetree dr_mode setting is handled by the phy driver */
+ pdata.mode = MUSB_PORT_MODE_DUAL_ROLE;
pdata.platform_ops = &sunxi_musb_ops;
pdata.config = &sunxi_musb_hdrc_config;
--
2.7.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 7/7] musb: sunxi: Add support for platform_set_mode
2016-08-14 18:27 [PATCH 0/7] musb: sunxi: Add support for run-time changing dr-mode through sysfs Hans de Goede
` (5 preceding siblings ...)
2016-08-14 18:28 ` [PATCH 6/7] musb: sunxi: Always register both host and udc when build with dual-role support Hans de Goede
@ 2016-08-14 18:28 ` Hans de Goede
6 siblings, 0 replies; 8+ messages in thread
From: Hans de Goede @ 2016-08-14 18:28 UTC (permalink / raw)
To: linux-arm-kernel
This allows run-time dr_mode switching support via the "mode" musb
sysfs attribute.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
drivers/usb/musb/sunxi.c | 42 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)
diff --git a/drivers/usb/musb/sunxi.c b/drivers/usb/musb/sunxi.c
index 868db03..bfd5f23 100644
--- a/drivers/usb/musb/sunxi.c
+++ b/drivers/usb/musb/sunxi.c
@@ -74,6 +74,7 @@
#define SUNXI_MUSB_FL_HAS_SRAM 5
#define SUNXI_MUSB_FL_HAS_RESET 6
#define SUNXI_MUSB_FL_NO_CONFIGDATA 7
+#define SUNXI_MUSB_FL_PHY_MODE_PEND 8
/* Our read/write methods need access and do not get passed in a musb ref :| */
static struct musb *sunxi_musb;
@@ -87,6 +88,7 @@ struct sunxi_glue {
struct phy *phy;
struct platform_device *usb_phy;
struct usb_phy *xceiv;
+ enum phy_mode phy_mode;
unsigned long flags;
struct work_struct work;
struct extcon_dev *extcon;
@@ -140,6 +142,9 @@ static void sunxi_musb_work(struct work_struct *work)
clear_bit(SUNXI_MUSB_FL_PHY_ON, &glue->flags);
}
}
+
+ if (test_and_clear_bit(SUNXI_MUSB_FL_PHY_MODE_PEND, &glue->flags))
+ phy_set_mode(glue->phy, glue->phy_mode);
}
static void sunxi_musb_set_vbus(struct musb *musb, int is_on)
@@ -341,6 +346,41 @@ static void sunxi_musb_dma_controller_destroy(struct dma_controller *c)
{
}
+static int sunxi_musb_set_mode(struct musb *musb, u8 mode)
+{
+ struct sunxi_glue *glue = dev_get_drvdata(musb->controller->parent);
+ enum phy_mode new_mode;
+
+ switch (mode) {
+#if defined CONFIG_USB_MUSB_DUAL_ROLE || defined CONFIG_USB_MUSB_HOST
+ case MUSB_HOST: new_mode = PHY_MODE_USB_HOST; break;
+#endif
+#if defined CONFIG_USB_MUSB_DUAL_ROLE || defined CONFIG_USB_MUSB_GADGET
+ case MUSB_PERIPHERAL: new_mode = PHY_MODE_USB_DEVICE; break;
+#endif
+#ifdef CONFIG_USB_MUSB_DUAL_ROLE
+ case MUSB_OTG: new_mode = PHY_MODE_USB_OTG; break;
+#endif
+ default:
+ dev_err(musb->controller->parent,
+ "Error requested mode not supported by this kernel\n");
+ return -EINVAL;
+ }
+
+ if (glue->phy_mode == new_mode)
+ return 0;
+
+ /*
+ * phy_set_mode may sleep, and we're called with a spinlock held,
+ * so let sunxi_musb_work deal with it.
+ */
+ glue->phy_mode = new_mode;
+ set_bit(SUNXI_MUSB_FL_PHY_MODE_PEND, &glue->flags);
+ schedule_work(&glue->work);
+
+ return 0;
+}
+
/*
* sunxi musb register layout
* 0x00 - 0x17 fifo regs, 1 long per fifo
@@ -568,6 +608,7 @@ static const struct musb_platform_ops sunxi_musb_ops = {
.writew = sunxi_musb_writew,
.dma_init = sunxi_musb_dma_controller_create,
.dma_exit = sunxi_musb_dma_controller_destroy,
+ .set_mode = sunxi_musb_set_mode,
.set_vbus = sunxi_musb_set_vbus,
.pre_root_reset_end = sunxi_musb_pre_root_reset_end,
.post_root_reset_end = sunxi_musb_post_root_reset_end,
@@ -627,6 +668,7 @@ static int sunxi_musb_probe(struct platform_device *pdev)
glue->dev = &pdev->dev;
INIT_WORK(&glue->work, sunxi_musb_work);
glue->host_nb.notifier_call = sunxi_musb_host_notifier;
+ glue->phy_mode = PHY_MODE_USB_OTG;
if (of_device_is_compatible(np, "allwinner,sun4i-a10-musb"))
set_bit(SUNXI_MUSB_FL_HAS_SRAM, &glue->flags);
--
2.7.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
end of thread, other threads:[~2016-08-14 18:28 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-08-14 18:27 [PATCH 0/7] musb: sunxi: Add support for run-time changing dr-mode through sysfs Hans de Goede
2016-08-14 18:27 ` [PATCH 1/7] phy-sun4i-usb: Use bool where appropriate Hans de Goede
2016-08-14 18:27 ` [PATCH 2/7] phy-sun4i-usb: Refactor forced session ending Hans de Goede
2016-08-14 18:27 ` [PATCH 3/7] phy-sun4i-usb: Simplify missing dr_mode handling Hans de Goede
2016-08-14 18:27 ` [PATCH 4/7] phy-sun4i-usb: Add support for phy_set_mode Hans de Goede
2016-08-14 18:27 ` [PATCH 5/7] phy-sun4i-usb: Warn when external vbus is detected Hans de Goede
2016-08-14 18:28 ` [PATCH 6/7] musb: sunxi: Always register both host and udc when build with dual-role support Hans de Goede
2016-08-14 18:28 ` [PATCH 7/7] musb: sunxi: Add support for platform_set_mode Hans de Goede
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).