.platform_ops   = &jz4740_musb_ops,
 };
 
+static struct musb_fifo_cfg jz4770_musb_fifo_cfg[] = {
+       { .hw_ep_num = 1, .style = FIFO_TX, .maxpacket = 512, },
+       { .hw_ep_num = 1, .style = FIFO_RX, .maxpacket = 512, },
+       { .hw_ep_num = 2, .style = FIFO_TX, .maxpacket = 512, },
+       { .hw_ep_num = 2, .style = FIFO_RX, .maxpacket = 512, },
+       { .hw_ep_num = 3, .style = FIFO_TX, .maxpacket = 512, },
+       { .hw_ep_num = 3, .style = FIFO_RX, .maxpacket = 512, },
+       { .hw_ep_num = 4, .style = FIFO_TX, .maxpacket = 512, },
+       { .hw_ep_num = 4, .style = FIFO_RX, .maxpacket = 512, },
+       { .hw_ep_num = 5, .style = FIFO_TX, .maxpacket = 512, },
+       { .hw_ep_num = 5, .style = FIFO_RX, .maxpacket = 512, },
+};
+
+static struct musb_hdrc_config jz4770_musb_config = {
+       .multipoint     = 1,
+       .num_eps        = 11,
+       .ram_bits       = 11,
+       .fifo_cfg       = jz4770_musb_fifo_cfg,
+       .fifo_cfg_size  = ARRAY_SIZE(jz4770_musb_fifo_cfg),
+};
+
+static const struct musb_hdrc_platform_data jz4770_musb_pdata = {
+       .mode           = MUSB_PERIPHERAL, /* TODO: support OTG */
+       .config         = &jz4770_musb_config,
+       .platform_ops   = &jz4740_musb_ops,
+};
+
 static int jz4740_probe(struct platform_device *pdev)
 {
        struct device                   *dev = &pdev->dev;
 
 static const struct of_device_id jz4740_musb_of_match[] = {
        { .compatible = "ingenic,jz4740-musb", .data = &jz4740_musb_pdata },
+       { .compatible = "ingenic,jz4770-musb", .data = &jz4770_musb_pdata },
        { /* sentinel */ },
 };
 MODULE_DEVICE_TABLE(of, jz4740_musb_of_match);