From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id BE01EC636CD for ; Tue, 7 Feb 2023 12:25:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231741AbjBGMZp (ORCPT ); Tue, 7 Feb 2023 07:25:45 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51618 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231733AbjBGMZn (ORCPT ); Tue, 7 Feb 2023 07:25:43 -0500 Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com [IPv6:2a00:1450:4864:20::433]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 24BFB37F25 for ; Tue, 7 Feb 2023 04:25:42 -0800 (PST) Received: by mail-wr1-x433.google.com with SMTP id h16so13347670wrz.12 for ; Tue, 07 Feb 2023 04:25:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=EnZqUDs+vOL9eLigF5zhRBTNLnRQCkndCOjGhTOrE2Y=; b=JM441Qqy+1fZmCJblSylYs6tj2fTsSrjmHEBvTFWYOCXkTdIp6bWHaNlTrN/gMI2LM +tuwvNETO57Xy5HH6EfrZRKMyVf5msaPShQfmXx5XED+SpBUl7jrNqS6AJwoyd0xTSQB bjYsDhCfsOMCJuRHlUUxwP17LalQGdrQgi7aBZ4qtuheMEg3/7vbWf9Z8gU/sWwMqNMa llN5umaTQX3fhTYJBh41eGqGHccL+Ui1Zu6pNkua9T54lMbevLn+tj62Or9yLKAdYieF PIfUwyWXLHo7TC3hefPdfd6MUo0MXo6dynyMJgFbMAY1tgtBEgreMERHEAgr5+wi/Zjn LtOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=EnZqUDs+vOL9eLigF5zhRBTNLnRQCkndCOjGhTOrE2Y=; b=HWKkrS4zEnnlzmMUkCf6QO6FyYlYgnU2RJ1CTYF/81wPaM19T4WMn0VEzASHAcwYk9 nuuHS0dxKSm8QgPleFmzhXjF4KUpiDR6HF3193wdR0Tebzt/T/myCNbaTAX3MCD6L0nb IBUXnNiyajiPNjEJL/0d7repdetV0hwnnSySpX+gGgNkVdSmQqmpMpVy8PXxJhD8pcNQ +N7RnxQvMI86gdfiRtov721mJ2j0+WHnDUGUO6YCZ80gPIQEtp857sx220y2D6fZSJfI oEDO3D6wVkcjR/fUzoAXijaWEbcASjyTmw8bb+4E2YVBOHIOhwodRnicqjnfOu6zl7XY 1xMw== X-Gm-Message-State: AO0yUKV74xTJyC3Kl9wB+Au3toisFQ5M969FWZF5tnHrQ9yprdKH7+BF LiLeHiEQfKT/Hf6mq90zbXSO/Q== X-Google-Smtp-Source: AK7set96v9kQl3blLgDHsC9KtC7U5aHC8Yd0qc798XB5lCqQIh/WZdWAaO6kvfN+pCiHtWLrDSOvog== X-Received: by 2002:a5d:4144:0:b0:2c3:e5f5:9fa9 with SMTP id c4-20020a5d4144000000b002c3e5f59fa9mr2444692wrq.67.1675772740668; Tue, 07 Feb 2023 04:25:40 -0800 (PST) Received: from linaro.org ([94.52.112.99]) by smtp.gmail.com with ESMTPSA id x18-20020adfffd2000000b002c3f1223059sm2099785wrs.36.2023.02.07.04.25.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Feb 2023 04:25:40 -0800 (PST) Date: Tue, 7 Feb 2023 14:25:38 +0200 From: Abel Vesa To: Dmitry Baryshkov Cc: Andy Gross , Bjorn Andersson , Konrad Dybcio , Lee Jones , Rob Herring , Krzysztof Kozlowski , "vkoul@kernel.org" , Kishon Vijay Abraham I , linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, Linux Kernel Mailing List , linux-phy@lists.infradead.org Subject: Re: [RFC v3 4/7] phy: qcom: Add QCOM SNPS eUSB2 repeater driver Message-ID: References: <20230202133816.4026990-1-abel.vesa@linaro.org> <20230202133816.4026990-5-abel.vesa@linaro.org> <6f326ed7-6799-b965-fe3a-1f046546ed44@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <6f326ed7-6799-b965-fe3a-1f046546ed44@linaro.org> Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org On 23-02-03 18:51:13, Dmitry Baryshkov wrote: > On 02/02/2023 15:38, Abel Vesa wrote: > > PM8550B contains a eUSB2 repeater used for making the eUSB2 from > > SM8550 USB 2.0 compliant. This can be modelled SW-wise as a Phy. > > So add a new phy driver for it. > > > > Signed-off-by: Abel Vesa > > --- > > drivers/phy/qualcomm/Kconfig | 9 + > > drivers/phy/qualcomm/Makefile | 1 + > > .../phy/qualcomm/phy-qcom-eusb2-repeater.c | 278 ++++++++++++++++++ > > 3 files changed, 288 insertions(+) > > create mode 100644 drivers/phy/qualcomm/phy-qcom-eusb2-repeater.c > > [ ... ] > > + > > +static int eusb2_repeater_init(struct phy *phy) > > +{ > > + struct eusb2_repeater *rptr = phy_get_drvdata(phy); > > + const struct eusb2_repeater_init_tbl *init_tbl = rptr->cfg->init_tbl; > > + int num = rptr->cfg->init_tbl_num; > > + int ret = 0; > > + u32 val; > > + int i; > > + > > + ret = regulator_bulk_enable(rptr->cfg->num_vregs, rptr->vregs); > > + if (ret) > > + return ret; > > + > > + regmap_update_bits(rptr->regmap, rptr->base + EUSB2_EN_CTL1, > > + EUSB2_RPTR_EN, EUSB2_RPTR_EN); > > + > > + for (i = 0; i < num; i++) > > + regmap_update_bits(rptr->regmap, > > + rptr->base + init_tbl[i].offset, > > + init_tbl[i].val, init_tbl[i].val); > > I'd move this to a separate function. Then you can use it in the set_mode() > too. > I don't think this is necessary in set_mode. > > + > > + ret = regmap_read_poll_timeout(rptr->regmap, > > + rptr->base + EUSB2_RPTR_STATUS, val, > > + val & RPTR_OK, 10, 5); > > + if (ret) > > + dev_err(rptr->dev, "initialization timed-out\n"); > > + > > + return ret; > > +} > > + [ ... ]