summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAhmad Fatoum <a.fatoum@pengutronix.de>2020-03-02 10:46:36 +0100
committerRobert Schwebel <r.schwebel@pengutronix.de>2020-03-05 17:40:50 +0100
commita314694117bd0cebf013ff525f38524aafb46a43 (patch)
tree8f2ba338bbc7243a7e5476d7932e374ed51fb08a
parent0f9600a06e77b7b355104ae646c4f4fbeb02ff55 (diff)
downloadDistroKit-a314694117bd0cebf013ff525f38524aafb46a43.tar.gz
DistroKit-a314694117bd0cebf013ff525f38524aafb46a43.tar.xz
v7a: barebox: fix regression in AM335x USB
Kernel commit 0782e8572c ("ARM: dts: Probe am335x musb with ti-sysc") which barebox pulled in during the v2020.02.0 dts/ sync moved the USB nodes to be under a ti-sysc bus instead of ti,am33xx-usb. This broke am335x USB under barebox, because the MUSB drivers couldn't cope with the now different device probe order. Import the two patches fixing this out of barebox master branch. These can be dropped when moving to barebox v2020.03.0. Fixes: 1d84e5419f50 ("v7a: barebox: version bump 2020.01.0 -> 2020.02.0") Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
-rw-r--r--configs/platform-v7a/barebox-am335x-mlo.config2
-rw-r--r--configs/platform-v7a/barebox-am335x.config2
-rw-r--r--configs/platform-v7a/barebox-am335x.config.diff2
-rw-r--r--configs/platform-v7a/barebox-mx6.config2
-rw-r--r--configs/platform-v7a/barebox-mx6.config.diff2
-rw-r--r--configs/platform-v7a/barebox-rpi2.config2
-rw-r--r--configs/platform-v7a/barebox-rpi2.config.diff2
-rw-r--r--configs/platform-v7a/barebox-vexpress.config2
-rw-r--r--configs/platform-v7a/barebox-vexpress.config.diff2
-rw-r--r--configs/platform-v7a/barebox.config2
-rw-r--r--configs/platform-v7a/patches/barebox-2020.02.0/0001-USB-MUSB-PHY-scrap-singleton-am335x_get_usb_phy.patch136
-rw-r--r--configs/platform-v7a/patches/barebox-2020.02.0/0002-USB-MUSB-defer-driver-probes-where-necessary.patch201
-rw-r--r--configs/platform-v7a/patches/barebox-2020.02.0/0101-Release-2020.02.0-customers-pengutronix-distrokit-v7.patch22
-rw-r--r--configs/platform-v7a/patches/barebox-2020.02.0/series12
14 files changed, 381 insertions, 10 deletions
diff --git a/configs/platform-v7a/barebox-am335x-mlo.config b/configs/platform-v7a/barebox-am335x-mlo.config
index cc656cb..909b518 100644
--- a/configs/platform-v7a/barebox-am335x-mlo.config
+++ b/configs/platform-v7a/barebox-am335x-mlo.config
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Barebox/arm 2020.02.0 Configuration
+# Barebox/arm 2020.02.0-20200302-1 Configuration
#
CONFIG_ARM=y
CONFIG_ARM_USE_COMPRESSED_DTB=y
diff --git a/configs/platform-v7a/barebox-am335x.config b/configs/platform-v7a/barebox-am335x.config
index 2ae88bc..dcd70e2 100644
--- a/configs/platform-v7a/barebox-am335x.config
+++ b/configs/platform-v7a/barebox-am335x.config
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Barebox/arm 2020.02.0 Configuration
+# Barebox/arm 2020.02.0-20200302-1 Configuration
#
CONFIG_ARM=y
CONFIG_ARM_LINUX=y
diff --git a/configs/platform-v7a/barebox-am335x.config.diff b/configs/platform-v7a/barebox-am335x.config.diff
index 3e09a8f..355e45d 100644
--- a/configs/platform-v7a/barebox-am335x.config.diff
+++ b/configs/platform-v7a/barebox-am335x.config.diff
@@ -1,4 +1,4 @@
-db955f3172c4b8a13e81f242e249009a
+3535341c60838c5a3a5b02da35648d4a
# CONFIG_AM33XX_NET_BOOT is not set
CONFIG_ARCH_AM33XX=y
# CONFIG_ARCH_BCM283X is not set
diff --git a/configs/platform-v7a/barebox-mx6.config b/configs/platform-v7a/barebox-mx6.config
index 5c441e5..7a549a4 100644
--- a/configs/platform-v7a/barebox-mx6.config
+++ b/configs/platform-v7a/barebox-mx6.config
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Barebox/arm 2020.02.0 Configuration
+# Barebox/arm 2020.02.0-20200302-1 Configuration
#
CONFIG_ARM=y
CONFIG_ARM_LINUX=y
diff --git a/configs/platform-v7a/barebox-mx6.config.diff b/configs/platform-v7a/barebox-mx6.config.diff
index 9e92bc2..ac181dc 100644
--- a/configs/platform-v7a/barebox-mx6.config.diff
+++ b/configs/platform-v7a/barebox-mx6.config.diff
@@ -1,4 +1,4 @@
-db955f3172c4b8a13e81f242e249009a
+3535341c60838c5a3a5b02da35648d4a
# CONFIG_ARCH_BCM283X is not set
CONFIG_ARCH_HAS_FEC_IMX=y
CONFIG_ARCH_HAS_IMX_GPT=y
diff --git a/configs/platform-v7a/barebox-rpi2.config b/configs/platform-v7a/barebox-rpi2.config
index b614372..39592ee 100644
--- a/configs/platform-v7a/barebox-rpi2.config
+++ b/configs/platform-v7a/barebox-rpi2.config
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Barebox/arm 2020.02.0 Configuration
+# Barebox/arm 2020.02.0-20200302-1 Configuration
#
CONFIG_ARM=y
CONFIG_ARM_LINUX=y
diff --git a/configs/platform-v7a/barebox-rpi2.config.diff b/configs/platform-v7a/barebox-rpi2.config.diff
index a310404..ca89c22 100644
--- a/configs/platform-v7a/barebox-rpi2.config.diff
+++ b/configs/platform-v7a/barebox-rpi2.config.diff
@@ -1,4 +1,4 @@
-db955f3172c4b8a13e81f242e249009a
+3535341c60838c5a3a5b02da35648d4a
CONFIG_ARM_ASM_UNIFIED=y
CONFIG_BOOTM_INITRD=y
# CONFIG_CMD_I2C is undefined
diff --git a/configs/platform-v7a/barebox-vexpress.config b/configs/platform-v7a/barebox-vexpress.config
index f21828a..ce701a6 100644
--- a/configs/platform-v7a/barebox-vexpress.config
+++ b/configs/platform-v7a/barebox-vexpress.config
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Barebox/arm 2020.02.0 Configuration
+# Barebox/arm 2020.02.0-20200302-1 Configuration
#
CONFIG_ARM=y
CONFIG_ARM_LINUX=y
diff --git a/configs/platform-v7a/barebox-vexpress.config.diff b/configs/platform-v7a/barebox-vexpress.config.diff
index c9e4b30..867fa47 100644
--- a/configs/platform-v7a/barebox-vexpress.config.diff
+++ b/configs/platform-v7a/barebox-vexpress.config.diff
@@ -1,4 +1,4 @@
-db955f3172c4b8a13e81f242e249009a
+3535341c60838c5a3a5b02da35648d4a
CONFIG_AMBA_SP804=y
# CONFIG_ARCH_BCM283X is not set
CONFIG_ARCH_VEXPRESS=y
diff --git a/configs/platform-v7a/barebox.config b/configs/platform-v7a/barebox.config
index bd4c2b8..c0fc250 100644
--- a/configs/platform-v7a/barebox.config
+++ b/configs/platform-v7a/barebox.config
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Barebox/arm 2020.02.0 Configuration
+# Barebox/arm 2020.02.0-20200302-1 Configuration
#
CONFIG_ARM=y
CONFIG_ARM_LINUX=y
diff --git a/configs/platform-v7a/patches/barebox-2020.02.0/0001-USB-MUSB-PHY-scrap-singleton-am335x_get_usb_phy.patch b/configs/platform-v7a/patches/barebox-2020.02.0/0001-USB-MUSB-PHY-scrap-singleton-am335x_get_usb_phy.patch
new file mode 100644
index 0000000..2250399
--- /dev/null
+++ b/configs/platform-v7a/patches/barebox-2020.02.0/0001-USB-MUSB-PHY-scrap-singleton-am335x_get_usb_phy.patch
@@ -0,0 +1,136 @@
+From: Ahmad Fatoum <a.fatoum@pengutronix.de>
+Date: Tue, 25 Feb 2020 17:57:30 +0100
+Subject: [PATCH] USB: MUSB: PHY: scrap singleton am335x_get_usb_phy()
+
+am335x_get_usb_phy() retrieves the last probed USB phy. On the BeagleBone
+with both PHYs enabled, this means that dependent on probe order, both
+MUSB instances could end up with the same PHY.
+
+Remove the global variable and have the MUSB driver parse the "phys"
+property instead.
+
+The cleaner way to achieve this would be to migrate phy-am335x.c
+and phy-am335x-control.c to the generic phy framework and have MUSB use
+of_phy_get, alas, even Linux hasn't done this so far and we need
+a short patch for master anyway, thus just do it the easy way.
+
+Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
+Tested-by: Yegor Yefremov <yegorslists@googlemail.com>
+Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
+---
+ drivers/usb/musb/musb_dsps.c | 16 +++++++++++-----
+ drivers/usb/musb/phy-am335x.c | 11 ++---------
+ drivers/usb/musb/phy-am335x.h | 6 ------
+ 3 files changed, 13 insertions(+), 20 deletions(-)
+ delete mode 100644 drivers/usb/musb/phy-am335x.h
+
+diff --git a/drivers/usb/musb/musb_dsps.c b/drivers/usb/musb/musb_dsps.c
+index 3b76b6cc610d..f30672914830 100644
+--- a/drivers/usb/musb/musb_dsps.c
++++ b/drivers/usb/musb/musb_dsps.c
+@@ -39,7 +39,6 @@
+ #include <linux/barebox-wrapper.h>
+
+ #include "musb_core.h"
+-#include "phy-am335x.h"
+
+ static __maybe_unused struct of_device_id musb_dsps_dt_ids[];
+
+@@ -217,10 +216,6 @@ static int dsps_musb_init(struct musb *musb)
+ const struct dsps_musb_wrapper *wrp = glue->wrp;
+ u32 rev, val, mode;
+
+- musb->xceiv = am335x_get_usb_phy();
+- if (IS_ERR(musb->xceiv))
+- return PTR_ERR(musb->xceiv);
+-
+ /* Returns zero if e.g. not clocked */
+ rev = dsps_readl(musb->ctrl_base, wrp->revision);
+ if (!rev)
+@@ -324,6 +319,8 @@ static int dsps_probe(struct device_d *dev)
+ struct musb_hdrc_config *config;
+ struct device_node *dn = dev->device_node;
+ const struct dsps_musb_wrapper *wrp;
++ struct device_node *phy_node;
++ struct device_d *phy_dev;
+ struct dsps_glue *glue;
+ int ret;
+
+@@ -337,6 +334,14 @@ static int dsps_probe(struct device_d *dev)
+ return -ENODEV;
+ }
+
++ phy_node = of_parse_phandle(dn, "phys", 0);
++ if (!phy_node)
++ return -ENODEV;
++
++ phy_dev = of_find_device_by_node(phy_node);
++ if (!phy_dev || !phy_dev->priv)
++ return -EPROBE_DEFER;
++
+ /* allocate glue */
+ glue = kzalloc(sizeof(*glue), GFP_KERNEL);
+ if (!glue) {
+@@ -360,6 +365,7 @@ static int dsps_probe(struct device_d *dev)
+ glue->musb.ctrl_base = IOMEM(iores->start);
+
+ glue->musb.controller = dev;
++ glue->musb.xceiv = phy_dev->priv;
+
+ config = &glue->config;
+
+diff --git a/drivers/usb/musb/phy-am335x.c b/drivers/usb/musb/phy-am335x.c
+index df31255d891c..6991f4402d3f 100644
+--- a/drivers/usb/musb/phy-am335x.c
++++ b/drivers/usb/musb/phy-am335x.c
+@@ -5,7 +5,6 @@
+ #include <linux/err.h>
+ #include "am35x-phy-control.h"
+ #include "musb_core.h"
+-#include "phy-am335x.h"
+
+ struct am335x_usbphy {
+ void __iomem *base;
+@@ -14,13 +13,6 @@ struct am335x_usbphy {
+ struct usb_phy phy;
+ };
+
+-static struct am335x_usbphy *am_usbphy;
+-
+-struct usb_phy *am335x_get_usb_phy(void)
+-{
+- return &am_usbphy->phy;
+-}
+-
+ static int am335x_init(struct usb_phy *phy)
+ {
+ struct am335x_usbphy *am_usbphy = container_of(phy, struct am335x_usbphy, phy);
+@@ -31,6 +23,7 @@ static int am335x_init(struct usb_phy *phy)
+
+ static int am335x_phy_probe(struct device_d *dev)
+ {
++ struct am335x_usbphy *am_usbphy;
+ struct resource *iores;
+ int ret;
+
+@@ -54,7 +47,7 @@ static int am335x_phy_probe(struct device_d *dev)
+ }
+
+ am_usbphy->phy.init = am335x_init;
+- dev->priv = am_usbphy;
++ dev->priv = &am_usbphy->phy;
+
+ dev_info(dev, "am_usbphy %p enabled\n", &am_usbphy->phy);
+
+diff --git a/drivers/usb/musb/phy-am335x.h b/drivers/usb/musb/phy-am335x.h
+deleted file mode 100644
+index 27da2e3b1057..000000000000
+--- a/drivers/usb/musb/phy-am335x.h
++++ /dev/null
+@@ -1,6 +0,0 @@
+-#ifndef _PHY_AM335x_H_
+-#define _PHY_AM335x_H_
+-
+-struct usb_phy *am335x_get_usb_phy(void);
+-
+-#endif
diff --git a/configs/platform-v7a/patches/barebox-2020.02.0/0002-USB-MUSB-defer-driver-probes-where-necessary.patch b/configs/platform-v7a/patches/barebox-2020.02.0/0002-USB-MUSB-defer-driver-probes-where-necessary.patch
new file mode 100644
index 0000000..504e4d2
--- /dev/null
+++ b/configs/platform-v7a/patches/barebox-2020.02.0/0002-USB-MUSB-defer-driver-probes-where-necessary.patch
@@ -0,0 +1,201 @@
+From: Ahmad Fatoum <a.fatoum@pengutronix.de>
+Date: Tue, 25 Feb 2020 17:57:31 +0100
+Subject: [PATCH] USB: MUSB: defer driver probes where necessary
+
+Kernel commit 0782e8572c ("ARM: dts: Probe am335x musb with ti-sysc")
+which we pulled in during the v2020.02.0 dts/ sync moved the USB nodes
+to be under a ti-sysc bus instead of ti,am33xx-usb.
+
+This new probe order broke am335x USB under barebox, because the MUSB
+drivers couldn't cope with the now different device probe order.
+
+Pepper some -EPROBE_DEFER around to make USB work again.
+
+Fixes: 574eed3f6f ("dts: update to v5.5-rc1")
+Reported-by: Yegor Yefremov <yegorslists@googlemail.com>
+Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
+Tested-by: Yegor Yefremov <yegorslists@googlemail.com>
+Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
+---
+ drivers/usb/musb/musb_core.c | 5 +++--
+ drivers/usb/musb/musb_dsps.c | 39 +++++++++++++++++++++++++----------
+ drivers/usb/musb/phy-am335x-control.c | 25 +++++++++++++++-------
+ drivers/usb/musb/phy-am335x.c | 11 +++++++---
+ 4 files changed, 57 insertions(+), 23 deletions(-)
+
+diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
+index 4c11e6580c0f..b84da5516c4a 100644
+--- a/drivers/usb/musb/musb_core.c
++++ b/drivers/usb/musb/musb_core.c
+@@ -1136,8 +1136,9 @@ fail2:
+ musb_platform_exit(musb);
+
+ fail1:
+- dev_err(musb->controller,
+- "musb_init_controller failed with status %d\n", status);
++ if (status != -EPROBE_DEFER)
++ dev_err(musb->controller,
++ "musb_init_controller failed with status %d\n", status);
+
+ musb_free(musb);
+
+diff --git a/drivers/usb/musb/musb_dsps.c b/drivers/usb/musb/musb_dsps.c
+index f30672914830..d54a663e9d8b 100644
+--- a/drivers/usb/musb/musb_dsps.c
++++ b/drivers/usb/musb/musb_dsps.c
+@@ -314,7 +314,7 @@ static int dsps_set_mode(void *ctx, enum usb_dr_mode mode)
+
+ static int dsps_probe(struct device_d *dev)
+ {
+- struct resource *iores;
++ struct resource *iores[2];
+ struct musb_hdrc_platform_data *pdata;
+ struct musb_hdrc_config *config;
+ struct device_node *dn = dev->device_node;
+@@ -354,15 +354,19 @@ static int dsps_probe(struct device_d *dev)
+
+ pdata = &glue->pdata;
+
+- iores = dev_request_mem_resource(dev, 0);
+- if (IS_ERR(iores))
+- return PTR_ERR(iores);
+- glue->musb.mregs = IOMEM(iores->start);
++ iores[0] = dev_request_mem_resource(dev, 0);
++ if (IS_ERR(iores[0])) {
++ ret = PTR_ERR(iores[0]);
++ goto free_glue;
++ }
++ glue->musb.mregs = IOMEM(iores[0]->start);
+
+- iores = dev_request_mem_resource(dev, 1);
+- if (IS_ERR(iores))
+- return PTR_ERR(iores);
+- glue->musb.ctrl_base = IOMEM(iores->start);
++ iores[1] = dev_request_mem_resource(dev, 1);
++ if (IS_ERR(iores[1])) {
++ ret = PTR_ERR(iores[1]);
++ goto release_iores0;
++ }
++ glue->musb.ctrl_base = IOMEM(iores[1]->start);
+
+ glue->musb.controller = dev;
+ glue->musb.xceiv = phy_dev->priv;
+@@ -383,11 +387,24 @@ static int dsps_probe(struct device_d *dev)
+ if (pdata->mode == MUSB_PORT_MODE_DUAL_ROLE) {
+ ret = usb_register_otg_device(dev, dsps_set_mode, glue);
+ if (ret)
+- return ret;
++ goto release_iores1;
+ return 0;
+ }
+
+- return musb_init_controller(&glue->musb, pdata);
++ ret = musb_init_controller(&glue->musb, pdata);
++ if (ret)
++ goto release_iores1;
++
++ return 0;
++
++release_iores1:
++ release_region(iores[1]);
++release_iores0:
++ release_region(iores[0]);
++free_glue:
++ free(glue);
++
++ return ret;
+ }
+
+ static const struct dsps_musb_wrapper am33xx_driver_data = {
+diff --git a/drivers/usb/musb/phy-am335x-control.c b/drivers/usb/musb/phy-am335x-control.c
+index c84525ec7eb4..41a3689ed3f9 100644
+--- a/drivers/usb/musb/phy-am335x-control.c
++++ b/drivers/usb/musb/phy-am335x-control.c
+@@ -109,15 +109,15 @@ struct phy_control *am335x_get_phy_control(struct device_d *dev)
+
+ node = of_parse_phandle(dev->device_node, "ti,ctrl_mod", 0);
+ if (!node)
+- return NULL;
++ return ERR_PTR(-ENOENT);
+
+ dev = of_find_device_by_node(node);
+ if (!dev)
+- return NULL;
++ return ERR_PTR(-EPROBE_DEFER);
+
+ ctrl_usb = dev->priv;
+ if (!ctrl_usb)
+- return NULL;
++ return ERR_PTR(-EPROBE_DEFER);
+
+ return &ctrl_usb->phy_ctrl;
+ }
+@@ -141,13 +141,17 @@ static int am335x_control_usb_probe(struct device_d *dev)
+ ctrl_usb->dev = dev;
+
+ iores = dev_request_mem_resource(dev, 0);
+- if (IS_ERR(iores))
+- return PTR_ERR(iores);
++ if (IS_ERR(iores)) {
++ ret = PTR_ERR(iores);
++ goto free_ctrl;
++ }
+ ctrl_usb->phy_reg = IOMEM(iores->start);
+
+ iores = dev_request_mem_resource(dev, 1);
+- if (IS_ERR(iores))
+- return PTR_ERR(iores);
++ if (IS_ERR(iores)) {
++ ret = PTR_ERR(iores);
++ goto release_resource;
++ }
+ ctrl_usb->wkup = IOMEM(iores->start);
+
+ spin_lock_init(&ctrl_usb->lock);
+@@ -155,6 +159,13 @@ static int am335x_control_usb_probe(struct device_d *dev)
+
+ dev->priv = ctrl_usb;
+ return 0;
++
++release_resource:
++ release_region(iores);
++free_ctrl:
++ free(ctrl_usb);
++
++ return 0;
+ };
+
+ static struct driver_d am335x_control_driver = {
+diff --git a/drivers/usb/musb/phy-am335x.c b/drivers/usb/musb/phy-am335x.c
+index 6991f4402d3f..f2e870d7ee61 100644
+--- a/drivers/usb/musb/phy-am335x.c
++++ b/drivers/usb/musb/phy-am335x.c
+@@ -37,13 +37,16 @@ static int am335x_phy_probe(struct device_d *dev)
+ am_usbphy->base = IOMEM(iores->start);
+
+ am_usbphy->phy_ctrl = am335x_get_phy_control(dev);
+- if (!am_usbphy->phy_ctrl)
+- return -ENODEV;
++ if (IS_ERR(am_usbphy->phy_ctrl)) {
++ ret = PTR_ERR(am_usbphy->phy_ctrl);
++ goto err_release;
++ }
+
+ am_usbphy->id = of_alias_get_id(dev->device_node, "phy");
+ if (am_usbphy->id < 0) {
+ dev_err(dev, "Missing PHY id: %d\n", am_usbphy->id);
+- return am_usbphy->id;
++ ret = am_usbphy->id;
++ goto err_release;
+ }
+
+ am_usbphy->phy.init = am335x_init;
+@@ -53,6 +56,8 @@ static int am335x_phy_probe(struct device_d *dev)
+
+ return 0;
+
++err_release:
++ release_region(iores);
+ err_free:
+ free(am_usbphy);
+
diff --git a/configs/platform-v7a/patches/barebox-2020.02.0/0101-Release-2020.02.0-customers-pengutronix-distrokit-v7.patch b/configs/platform-v7a/patches/barebox-2020.02.0/0101-Release-2020.02.0-customers-pengutronix-distrokit-v7.patch
new file mode 100644
index 0000000..f6d964c
--- /dev/null
+++ b/configs/platform-v7a/patches/barebox-2020.02.0/0101-Release-2020.02.0-customers-pengutronix-distrokit-v7.patch
@@ -0,0 +1,22 @@
+From: Ahmad Fatoum <a.fatoum@pengutronix.de>
+Date: Mon, 2 Mar 2020 10:29:27 +0100
+Subject: [PATCH] Release
+ 2020.02.0/customers/pengutronix/distrokit-v7a/20200302-1
+
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index ef98910c0bcd..dbc7d3fe5610 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,7 +1,7 @@
+ VERSION = 2020
+ PATCHLEVEL = 02
+ SUBLEVEL = 0
+-EXTRAVERSION =
++EXTRAVERSION =-20200302-1
+ NAME = None
+
+ # *DOCUMENTATION*
diff --git a/configs/platform-v7a/patches/barebox-2020.02.0/series b/configs/platform-v7a/patches/barebox-2020.02.0/series
new file mode 100644
index 0000000..e9ae258
--- /dev/null
+++ b/configs/platform-v7a/patches/barebox-2020.02.0/series
@@ -0,0 +1,12 @@
+# umpf-base: v2020.02.0
+# umpf-name: 2020.02.0/customers/pengutronix/distrokit-v7a
+# umpf-version: 2020.02.0/customers/pengutronix/distrokit-v7a/20200302-1
+# umpf-topic: v2020.02.0/topic/am335x-usb-fix
+# umpf-hashinfo: b7314bc58ef983ea308f10710fdc3330e03fbacd
+# umpf-topic-range: 849b2f8b958a19d28715c187a0d6dca23ccba6b5..668810be409187d7ea1dfb43aae151792aabaa25
+0001-USB-MUSB-PHY-scrap-singleton-am335x_get_usb_phy.patch
+0002-USB-MUSB-defer-driver-probes-where-necessary.patch
+# umpf-release: 2020.02.0/customers/pengutronix/distrokit-v7a/20200302-1
+# umpf-topic-range: 668810be409187d7ea1dfb43aae151792aabaa25..1ddfaff751466a5673322f551ff80acab5cb36ae
+0101-Release-2020.02.0-customers-pengutronix-distrokit-v7.patch
+# umpf-end