From af802bc68703e79a071a4d8e81eb3935bf453e8c Mon Sep 17 00:00:00 2001 From: Daniel Gonzalez Cabanelas Date: Sat, 29 Jul 2017 14:54:15 +0200 Subject: [PATCH] lantiq: fix missing otg_cap on danube platform USB doesn't work in some danube boards because otg_cap is missing since previous changes made on the USB-dwc2 lantiq driver. Fix it. Tested on the ARV7518PW router. Signed-off-by: Daniel Gonzalez Cabanelas --- ...e-lantiq-settings-match-vendor-drive.patch | 78 +++++++++++++------ 1 file changed, 54 insertions(+), 24 deletions(-) diff --git a/target/linux/lantiq/patches-4.4/0061-USB-DWC2-make-the-lantiq-settings-match-vendor-drive.patch b/target/linux/lantiq/patches-4.4/0061-USB-DWC2-make-the-lantiq-settings-match-vendor-drive.patch index 1eda4cc4f1..d92e7b1dcf 100644 --- a/target/linux/lantiq/patches-4.4/0061-USB-DWC2-make-the-lantiq-settings-match-vendor-drive.patch +++ b/target/linux/lantiq/patches-4.4/0061-USB-DWC2-make-the-lantiq-settings-match-vendor-drive.patch @@ -23,16 +23,46 @@ Signed-off-by: Hauke Mehrtens --- a/drivers/usb/dwc2/platform.c +++ b/drivers/usb/dwc2/platform.c -@@ -116,7 +116,7 @@ static const struct dwc2_core_params par +@@ -116,7 +116,37 @@ static const struct dwc2_core_params par .hibernation = -1, }; -static const struct dwc2_core_params params_ltq = { ++static const struct dwc2_core_params params_danube = { ++ .otg_cap = 2, /* non-HNP/non-SRP */ ++ .otg_ver = -1, ++ .dma_enable = -1, ++ .dma_desc_enable = -1, ++ .speed = -1, ++ .enable_dynamic_fifo = -1, ++ .en_multiple_tx_fifo = -1, ++ .host_rx_fifo_size = -1, ++ .host_nperio_tx_fifo_size = -1, ++ .host_perio_tx_fifo_size = -1, ++ .max_transfer_size = -1, ++ .max_packet_count = -1, ++ .host_channels = -1, ++ .phy_type = -1, ++ .phy_utmi_width = -1, ++ .phy_ulpi_ddr = -1, ++ .phy_ulpi_ext_vbus = -1, ++ .i2c_enable = -1, ++ .ulpi_fs_ls = -1, ++ .host_support_fs_ls_low_power = -1, ++ .host_ls_low_power_phy_clk = -1, ++ .ts_dline = -1, ++ .reload_ctl = -1, ++ .ahbcfg = -1, ++ .uframe_sched = -1, ++ .external_id_pin_ctl = -1, ++ .hibernation = -1, ++}; ++ +static const struct dwc2_core_params params_ase = { .otg_cap = 2, /* non-HNP/non-SRP */ .otg_ver = -1, .dma_enable = -1, -@@ -127,8 +127,8 @@ static const struct dwc2_core_params par +@@ -127,8 +157,38 @@ static const struct dwc2_core_params par .host_rx_fifo_size = 288, /* 288 DWORDs */ .host_nperio_tx_fifo_size = 128, /* 128 DWORDs */ .host_perio_tx_fifo_size = 96, /* 96 DWORDs */ @@ -40,15 +70,17 @@ Signed-off-by: Hauke Mehrtens - .max_packet_count = 511, + .max_transfer_size = -1, + .max_packet_count = -1, - .host_channels = -1, - .phy_type = -1, - .phy_utmi_width = -1, -@@ -140,8 +140,37 @@ static const struct dwc2_core_params par - .host_ls_low_power_phy_clk = -1, - .ts_dline = -1, - .reload_ctl = -1, -- .ahbcfg = GAHBCFG_HBSTLEN_INCR16 << -- GAHBCFG_HBSTLEN_SHIFT, ++ .host_channels = -1, ++ .phy_type = -1, ++ .phy_utmi_width = -1, ++ .phy_ulpi_ddr = -1, ++ .phy_ulpi_ext_vbus = -1, ++ .i2c_enable = -1, ++ .ulpi_fs_ls = -1, ++ .host_support_fs_ls_low_power = -1, ++ .host_ls_low_power_phy_clk = -1, ++ .ts_dline = -1, ++ .reload_ctl = -1, + .ahbcfg = -1, + .uframe_sched = -1, + .external_id_pin_ctl = -1, @@ -68,28 +100,26 @@ Signed-off-by: Hauke Mehrtens + .host_perio_tx_fifo_size = 136, /* 136 DWORDs */ + .max_transfer_size = -1, + .max_packet_count = -1, -+ .host_channels = -1, -+ .phy_type = -1, -+ .phy_utmi_width = -1, -+ .phy_ulpi_ddr = -1, -+ .phy_ulpi_ext_vbus = -1, -+ .i2c_enable = -1, -+ .ulpi_fs_ls = -1, -+ .host_support_fs_ls_low_power = -1, -+ .host_ls_low_power_phy_clk = -1, -+ .ts_dline = -1, -+ .reload_ctl = -1, + .host_channels = -1, + .phy_type = -1, + .phy_utmi_width = -1, +@@ -140,8 +200,7 @@ static const struct dwc2_core_params par + .host_ls_low_power_phy_clk = -1, + .ts_dline = -1, + .reload_ctl = -1, +- .ahbcfg = GAHBCFG_HBSTLEN_INCR16 << +- GAHBCFG_HBSTLEN_SHIFT, + .ahbcfg = -1, .uframe_sched = -1, .external_id_pin_ctl = -1, .hibernation = -1, -@@ -341,8 +370,11 @@ static int dwc2_driver_remove(struct pla +@@ -341,8 +400,11 @@ static int dwc2_driver_remove(struct pla static const struct of_device_id dwc2_of_match_table[] = { { .compatible = "brcm,bcm2835-usb", .data = ¶ms_bcm2835 }, { .compatible = "rockchip,rk3066-usb", .data = ¶ms_rk3066 }, - { .compatible = "lantiq,arx100-usb", .data = ¶ms_ltq }, - { .compatible = "lantiq,xrx200-usb", .data = ¶ms_ltq }, -+ { .compatible = "lantiq,danube-usb", .data = NULL }, ++ { .compatible = "lantiq,danube-usb", .data = ¶ms_danube }, + { .compatible = "lantiq,ase-usb", .data = ¶ms_ase }, + { .compatible = "lantiq,arx100-usb", .data = ¶ms_ase }, + { .compatible = "lantiq,xrx200-usb", .data = ¶ms_xrx200 }, -- 2.30.2