Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp308525ybt; Fri, 19 Jun 2020 02:28:40 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxODA3YfAQH0EwdzN9tjNnsTNTLBQg1+JXUKjpCKVF0oWdhGwKLJ31oYuiq7qejyTp/4bR7 X-Received: by 2002:a05:6402:1c87:: with SMTP id cy7mr2385838edb.354.1592558920237; Fri, 19 Jun 2020 02:28:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592558920; cv=none; d=google.com; s=arc-20160816; b=rZ0pVBMC5Hi8TomHY3JzwE1FfukrdZi/LPdL62eYuDSlZQq5AqyG27xAcCpS7YlTz9 5TANUFGlJ9jP4FK4RKRxpykcXQi4zdnoAARMPcK73Gsn2ZGTOzUf8PAlIqQdKLAl0c2h jBn0IFVmTageb/J1SZo/QPcy3d6XTYNxu+zG4NNeRIZkTLuaWLYg7XG+RIjbvZmaOQXQ iMqOk8lMTB5XWc6LGErgoXfGWlLxo3hVfEWX901x6dqCXZn5d41uExbn7zlwUnJ4v3Pf TEez8c/fEpNijTP7UsiWRB5uVFmWXA8muaZROLb0GjDIJtYBbe1k7w0ICLfDtoSEpmX8 RGGA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent :content-transfer-encoding:references:in-reply-to:date:to:from :subject:message-id; bh=Mh/0meknaxYX9KEXNEABGvE6315En1i0gebN5oC4Zn0=; b=GpbPib/pV+qr/j9LDaX6qPE+bltFHvK5wrkD/0oH8PBfzAI1cU+a55EnJRIdUxFeeB MxRdnkiu3/2kK4Doe1xSNZnJ5mm2bJLSmYCGVk542MTPibEZPWRN1g05Z0RZwE95JhL6 8o9pNuOGXcR5do2ru0NsY6rC3a2zQ7MjGxM/RXaO7Jj0/9yrI4gHUVZlHWQwmjMfHAr6 yAdzSuezZFImEgpzkJ1yZ32eudgh+iL1CaEfUOqnRww+barb7UVft8011f1XV8AjofJo MufMBSmrkkMzCxnLUDtwhunl57ooJ6dLAXLpBe4HKqa3kZK0SLhS5G26g3CUAm/NlYfi n0FQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id n25si3621361ejc.60.2020.06.19.02.28.17; Fri, 19 Jun 2020 02:28:40 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728885AbgFSJYL convert rfc822-to-8bit (ORCPT + 99 others); Fri, 19 Jun 2020 05:24:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60272 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725290AbgFSJYK (ORCPT ); Fri, 19 Jun 2020 05:24:10 -0400 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 584D9C06174E for ; Fri, 19 Jun 2020 02:24:10 -0700 (PDT) Received: from lupine.hi.pengutronix.de ([2001:67c:670:100:3ad5:47ff:feaf:1a17] helo=lupine) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jmDFj-0003J1-B5; Fri, 19 Jun 2020 11:24:03 +0200 Received: from pza by lupine with local (Exim 4.92) (envelope-from ) id 1jmDFc-0005gQ-2L; Fri, 19 Jun 2020 11:23:56 +0200 Message-ID: <8eca5ec8f892f38d2b174c4d4b26c7d4fbdd69c4.camel@pengutronix.de> Subject: Re: [PATCH v4 2/2] phy: bcm63xx-usbh: Add BCM63xx USBH driver From: Philipp Zabel To: =?ISO-8859-1?Q?=C1lvaro_Fern=E1ndez?= Rojas , simon@fire.lp0.eu, jonas.gorski@gmail.com, kishon@ti.com, vkoul@kernel.org, robh+dt@kernel.org, f.fainelli@gmail.com, bcm-kernel-feedback-list@broadcom.com, krzk@kernel.org, gregkh@linuxfoundation.org, alcooperx@gmail.com, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org Date: Fri, 19 Jun 2020 11:23:55 +0200 In-Reply-To: <20200619085124.4029400-3-noltari@gmail.com> References: <20200619085124.4029400-1-noltari@gmail.com> <20200619085124.4029400-3-noltari@gmail.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8BIT User-Agent: Evolution 3.30.5-1.1 MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2001:67c:670:100:3ad5:47ff:feaf:1a17 X-SA-Exim-Mail-From: p.zabel@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Álvaro, On Fri, 2020-06-19 at 10:51 +0200, Álvaro Fernández Rojas wrote: > Add BCM63xx USBH PHY driver for BMIPS. > > Signed-off-by: Álvaro Fernández Rojas > --- > v4: several improvements: > - Use devm_platform_ioremap_resource. > - Code cleanups. > - Improve device mode config: > - Move USBH_SWAP_CONTROL device mode value to variant variable. > - Set USBH_UTMI_CONTROL1 register value (variant variable). > v3: introduce changes suggested by Florian: > - Add support for device mode. > v2: introduce changes suggested by Florian: > - Drop OF dependency (use device_get_match_data). > - Drop __initconst from variant tables. > - Use devm_clk_get_optional. > > drivers/phy/broadcom/Kconfig | 9 + > drivers/phy/broadcom/Makefile | 1 + > drivers/phy/broadcom/phy-bcm63xx-usbh.c | 457 ++++++++++++++++++++++++ > 3 files changed, 467 insertions(+) > create mode 100644 drivers/phy/broadcom/phy-bcm63xx-usbh.c > [...] > diff --git a/drivers/phy/broadcom/phy-bcm63xx-usbh.c b/drivers/phy/broadcom/phy-bcm63xx-usbh.c > new file mode 100644 > index 000000000000..79f913d86def > --- /dev/null > +++ b/drivers/phy/broadcom/phy-bcm63xx-usbh.c [...] > +static int __init bcm63xx_usbh_phy_probe(struct platform_device *pdev) > +{ > + struct device *dev = &pdev->dev; > + struct bcm63xx_usbh_phy *usbh; > + const struct bcm63xx_usbh_phy_variant *variant; > + struct phy *phy; > + struct phy_provider *phy_provider; > + > + usbh = devm_kzalloc(dev, sizeof(*usbh), GFP_KERNEL); > + if (!usbh) > + return -ENOMEM; > + > + variant = device_get_match_data(dev); > + if (!variant) > + return -EINVAL; > + usbh->variant = variant; > + > + usbh->base = devm_platform_ioremap_resource(pdev, 0); > + if (IS_ERR(usbh->base)) > + return PTR_ERR(usbh->base); > + > + usbh->reset = devm_reset_control_get(dev, NULL); Please use devm_reset_control_get_exclusive() instead. regards Philipp