usb: musb-new: add Allwinner F1C100s support

The Allwinner F1C100s SoC has a MUSB controller like the one in the A33,
but needs an SRAM region to be claimed like the A10. We do the latter
anyway, even on chips that don't need it, so there is no real difference
in our compatible string matching.

Add a mapping between the config struct used in the Linux to our
requirements here on the way.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
diff --git a/drivers/usb/musb-new/sunxi.c b/drivers/usb/musb-new/sunxi.c
index 91f082f..778b01b 100644
--- a/drivers/usb/musb-new/sunxi.c
+++ b/drivers/usb/musb-new/sunxi.c
@@ -506,6 +506,16 @@
 	return 0;
 }
 
+/*
+ * The Linux driver has a config struct, its fields mapping to this driver
+ * like this:
+ *	.hdrc_config:
+ *		sunxi_musb_hdrc_config_5eps => musb_config
+ *		sunxi_musb_hdrc_config_4eps => musb_config_h3
+ *	.has_sram: always enabled, ideally no-op on SoCs not using it
+ *	.has_reset: automatically detected from DT
+ *	.no_configdata: handled via Kconfig's CONFIG_USB_MUSB_FIXED_CONFIGDATA
+ */
 static const struct sunxi_musb_config sun4i_a10_cfg = {
 	.config = &musb_config,
 };
@@ -518,6 +528,10 @@
 	.config = &musb_config_h3,
 };
 
+static const struct sunxi_musb_config suniv_f1c100s_cfg = {
+	.config = &musb_config,
+};
+
 static const struct udevice_id sunxi_musb_ids[] = {
 	{ .compatible = "allwinner,sun4i-a10-musb",
 			.data = (ulong)&sun4i_a10_cfg },
@@ -527,6 +541,8 @@
 			.data = (ulong)&sun6i_a31_cfg },
 	{ .compatible = "allwinner,sun8i-h3-musb",
 			.data = (ulong)&sun8i_h3_cfg },
+	{ .compatible = "allwinner,suniv-f1c100s-musb",
+			.data = (ulong)&suniv_f1c100s_cfg },
 	{ }
 };