--- a/drivers/usb/dwc2/platform.c +++ b/drivers/usb/dwc2/platform.c @@ -105,6 +105,34 @@ static const struct dwc2_core_params par .uframe_sched = -1, }; +static const struct dwc2_core_params params_cns3xxx = { + .otg_cap = 2, /* non-HNP/non-SRP capable */ + .otg_ver = 0, /* 1.3 */ + .dma_enable = 1, + .dma_desc_enable = 0, + .speed = 0, /* High Speed */ + .enable_dynamic_fifo = 1, + .en_multiple_tx_fifo = 1, + .host_rx_fifo_size = 658, /* 774 DWORDs */ + .host_nperio_tx_fifo_size = 128, /* 256 DWORDs */ + .host_perio_tx_fifo_size = 658, /* 512 DWORDs */ + .max_transfer_size = 65535, + .max_packet_count = 511, + .host_channels = 16, + .phy_type = 1, /* UTMI */ + .phy_utmi_width = 16, /* 8 bits */ + .phy_ulpi_ddr = 0, /* Single */ + .phy_ulpi_ext_vbus = 0, + .i2c_enable = 0, + .ulpi_fs_ls = 0, + .host_support_fs_ls_low_power = 0, + .host_ls_low_power_phy_clk = 0, /* 48 MHz */ + .ts_dline = 0, + .reload_ctl = 0, + .ahbcfg = 0x10, + .uframe_sched = 0, +}; + /** * dwc2_driver_remove() - Called when the DWC_otg core is unregistered with the * DWC_otg driver @@ -165,6 +193,9 @@ static int dwc2_driver_probe(struct plat /* Default all params to autodetect */ dwc2_set_all_params(&defparams, -1); params = &defparams; +#ifdef CONFIG_ARCH_CNS3XXX + params = ¶ms_cns3xxx; +#endif /* * Disable descriptor dma mode by default as the HW can support