[LEDE-DEV] [PATCH] lantiq: fix missing otg_cap on danube platform
Hauke Mehrtens
hauke at hauke-m.de
Fri Aug 4 09:41:43 PDT 2017
On 07/29/2017 02:54 PM, Daniel Gonzalez Cabanelas wrote:
> 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 <dgcbueu at gmail.com>
> ---
> ...ke-the-lantiq-settings-match-vendor-drive.patch | 78 +++++++++++++++-------
> ...ke-the-lantiq-settings-match-vendor-drive.patch | 41 ++++++++++--
> 2 files changed, 90 insertions(+), 29 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 1eda4cc..d92e7b1 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 <hauke at hauke-m.de>
>
> --- 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 <hauke at hauke-m.de>
> - .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 <hauke at hauke-m.de>
> + .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,
What are you changing here? Is that related to your danube change?
> .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 },
> diff --git a/target/linux/lantiq/patches-4.9/0061-USB-DWC2-make-the-lantiq-settings-match-vendor-drive.patch b/target/linux/lantiq/patches-4.9/0061-USB-DWC2-make-the-lantiq-settings-match-vendor-drive.patch
> index bff603f..4d18443 100644
> --- a/target/linux/lantiq/patches-4.9/0061-USB-DWC2-make-the-lantiq-settings-match-vendor-drive.patch
> +++ b/target/linux/lantiq/patches-4.9/0061-USB-DWC2-make-the-lantiq-settings-match-vendor-drive.patch
> @@ -23,16 +23,47 @@ Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
>
> --- a/drivers/usb/dwc2/platform.c
> +++ b/drivers/usb/dwc2/platform.c
> -@@ -151,7 +151,7 @@ static const struct dwc2_core_params par
> +@@ -151,7 +151,38 @@ 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,
> ++ .dma_desc_fs_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,
> -@@ -163,8 +163,8 @@ static const struct dwc2_core_params par
> +@@ -163,8 +194,8 @@ 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 */
> @@ -43,7 +74,7 @@ Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
> .host_channels = -1,
> .phy_type = -1,
> .phy_utmi_width = -1,
> -@@ -176,8 +176,37 @@ static const struct dwc2_core_params par
> +@@ -176,8 +207,37 @@ static const struct dwc2_core_params par
> .host_ls_low_power_phy_clk = -1,
> .ts_dline = -1,
> .reload_ctl = -1,
> @@ -83,13 +114,13 @@ Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
> .uframe_sched = -1,
> .external_id_pin_ctl = -1,
> .hibernation = -1,
> -@@ -515,8 +544,11 @@ static const struct of_device_id dwc2_of
> +@@ -515,8 +575,11 @@ static const struct of_device_id dwc2_of
> { .compatible = "brcm,bcm2835-usb", .data = ¶ms_bcm2835 },
> { .compatible = "hisilicon,hi6220-usb", .data = ¶ms_hi6220 },
> { .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 },
>
More information about the Lede-dev
mailing list