forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-02-20 ea08eeccae9297f7aabd2ef7f0c2517ac4549acc
kernel/drivers/usb/chipidea/ci_hdrc_usb2.c
....@@ -28,13 +28,19 @@
2828 .flags = CI_HDRC_DISABLE_STREAMING,
2929 };
3030
31
-static struct ci_hdrc_platform_data ci_zynq_pdata = {
31
+static const struct ci_hdrc_platform_data ci_zynq_pdata = {
3232 .capoffset = DEF_CAPOFFSET,
3333 };
3434
35
+static const struct ci_hdrc_platform_data ci_zevio_pdata = {
36
+ .capoffset = DEF_CAPOFFSET,
37
+ .flags = CI_HDRC_REGS_SHARED | CI_HDRC_FORCE_FULLSPEED,
38
+};
39
+
3540 static const struct of_device_id ci_hdrc_usb2_of_match[] = {
36
- { .compatible = "chipidea,usb2"},
37
- { .compatible = "xlnx,zynq-usb-2.20a", .data = &ci_zynq_pdata},
41
+ { .compatible = "chipidea,usb2" },
42
+ { .compatible = "xlnx,zynq-usb-2.20a", .data = &ci_zynq_pdata },
43
+ { .compatible = "lsi,zevio-usb", .data = &ci_zevio_pdata },
3844 { }
3945 };
4046 MODULE_DEVICE_TABLE(of, ci_hdrc_usb2_of_match);
....@@ -64,13 +70,14 @@
6470 if (!priv)
6571 return -ENOMEM;
6672
67
- priv->clk = devm_clk_get(dev, NULL);
68
- if (!IS_ERR(priv->clk)) {
69
- ret = clk_prepare_enable(priv->clk);
70
- if (ret) {
71
- dev_err(dev, "failed to enable the clock: %d\n", ret);
72
- return ret;
73
- }
73
+ priv->clk = devm_clk_get_optional(dev, NULL);
74
+ if (IS_ERR(priv->clk))
75
+ return PTR_ERR(priv->clk);
76
+
77
+ ret = clk_prepare_enable(priv->clk);
78
+ if (ret) {
79
+ dev_err(dev, "failed to enable the clock: %d\n", ret);
80
+ return ret;
7481 }
7582
7683 ci_pdata->name = dev_name(dev);
....@@ -94,8 +101,7 @@
94101 return 0;
95102
96103 clk_err:
97
- if (!IS_ERR(priv->clk))
98
- clk_disable_unprepare(priv->clk);
104
+ clk_disable_unprepare(priv->clk);
99105 return ret;
100106 }
101107