[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 = &params_bcm2835 },
>   	{ .compatible = "rockchip,rk3066-usb", .data = &params_rk3066 },
>  -	{ .compatible = "lantiq,arx100-usb", .data = &params_ltq },
>  -	{ .compatible = "lantiq,xrx200-usb", .data = &params_ltq },
> -+	{ .compatible = "lantiq,danube-usb", .data = NULL },
> ++	{ .compatible = "lantiq,danube-usb", .data = &params_danube },
>  +	{ .compatible = "lantiq,ase-usb", .data = &params_ase },
>  +	{ .compatible = "lantiq,arx100-usb", .data = &params_ase },
>  +	{ .compatible = "lantiq,xrx200-usb", .data = &params_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 = &params_bcm2835 },
>   	{ .compatible = "hisilicon,hi6220-usb", .data = &params_hi6220 },
>   	{ .compatible = "rockchip,rk3066-usb", .data = &params_rk3066 },
>  -	{ .compatible = "lantiq,arx100-usb", .data = &params_ltq },
>  -	{ .compatible = "lantiq,xrx200-usb", .data = &params_ltq },
> -+	{ .compatible = "lantiq,danube-usb", .data = NULL },
> ++	{ .compatible = "lantiq,danube-usb", .data = &params_danube },
>  +	{ .compatible = "lantiq,ase-usb", .data = &params_ase },
>  +	{ .compatible = "lantiq,arx100-usb", .data = &params_ase },
>  +	{ .compatible = "lantiq,xrx200-usb", .data = &params_xrx200 },
> 



More information about the Lede-dev mailing list