Thread (34 messages) 34 messages, 7 authors, 2019-03-13

Re: [PATCH v3 10/12] hikey960: Support usb functionality of Hikey960

From: Chen Yu <chenyu56@huawei.com>
Date: 2019-03-04 02:35:29
Also in: linux-usb, lkml

Hi Andy,

On 2019/3/3 0:01, Andy Shevchenko wrote:
On Sat, Mar 2, 2019 at 11:05 AM Yu Chen [off-list ref] wrote:
quoted
This driver handles usb hub power on and typeC port event of HiKey960 board:
1)DP&DM switching between usb hub and typeC port base on typeC port
state
2)Control power of usb hub on Hikey960
3)Control vbus of typeC port
quoted
+config HISI_HIKEY_USB
+       tristate "USB functionality of HiSilicon Hikey Platform"
+       depends on OF && GPIOLIB
+       help
+         If you say yes here you get support for usb functionality of HiSilicon Hikey Platform.
quoted
+#include <linux/of.h>
It's hard to see why this have
depends on OF followed by above header inclusion.
This driver depends on devicetree, so I add "depends on OF".
But is seems that "#include <linux/of.h>" can be removed after "of_" API
have been removed. Thanks for your reminder!
quoted
+       hisi_hikey_usb->typec_vbus = devm_gpiod_get(dev, "typec-vbus",
+                       GPIOD_OUT_LOW);
quoted
+       if (!hisi_hikey_usb->typec_vbus)
+               return -ENOENT;
Hmm... Is it possible to get NULL pointer from gpiod_get() at all?
quoted
+       if (!hisi_hikey_usb->otg_switch)
+               return -ENOENT;
Ditto.
I check the comments of devm_gpio_get API, it will not return NULL pointer.
But is it more safe to keep the NULL checking? What is your advice?
quoted
+       /* hub-vdd33-en is optional */
+       hisi_hikey_usb->hub_vbus = devm_gpiod_get(dev, "hub-vdd33-en",
+                       GPIOD_OUT_HIGH);
devm_gpio_get_optional() if it's indeed optional.
OK.Thanks!
quoted
+       hisi_hikey_usb->role_sw = usb_role_switch_get(dev);
+       if (!hisi_hikey_usb->role_sw)
+               return -EPROBE_DEFER;
quoted
+       else if (IS_ERR(hisi_hikey_usb->role_sw))
Redundant 'else'
OK.
quoted
+               return PTR_ERR(hisi_hikey_usb->role_sw);
quoted
+static const struct of_device_id id_table_hisi_hikey_usb[] = {
+       {.compatible = "hisilicon,gpio_hubv1"},
+       {.compatible = "hisilicon,hikey960_usb"},
+       {}
+};
MODULE_DEVICE_TABLE()?
OK.

Thanks
Yu Chen
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help