diff mbox

usb: dwc2: add support of hi6220

Message ID 1447832387-27549-1-git-send-email-zhangfei.gao@linaro.org
State Not Applicable, archived
Headers show

Commit Message

Zhangfei Gao Nov. 18, 2015, 7:39 a.m. UTC
Support hisilicon,hi6220-usb for HiKey board

Signed-off-by: Zhangfei Gao <zhangfei.gao@linaro.org>
---
 Documentation/devicetree/bindings/usb/dwc2.txt |  1 +
 drivers/usb/dwc2/platform.c                    | 32 ++++++++++++++++++++++++++
 2 files changed, 33 insertions(+)

Comments

Rob Herring (Arm) Nov. 18, 2015, 11:03 p.m. UTC | #1
On Wed, Nov 18, 2015 at 03:39:47PM +0800, Zhangfei Gao wrote:
> Support hisilicon,hi6220-usb for HiKey board
> 
> Signed-off-by: Zhangfei Gao <zhangfei.gao@linaro.org>
> ---
>  Documentation/devicetree/bindings/usb/dwc2.txt |  1 +

For the binding:

Acked-by: Rob Herring <robh@kernel.org>

>  drivers/usb/dwc2/platform.c                    | 32 ++++++++++++++++++++++++++
>  2 files changed, 33 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/usb/dwc2.txt b/Documentation/devicetree/bindings/usb/dwc2.txt
> index fd132cb..2213682 100644
> --- a/Documentation/devicetree/bindings/usb/dwc2.txt
> +++ b/Documentation/devicetree/bindings/usb/dwc2.txt
> @@ -4,6 +4,7 @@ Platform DesignWare HS OTG USB 2.0 controller
>  Required properties:
>  - compatible : One of:
>    - brcm,bcm2835-usb: The DWC2 USB controller instance in the BCM2835 SoC.
> +  - hisilicon,hi6220-usb: The DWC2 USB controller instance in the hi6220 SoC.
>    - rockchip,rk3066-usb: The DWC2 USB controller instance in the rk3066 Soc;
>    - "rockchip,rk3188-usb", "rockchip,rk3066-usb", "snps,dwc2": for rk3188 Soc;
>    - "rockchip,rk3288-usb", "rockchip,rk3066-usb", "snps,dwc2": for rk3288 Soc;
> diff --git a/drivers/usb/dwc2/platform.c b/drivers/usb/dwc2/platform.c
> index 5859b0f..a5cb1bf 100644
> --- a/drivers/usb/dwc2/platform.c
> +++ b/drivers/usb/dwc2/platform.c
> @@ -54,6 +54,37 @@
>  
>  static const char dwc2_driver_name[] = "dwc2";
>  
> +static const struct dwc2_core_params params_hi6220 = {
> +	.otg_cap			= 2,	/* No HNP/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		= 512,
> +	.host_nperio_tx_fifo_size	= 512,
> +	.host_perio_tx_fifo_size	= 512,
> +	.max_transfer_size		= 65535,
> +	.max_packet_count		= 511,
> +	.host_channels			= 16,
> +	.phy_type			= 1,	/* UTMI */
> +	.phy_utmi_width			= 8,
> +	.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				= GAHBCFG_HBSTLEN_INCR16 <<
> +					  GAHBCFG_HBSTLEN_SHIFT,
> +	.uframe_sched			= 0,
> +	.external_id_pin_ctl		= -1,
> +	.hibernation			= -1,
> +};
> +
>  static const struct dwc2_core_params params_bcm2835 = {
>  	.otg_cap			= 0,	/* HNP/SRP capable */
>  	.otg_ver			= 0,	/* 1.3 */
> @@ -282,6 +313,7 @@ static int dwc2_driver_remove(struct platform_device *dev)
>  
>  static const struct of_device_id dwc2_of_match_table[] = {
>  	{ .compatible = "brcm,bcm2835-usb", .data = &params_bcm2835 },
> +	{ .compatible = "hisilicon,hi6220-usb", .data = &params_hi6220 },
>  	{ .compatible = "rockchip,rk3066-usb", .data = &params_rk3066 },
>  	{ .compatible = "snps,dwc2", .data = NULL },
>  	{ .compatible = "samsung,s3c6400-hsotg", .data = NULL},
> -- 
> 1.9.1
> 
> --
> To unsubscribe from this list: send the line "unsubscribe devicetree" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
John Youn Nov. 19, 2015, 2:36 a.m. UTC | #2
On 11/17/2015 11:39 PM, Zhangfei Gao wrote:
> Support hisilicon,hi6220-usb for HiKey board
> 
> Signed-off-by: Zhangfei Gao <zhangfei.gao@linaro.org>
> ---
>  Documentation/devicetree/bindings/usb/dwc2.txt |  1 +
>  drivers/usb/dwc2/platform.c                    | 32 ++++++++++++++++++++++++++
>  2 files changed, 33 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/usb/dwc2.txt b/Documentation/devicetree/bindings/usb/dwc2.txt
> index fd132cb..2213682 100644
> --- a/Documentation/devicetree/bindings/usb/dwc2.txt
> +++ b/Documentation/devicetree/bindings/usb/dwc2.txt
> @@ -4,6 +4,7 @@ Platform DesignWare HS OTG USB 2.0 controller
>  Required properties:
>  - compatible : One of:
>    - brcm,bcm2835-usb: The DWC2 USB controller instance in the BCM2835 SoC.
> +  - hisilicon,hi6220-usb: The DWC2 USB controller instance in the hi6220 SoC.
>    - rockchip,rk3066-usb: The DWC2 USB controller instance in the rk3066 Soc;
>    - "rockchip,rk3188-usb", "rockchip,rk3066-usb", "snps,dwc2": for rk3188 Soc;
>    - "rockchip,rk3288-usb", "rockchip,rk3066-usb", "snps,dwc2": for rk3288 Soc;
> diff --git a/drivers/usb/dwc2/platform.c b/drivers/usb/dwc2/platform.c
> index 5859b0f..a5cb1bf 100644
> --- a/drivers/usb/dwc2/platform.c
> +++ b/drivers/usb/dwc2/platform.c
> @@ -54,6 +54,37 @@
>  
>  static const char dwc2_driver_name[] = "dwc2";
>  
> +static const struct dwc2_core_params params_hi6220 = {
> +	.otg_cap			= 2,	/* No HNP/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		= 512,
> +	.host_nperio_tx_fifo_size	= 512,
> +	.host_perio_tx_fifo_size	= 512,
> +	.max_transfer_size		= 65535,
> +	.max_packet_count		= 511,
> +	.host_channels			= 16,
> +	.phy_type			= 1,	/* UTMI */
> +	.phy_utmi_width			= 8,
> +	.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				= GAHBCFG_HBSTLEN_INCR16 <<
> +					  GAHBCFG_HBSTLEN_SHIFT,
> +	.uframe_sched			= 0,
> +	.external_id_pin_ctl		= -1,
> +	.hibernation			= -1,
> +};
> +
>  static const struct dwc2_core_params params_bcm2835 = {
>  	.otg_cap			= 0,	/* HNP/SRP capable */
>  	.otg_ver			= 0,	/* 1.3 */
> @@ -282,6 +313,7 @@ static int dwc2_driver_remove(struct platform_device *dev)
>  
>  static const struct of_device_id dwc2_of_match_table[] = {
>  	{ .compatible = "brcm,bcm2835-usb", .data = &params_bcm2835 },
> +	{ .compatible = "hisilicon,hi6220-usb", .data = &params_hi6220 },
>  	{ .compatible = "rockchip,rk3066-usb", .data = &params_rk3066 },
>  	{ .compatible = "snps,dwc2", .data = NULL },
>  	{ .compatible = "samsung,s3c6400-hsotg", .data = NULL},
> 

Acked-by: John Youn <johnyoun@synopsys.com>

Regards,
John


--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Felipe Balbi Nov. 19, 2015, 7:04 p.m. UTC | #3
Hi,

Zhangfei Gao <zhangfei.gao@linaro.org> writes:
> Support hisilicon,hi6220-usb for HiKey board
>
> Signed-off-by: Zhangfei Gao <zhangfei.gao@linaro.org>

doesn't apply:

Applying: usb: dwc2: add support of hi6220
error: drivers/usb/dwc2/platform.c: does not match index
Patch failed at 0001 usb: dwc2: add support of hi6220
The copy of the patch that failed is found in: workspace/linux/.git/rebase-apply/patch
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

Care to rebase on my testing/next and also collect John's and Rob's ack ?
John Youn Nov. 20, 2015, 4:58 a.m. UTC | #4
On 11/19/2015 11:04 AM, Felipe Balbi wrote:
> 
> Hi,
> 
> Zhangfei Gao <zhangfei.gao@linaro.org> writes:
>> Support hisilicon,hi6220-usb for HiKey board
>>
>> Signed-off-by: Zhangfei Gao <zhangfei.gao@linaro.org>
> 
> doesn't apply:
> 
> Applying: usb: dwc2: add support of hi6220
> error: drivers/usb/dwc2/platform.c: does not match index
> Patch failed at 0001 usb: dwc2: add support of hi6220
> The copy of the patch that failed is found in: workspace/linux/.git/rebase-apply/patch
> When you have resolved this problem, run "git am --continue".
> If you prefer to skip this patch, run "git am --skip" instead.
> To restore the original branch and stop patching, run "git am --abort".
> 
> Care to rebase on my testing/next and also collect John's and Rob's ack ?
> 


That's weird. I just sync'd to your testing/next and it seems to
apply fine.

Same with the series from Gregory Herrero.

Any chance it's something to do with your local repo?

Regards,
John

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Felipe Balbi Nov. 20, 2015, 3:34 p.m. UTC | #5
Hi,

John Youn <John.Youn@synopsys.com> writes:
> On 11/19/2015 11:04 AM, Felipe Balbi wrote:
>> 
>> Hi,
>> 
>> Zhangfei Gao <zhangfei.gao@linaro.org> writes:
>>> Support hisilicon,hi6220-usb for HiKey board
>>>
>>> Signed-off-by: Zhangfei Gao <zhangfei.gao@linaro.org>
>> 
>> doesn't apply:
>> 
>> Applying: usb: dwc2: add support of hi6220
>> error: drivers/usb/dwc2/platform.c: does not match index
>> Patch failed at 0001 usb: dwc2: add support of hi6220
>> The copy of the patch that failed is found in: workspace/linux/.git/rebase-apply/patch
>> When you have resolved this problem, run "git am --continue".
>> If you prefer to skip this patch, run "git am --skip" instead.
>> To restore the original branch and stop patching, run "git am --abort".
>> 
>> Care to rebase on my testing/next and also collect John's and Rob's ack ?
>> 
>
>
> That's weird. I just sync'd to your testing/next and it seems to
> apply fine.
>
> Same with the series from Gregory Herrero.
>
> Any chance it's something to do with your local repo?

odd. Seems like it works if I apply manually with git am, but fails if I
pipe message from emacs to git am. Oh well, let me try again.
Felipe Balbi Nov. 20, 2015, 5:20 p.m. UTC | #6
"Herrero, Gregory" <gregory.herrero@intel.com> writes:

> Hi Felipe,
>
> I just realized this patch miss "dma_desc_fs_enable" property in
> params_hi6220. (drivers/usb/dwc2/platform.c:57)
>
> You need to apply this patch:
>
> diff --git a/drivers/usb/dwc2/platform.c b/drivers/usb/dwc2/platform.c
> index d5102c4..2dfdae3 100644
> --- a/drivers/usb/dwc2/platform.c
> +++ b/drivers/usb/dwc2/platform.c
> @@ -59,6 +59,7 @@ static const struct dwc2_core_params params_hi6220 = {
>         .otg_ver                        = 0,    /* 1.3 */
>         .dma_enable                     = 1,
>         .dma_desc_enable                = 0,
> +       .dma_desc_fs_enable             = 0,
>         .speed                          = 0,    /* High Speed */
>         .enable_dynamic_fifo            = 1,
>         .en_multiple_tx_fifo            = 1,
>
>
> Note that it is needed due to below patch.
> "usb: dwc2: host: enable descriptor dma for fs devices"

done, thanks.
Zhangfei Gao Nov. 23, 2015, 3:51 a.m. UTC | #7
On 11/20/2015 11:34 PM, Felipe Balbi wrote:

> John Youn <John.Youn@synopsys.com> writes:

>> That's weird. I just sync'd to your testing/next and it seems to
>> apply fine.
>>
>> Same with the series from Gregory Herrero.
>>
>> Any chance it's something to do with your local repo?
>
> odd. Seems like it works if I apply manually with git am, but fails if I
> pipe message from emacs to git am. Oh well, let me try again.
>

Thanks Felipe & John, have verified hi6220 usb on testing/next.

Thanks
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/usb/dwc2.txt b/Documentation/devicetree/bindings/usb/dwc2.txt
index fd132cb..2213682 100644
--- a/Documentation/devicetree/bindings/usb/dwc2.txt
+++ b/Documentation/devicetree/bindings/usb/dwc2.txt
@@ -4,6 +4,7 @@  Platform DesignWare HS OTG USB 2.0 controller
 Required properties:
 - compatible : One of:
   - brcm,bcm2835-usb: The DWC2 USB controller instance in the BCM2835 SoC.
+  - hisilicon,hi6220-usb: The DWC2 USB controller instance in the hi6220 SoC.
   - rockchip,rk3066-usb: The DWC2 USB controller instance in the rk3066 Soc;
   - "rockchip,rk3188-usb", "rockchip,rk3066-usb", "snps,dwc2": for rk3188 Soc;
   - "rockchip,rk3288-usb", "rockchip,rk3066-usb", "snps,dwc2": for rk3288 Soc;
diff --git a/drivers/usb/dwc2/platform.c b/drivers/usb/dwc2/platform.c
index 5859b0f..a5cb1bf 100644
--- a/drivers/usb/dwc2/platform.c
+++ b/drivers/usb/dwc2/platform.c
@@ -54,6 +54,37 @@ 
 
 static const char dwc2_driver_name[] = "dwc2";
 
+static const struct dwc2_core_params params_hi6220 = {
+	.otg_cap			= 2,	/* No HNP/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		= 512,
+	.host_nperio_tx_fifo_size	= 512,
+	.host_perio_tx_fifo_size	= 512,
+	.max_transfer_size		= 65535,
+	.max_packet_count		= 511,
+	.host_channels			= 16,
+	.phy_type			= 1,	/* UTMI */
+	.phy_utmi_width			= 8,
+	.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				= GAHBCFG_HBSTLEN_INCR16 <<
+					  GAHBCFG_HBSTLEN_SHIFT,
+	.uframe_sched			= 0,
+	.external_id_pin_ctl		= -1,
+	.hibernation			= -1,
+};
+
 static const struct dwc2_core_params params_bcm2835 = {
 	.otg_cap			= 0,	/* HNP/SRP capable */
 	.otg_ver			= 0,	/* 1.3 */
@@ -282,6 +313,7 @@  static int dwc2_driver_remove(struct platform_device *dev)
 
 static const struct of_device_id dwc2_of_match_table[] = {
 	{ .compatible = "brcm,bcm2835-usb", .data = &params_bcm2835 },
+	{ .compatible = "hisilicon,hi6220-usb", .data = &params_hi6220 },
 	{ .compatible = "rockchip,rk3066-usb", .data = &params_rk3066 },
 	{ .compatible = "snps,dwc2", .data = NULL },
 	{ .compatible = "samsung,s3c6400-hsotg", .data = NULL},