Received: by 2002:a25:d7c1:0:0:0:0:0 with SMTP id o184csp3652304ybg; Mon, 28 Oct 2019 16:38:23 -0700 (PDT) X-Google-Smtp-Source: APXvYqylN8HDskrPymYtSUmBBgwAWDhFPRDYJPhsYfakgy9LnTwBULTdaJ3fmqIKGRx2zbzSLyTF X-Received: by 2002:a05:6402:1157:: with SMTP id g23mr23030877edw.260.1572305903437; Mon, 28 Oct 2019 16:38:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1572305903; cv=none; d=google.com; s=arc-20160816; b=WKsmurzyo16UgxMiY+ZPTJl7TS/CxJO7HJrPu3NLsAIGA4QXZMSeThcogb6vqi3Lwe nhYjg5TMLyoIX9T6CSYLs03xB+W9tNwP6qElzOOSg5P7ib4vbcHo6LzJpwMYAG0VVCOy F9XhQA32YGDK8sM1D0tKeL+ERtuhtAqStdxJ3knAc4xbDFEaGQkaVYvRQkMmjvKMx5jP SGruxwsKb9qoHUMeq4tMrF4BMCDA5qMbGyX7WFuTJCo+0YRyMVQnjV4ALsEGpqDd87bR 8XTX/Vle/XcSgN0RqSFlL9uvixeEpLHV8NTHfsWVHw9Ix1FqqF2m49yijcCvrthZ5Fmc JvgQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=Sf5eKNCSIBpNdFo6pBKVICUJYVHElXUrV/RD8eO146c=; b=luE5LKaatLjlMdPS8F8keNuCx8IU8juiBfS0SOxJ0RTFRkgz4SJNKQF98XDmEM7cVa ZcTEAYQjJ+YqavBc2iBKOirAXuFu8oB7A4v5sPxa1DIygiTsFBaceQs0JZbVwh/hkDOo BmCgVCAx9KbSVozcHeKeLKDPOHIpjKFMh2qz+0IB+R5hB1Xdo8jYQ6ErKnmBL312TWsn 6eLUJFm0cppCemYkHT46zqS9uNgZvZqBKtkNaYONC6718NrVybxafNPPolVDX23gTDyf qNfWJ0cq/0XzSgI2u34HHHIEApkQWpbtRoMiGyyCtpzNqX4hVNH0A1OgdIW5/t0f/B0T R2ow== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=lMEc5oJe; 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=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id qc28si7184699ejb.175.2019.10.28.16.37.59; Mon, 28 Oct 2019 16:38:23 -0700 (PDT) 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=@linaro.org header.s=google header.b=lMEc5oJe; 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=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2390545AbfJ1V7t (ORCPT + 99 others); Mon, 28 Oct 2019 17:59:49 -0400 Received: from mail-pf1-f193.google.com ([209.85.210.193]:40458 "EHLO mail-pf1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2390356AbfJ1V7c (ORCPT ); Mon, 28 Oct 2019 17:59:32 -0400 Received: by mail-pf1-f193.google.com with SMTP id r4so2215604pfl.7 for ; Mon, 28 Oct 2019 14:59:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Sf5eKNCSIBpNdFo6pBKVICUJYVHElXUrV/RD8eO146c=; b=lMEc5oJeuYWUcVxXpphSMAIRavQ29nAcI5d2oKIF5KsDKcFZnIO8Rcwx8rlC2A8Zf/ CF5EjelirIgQYnWaDQFgrG7r+Oh+liDGWYseTgIuogkTucMwvA9ZsP/LheVHE/zFsbcS MpnCEZ0dr7M6+w8sAnEgZXE/TPEx6kssrdjMLA9cAPy4zvF/Q7Z084sRASR5cfwrE156 Dq2WaWlxclZJyvBepM8NvQKGSkQV4UrmPKJjFOsfHATm/IoZihLaQwjrWyKTuHXgICUq DI5KCli3WtY+muIL2MpvQmZSAfF1FcdKcY0GT06yRWMhwtT4FmfKoizuKQyE3WTTIj8a t4yw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=Sf5eKNCSIBpNdFo6pBKVICUJYVHElXUrV/RD8eO146c=; b=J/xyK3xyNYmGTQxsIGQO4xCMFRD5jjqqQUQZDc8raoxMMRv5Q3AQrv9yjMPM+mbKqd WFgX4WsSdSci3omBboLUmHKxGG3eXBKXTtc3tRKVAAmKiEHOYyJF5kCNnY2sFbR5bCTW +QUGlBkJlP+D+oUC1mWhTH9PW7vpyUinZWzhQapn6kWVEe1kIYMx6WOPjJ0hCGhfad8x KdVMHnbZuHATOHiYOwmj9prY3iNaAvzOfs52BhvIPP6Aj13h8xwQqo1+Hj3uW9TgnZcc 0uQa63mJ8ne79TEx4rRWcbZqFYMXbZFtSTuPupFkMWUPhgzJT9b2U4yNzxvjQw8mbEko 96jQ== X-Gm-Message-State: APjAAAWgjIVX3/kPmINE1nDSlZ8Yf1xRQVvMOaBSwn3qUJplcYV1YCNi HsdTUgtRX2gkJMScgbCzQexSzFuc5EE= X-Received: by 2002:a62:5c07:: with SMTP id q7mr22638078pfb.159.1572299969484; Mon, 28 Oct 2019 14:59:29 -0700 (PDT) Received: from localhost.localdomain (c-67-170-172-113.hsd1.or.comcast.net. [67.170.172.113]) by smtp.gmail.com with ESMTPSA id f12sm10880612pfn.152.2019.10.28.14.59.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 28 Oct 2019 14:59:28 -0700 (PDT) From: John Stultz To: lkml Cc: John Stultz , Greg Kroah-Hartman , Rob Herring , Mark Rutland , ShuFan Lee , Heikki Krogerus , Suzuki K Poulose , Chunfeng Yun , Yu Chen , Felipe Balbi , Hans de Goede , Andy Shevchenko , Jun Li , Valentin Schneider , Jack Pham , linux-usb@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCH v4 5/9] usb: dwc3: Rework clock initialization to be more flexible Date: Mon, 28 Oct 2019 21:59:15 +0000 Message-Id: <20191028215919.83697-6-john.stultz@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191028215919.83697-1-john.stultz@linaro.org> References: <20191028215919.83697-1-john.stultz@linaro.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The dwc3 core binding specifies three clocks: ref, bus_early, and suspend which are all controlled in the driver together. However some variants of the hardware my not have all three clks So this patch reworks the reading of the clks from the dts to use devm_clk_bulk_get_all() will will fetch all the clocks specified in the dts together. This patch was reccomended by Rob Herring as an alternative to creating multiple bindings for each variant of hardware when the only unique bits were clocks and resets. Cc: Greg Kroah-Hartman Cc: Rob Herring Cc: Mark Rutland CC: ShuFan Lee Cc: Heikki Krogerus Cc: Suzuki K Poulose Cc: Chunfeng Yun Cc: Yu Chen Cc: Felipe Balbi Cc: Hans de Goede Cc: Andy Shevchenko Cc: Jun Li Cc: Valentin Schneider Cc: Jack Pham Cc: linux-usb@vger.kernel.org Cc: devicetree@vger.kernel.org Suggested-by: Rob Herring Signed-off-by: John Stultz --- v3: Rework dwc3 core rather then adding another dwc-of-simple binding. --- drivers/usb/dwc3/core.c | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c index a039e35ec7ad..4d4f1836b62c 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c @@ -305,12 +305,6 @@ static int dwc3_core_soft_reset(struct dwc3 *dwc) return 0; } -static const struct clk_bulk_data dwc3_core_clks[] = { - { .id = "ref" }, - { .id = "bus_early" }, - { .id = "suspend" }, -}; - /* * dwc3_frame_length_adjustment - Adjusts frame length if required * @dwc3: Pointer to our controller context structure @@ -1418,11 +1412,6 @@ static int dwc3_probe(struct platform_device *pdev) if (!dwc) return -ENOMEM; - dwc->clks = devm_kmemdup(dev, dwc3_core_clks, sizeof(dwc3_core_clks), - GFP_KERNEL); - if (!dwc->clks) - return -ENOMEM; - dwc->dev = dev; res = platform_get_resource(pdev, IORESOURCE_MEM, 0); @@ -1458,17 +1447,18 @@ static int dwc3_probe(struct platform_device *pdev) return PTR_ERR(dwc->reset); if (dev->of_node) { - dwc->num_clks = ARRAY_SIZE(dwc3_core_clks); - - ret = devm_clk_bulk_get(dev, dwc->num_clks, dwc->clks); + ret = devm_clk_bulk_get_all(dev, &dwc->clks); if (ret == -EPROBE_DEFER) return ret; /* * Clocks are optional, but new DT platforms should support all * clocks as required by the DT-binding. */ - if (ret) + if (ret < 0) dwc->num_clks = 0; + else + dwc->num_clks = ret; + } ret = reset_control_deassert(dwc->reset); -- 2.17.1