]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
usb: musb-new: add Allwinner F1C100s support
authorAndre Przywara <andre.przywara@arm.com>
Fri, 13 Oct 2023 22:12:14 +0000 (23:12 +0100)
committerAndre Przywara <andre.przywara@arm.com>
Mon, 22 Apr 2024 00:12:25 +0000 (01:12 +0100)
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>
drivers/usb/musb-new/sunxi.c

index 91f082fe05efdb2260d07d5d6a8c03941e5895f4..778b01b22ea78d2cc5ed3e5718d3972929e917ff 100644 (file)
@@ -506,6 +506,16 @@ static int musb_usb_remove(struct udevice *dev)
        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 @@ static const struct sunxi_musb_config sun8i_h3_cfg = {
        .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 @@ static const struct udevice_id sunxi_musb_ids[] = {
                        .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 },
        { }
 };