Received: by 2002:ac0:aed5:0:0:0:0:0 with SMTP id t21csp1248020imb; Sat, 2 Mar 2019 08:02:57 -0800 (PST) X-Google-Smtp-Source: APXvYqwmaxy+KP5cvrqSW1HU4q/QMF/MxAgVV48RtiL/snUB4ftmFMUvI8T0XHLQezuB6ACCBx/C X-Received: by 2002:a62:1752:: with SMTP id 79mr11203892pfx.127.1551542577878; Sat, 02 Mar 2019 08:02:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1551542577; cv=none; d=google.com; s=arc-20160816; b=X8JCOEKu+/YP0lhutrtU2ICRdkrjODtvzIJqpflpKjQ65XEsk4LYvH/VfwwTJUzKLa LExSXE7dT7wMwSeicL48jI4G5w6AUI12hjHRmMW+8hGBC/7caE60cLYfk2tU3iRUlVS6 /vZADnMbOxxtDiPze9ESzt0ErX+0cQH3Tehzs/0qxgI8XsA3EpTNDVQa6jFI/da08Ui7 w70XmQS7rt+GpY4/I2j201WQYpp+FlD6kfydY1BjsCbiiF4b7iryUks7frn4sXjpCPBy 2HizYC2WGIUEiLBxGaDpxjsalCtfpGzADq6mEq3AI9Z4dPbq1KXUl5F3HNbpCNvbSoOO +Djg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=77ub38fIFJxl8yJ37/6ZpJoqvOE12BvpT17sf62gLQs=; b=xaUuL27rFYZsKuw8P16WsZ1BHuCKppFbArNpNUg9e18TLNStdKQLbh4rigpvDDPiOg IoNZBtH5m7UwvGd/HcXHs4mTHs0g4LcHMS0G4Fd7i3GiLOff1vJcfcUhwKi3r2M6V4G9 TtzLBcS53Q0QgwVHOdcMFaQyCO9yfOaZHULmLSw5LDYWEZBqVZJ2P+SugX8papCsufnN kVCBTLa1ELr7r26DCedK2Op/MXMWueWfZzPWBS2J1VP4HZN1ftCWZOA2KXyylsr1Lf0/ jwq2wBfxzsamctcoLgDWddkcfiOU9BYu/izLV5eR/pGmDCdkEUhik045oqe7g570z7Gx 9A3w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="CDvnEZ/4"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g14si826172pfh.190.2019.03.02.08.02.42; Sat, 02 Mar 2019 08:02:57 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="CDvnEZ/4"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726674AbfCBQBm (ORCPT + 99 others); Sat, 2 Mar 2019 11:01:42 -0500 Received: from mail-pf1-f193.google.com ([209.85.210.193]:38278 "EHLO mail-pf1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726282AbfCBQBl (ORCPT ); Sat, 2 Mar 2019 11:01:41 -0500 Received: by mail-pf1-f193.google.com with SMTP id n125so402912pfn.5; Sat, 02 Mar 2019 08:01:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=77ub38fIFJxl8yJ37/6ZpJoqvOE12BvpT17sf62gLQs=; b=CDvnEZ/4KXs2MJg1Hdqwdc1X5tGNmVW0er6TiAOc01XR3NB0ro2EzjDNSkYmQNf8ec vRBux7Dr9dCzQqIMoTnWpIuNiIqm2hWx4L8TtP4qiRkDJUq1j/Gs3lt3nctnoUPCoikL r3VHs/QAErnmeLXbxAZaDbMZeywraAdyChrCkJW9xr8pGkN1zu3JNuqGVP3lXBWDwVQc LRd+wY173SAbN2a9mib1QVynNQqeM1OZPXfcYmGxAbEjXu8TZR9Mj5oWpFJ+7W4A3SCp waIBUb9hK/lS9DMSzmqfM4s3yV3NsSkyi8wZYMH18xT6RsFQAebKWLywfEt/CdV9OTf3 o6mQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=77ub38fIFJxl8yJ37/6ZpJoqvOE12BvpT17sf62gLQs=; b=AM3f9KdvjqOwi19Ox06jQyV+GoTB3XTJFhwFjMVPYQ94I55Y3LV+LopxYPHntUC2mv I0ky5xtppZbR1ajiJ0khFEckj0n0Hydz2SgCrCXX94jepCauKFB72H1Z8pX5wc+ugoZT Ck+9EI0UID0RsT9L35YTWjnUzNQMebsCZ2v+NjbDW0k5uqNaXaRIvXNWIgZxsf9A0uJs 3qY863xBOgWyuLtNsdWtRM4tCnj84Wt6uCeoU48+AdNA/PhzothZ4ddDCMZlSsy1Dam/ DWqVTsCaNvZD6hCJABd7NUJ9j+GcKA3EQu2zREKZqFLv/f8SSGIrX70DnWVWMsl1gQ6r v96w== X-Gm-Message-State: APjAAAUTRBfWfrHpp3LqUoQEZdmrqOFmv8V4F8on0Q3+X6fi6nVkl3kY EX4mzbkKiEq0M4rSDvfpPR5QNA4ESIcyn+r4UHo= X-Received: by 2002:a63:1a25:: with SMTP id a37mr10642979pga.428.1551542500735; Sat, 02 Mar 2019 08:01:40 -0800 (PST) MIME-Version: 1.0 References: <20190302090505.65542-1-chenyu56@huawei.com> <20190302090505.65542-11-chenyu56@huawei.com> In-Reply-To: <20190302090505.65542-11-chenyu56@huawei.com> From: Andy Shevchenko Date: Sat, 2 Mar 2019 18:01:29 +0200 Message-ID: Subject: Re: [PATCH v3 10/12] hikey960: Support usb functionality of Hikey960 To: Yu Chen Cc: USB , devicetree , Linux Kernel Mailing List , John Stultz , Suzhuangluan , Kongfei , liuyu712@hisilicon.com, wanghu17@hisilicon.com, butao@hisilicon.com, Yao Chen , fangshengzhou@hisilicon.com, lipengcheng8@huawei.com, songxiaowei , xu yiping , xuyoujun4@huawei.com, yudongbin@hisilicon.com, zangleigang@hisilicon.com, Chunfeng Yun , Arnd Bergmann , Greg Kroah-Hartman , Binghui Wang , Heikki Krogerus Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, Mar 2, 2019 at 11:05 AM Yu Chen wrote: > > 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 > +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. > +#include It's hard to see why this have depends on OF followed by above header inclusion. > + hisi_hikey_usb->typec_vbus = devm_gpiod_get(dev, "typec-vbus", > + GPIOD_OUT_LOW); > + if (!hisi_hikey_usb->typec_vbus) > + return -ENOENT; Hmm... Is it possible to get NULL pointer from gpiod_get() at all? > + if (!hisi_hikey_usb->otg_switch) > + return -ENOENT; Ditto. > + /* 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. > + hisi_hikey_usb->role_sw = usb_role_switch_get(dev); > + if (!hisi_hikey_usb->role_sw) > + return -EPROBE_DEFER; > + else if (IS_ERR(hisi_hikey_usb->role_sw)) Redundant 'else' > + return PTR_ERR(hisi_hikey_usb->role_sw); > +static const struct of_device_id id_table_hisi_hikey_usb[] = { > + {.compatible = "hisilicon,gpio_hubv1"}, > + {.compatible = "hisilicon,hikey960_usb"}, > + {} > +}; MODULE_DEVICE_TABLE()? -- With Best Regards, Andy Shevchenko