From patchwork Thu May 4 17:36:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sebastian Reichel X-Patchwork-Id: 90162 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp501310vqo; Thu, 4 May 2023 10:47:54 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7MMUOeN9muiyYWhZw1PWqE0hbFufxAp8fQ9Gz5lQG3j/3F7BknvO66wDBWlz8DMQnE3opn X-Received: by 2002:a17:902:d2c4:b0:1a6:e27a:8a4d with SMTP id n4-20020a170902d2c400b001a6e27a8a4dmr5730764plc.2.1683222474196; Thu, 04 May 2023 10:47:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1683222474; cv=none; d=google.com; s=arc-20160816; b=J+vVxpgIqHavg2TQcDuFSEHJ9hp5iH5Y8SNxfataNcPRVKSDYVOGZDHBUxqZ05d4wB yALmOnD6O+HUUhii4wpchR5X/RdeECuFBr4cuXho5dl/tYhPlbRptSRFnd2snipCzDx2 /N1kAqvkyIMpK2YaJT0uwJ8KPFkyfwKY3XhlYbwqtYrSaNETml1vDuKwS2w0Li1CZRsD l1p//haYNoK9GDWLbLam54RLhfqhNE2jEH8OjsveAF2X+ynDN82LPugFG1lq+tVFFqtF KWb1RneXrlMT+qEQSTzagSIa8VJ0SwyKXaO/ahNSc/cjFob46vnrasFWy5ixJr6UKm7d 59bA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=mbw1UTbAEnpIssPdiCRisa9kOK3l2ulv6MG1MAbRwtM=; b=mHg+eRpL04pp/HVwL3+h0EKkcGx/7/Iawiq8eU708iZXvCJpZLxW6oPAZzCVP1hG5E 14rXCmibz4+fE+lYyS2EE1p8trReOGodFL6rlhzU8k3LSG6d3WKg7Oe6F4vinUra6aaC 1TGEQaLxNWRDQxIXSA7RYQ6SfJNK4QfqGofRDoFzkejn/MgjXI3QVkSlL+j70hOrVXLx WM1uPKIAt/FI5fD0znc4uLDcTz1iKlrjx7ek+pxkj6ayoRVvje+eQJj2hUdC8dG4vGrI plpIUmsSMljjQIhaM5n6Xwl7ny4mlM6P/uCqr5jTd+Dr8sit5aGRcnY2qlP2ESTyOqJe hTWQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b=NpltqfSV; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=collabora.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id mr24-20020a17090b239800b0024e60919369si2774642pjb.172.2023.05.04.10.47.38; Thu, 04 May 2023 10:47:54 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b=NpltqfSV; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=collabora.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229929AbjEDRg3 (ORCPT + 99 others); Thu, 4 May 2023 13:36:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35258 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229892AbjEDRg0 (ORCPT ); Thu, 4 May 2023 13:36:26 -0400 Received: from madras.collabora.co.uk (madras.collabora.co.uk [IPv6:2a00:1098:0:82:1000:25:2eeb:e5ab]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ED95549CD; Thu, 4 May 2023 10:36:24 -0700 (PDT) Received: from jupiter.universe (dyndsl-091-248-211-176.ewe-ip-backbone.de [91.248.211.176]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: sre) by madras.collabora.co.uk (Postfix) with ESMTPSA id EA68866056FE; Thu, 4 May 2023 18:36:22 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1683221783; bh=9fsvo32acedHCaThtF8k2m1ur9c/GCPctR4GqCPEwXU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NpltqfSVFS0l3UzBXGVQYp1rpHIyYiBMQEu/w1CF1ofYQizDApeT0rnqHYR+HqsJ9 MyAYN99RubFxctBVkDUP1MGfghZW2mtSgMQ9tVpEHMCcimpH6gXxnCrG/Z7OWU5Ldo 3jT1TkDeaU27adW+Koy3GZkNgViWfurWkdL2KyJE7BTDSnH5FJZnmKepTkstvT6xYB ZL1rqG4Ymt93PwXwHw9lOMHvo4XCBcoZg/OVmXFk78+LCG3s1NAReDedEJQ9UbA1b8 5ZAyma6XLXzi11BjpbnynKyuusDt9RGkb6cI8GuS5jmDu9DBszlLF3doyWroY6dYWw XfsTDzPugGUgQ== Received: by jupiter.universe (Postfix, from userid 1000) id D68834807E0; Thu, 4 May 2023 19:36:20 +0200 (CEST) From: Sebastian Reichel To: Heiko Stuebner , Rob Herring , Krzysztof Kozlowski , Lee Jones Cc: Michael Turquette , Stephen Boyd , Linus Walleij , Mark Brown , Liam Girdwood , Alexandre Belloni , Alessandro Zummo , linux-rockchip@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Sebastian Reichel , kernel@collabora.com, Diederik de Haas , Vincent Legoll Subject: [PATCH v8 01/14] clk: RK808: reduce 'struct rk808' usage Date: Thu, 4 May 2023 19:36:05 +0200 Message-Id: <20230504173618.142075-2-sebastian.reichel@collabora.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230504173618.142075-1-sebastian.reichel@collabora.com> References: <20230504173618.142075-1-sebastian.reichel@collabora.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1764986688964402643?= X-GMAIL-MSGID: =?utf-8?q?1764986688964402643?= Reduce usage of 'struct rk808' (driver data of the parent MFD), so that only the chip variant field is still being accessed directly. This allows restructuring the MFD driver to support SPI based PMICs. Acked-by: Stephen Boyd Tested-by: Diederik de Haas # Rock64, Quartz64 Model A + B Tested-by: Vincent Legoll # Pine64 QuartzPro64 Signed-off-by: Sebastian Reichel --- drivers/clk/clk-rk808.c | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/drivers/clk/clk-rk808.c b/drivers/clk/clk-rk808.c index 32f833d732ed..f7412b137e5e 100644 --- a/drivers/clk/clk-rk808.c +++ b/drivers/clk/clk-rk808.c @@ -12,10 +12,9 @@ #include #include #include -#include struct rk808_clkout { - struct rk808 *rk808; + struct regmap *regmap; struct clk_hw clkout1_hw; struct clk_hw clkout2_hw; }; @@ -31,9 +30,8 @@ static int rk808_clkout2_enable(struct clk_hw *hw, bool enable) struct rk808_clkout *rk808_clkout = container_of(hw, struct rk808_clkout, clkout2_hw); - struct rk808 *rk808 = rk808_clkout->rk808; - return regmap_update_bits(rk808->regmap, RK808_CLK32OUT_REG, + return regmap_update_bits(rk808_clkout->regmap, RK808_CLK32OUT_REG, CLK32KOUT2_EN, enable ? CLK32KOUT2_EN : 0); } @@ -52,10 +50,9 @@ static int rk808_clkout2_is_prepared(struct clk_hw *hw) struct rk808_clkout *rk808_clkout = container_of(hw, struct rk808_clkout, clkout2_hw); - struct rk808 *rk808 = rk808_clkout->rk808; uint32_t val; - int ret = regmap_read(rk808->regmap, RK808_CLK32OUT_REG, &val); + int ret = regmap_read(rk808_clkout->regmap, RK808_CLK32OUT_REG, &val); if (ret < 0) return ret; @@ -93,9 +90,8 @@ static int rk817_clkout2_enable(struct clk_hw *hw, bool enable) struct rk808_clkout *rk808_clkout = container_of(hw, struct rk808_clkout, clkout2_hw); - struct rk808 *rk808 = rk808_clkout->rk808; - return regmap_update_bits(rk808->regmap, RK817_SYS_CFG(1), + return regmap_update_bits(rk808_clkout->regmap, RK817_SYS_CFG(1), RK817_CLK32KOUT2_EN, enable ? RK817_CLK32KOUT2_EN : 0); } @@ -115,10 +111,9 @@ static int rk817_clkout2_is_prepared(struct clk_hw *hw) struct rk808_clkout *rk808_clkout = container_of(hw, struct rk808_clkout, clkout2_hw); - struct rk808 *rk808 = rk808_clkout->rk808; unsigned int val; - int ret = regmap_read(rk808->regmap, RK817_SYS_CFG(1), &val); + int ret = regmap_read(rk808_clkout->regmap, RK817_SYS_CFG(1), &val); if (ret < 0) return 0; @@ -153,18 +148,21 @@ static const struct clk_ops *rkpmic_get_ops(long variant) static int rk808_clkout_probe(struct platform_device *pdev) { struct rk808 *rk808 = dev_get_drvdata(pdev->dev.parent); - struct i2c_client *client = rk808->i2c; - struct device_node *node = client->dev.of_node; + struct device *dev = &pdev->dev; struct clk_init_data init = {}; struct rk808_clkout *rk808_clkout; int ret; - rk808_clkout = devm_kzalloc(&client->dev, + dev->of_node = pdev->dev.parent->of_node; + + rk808_clkout = devm_kzalloc(dev, sizeof(*rk808_clkout), GFP_KERNEL); if (!rk808_clkout) return -ENOMEM; - rk808_clkout->rk808 = rk808; + rk808_clkout->regmap = dev_get_regmap(pdev->dev.parent, NULL); + if (!rk808_clkout->regmap) + return -ENODEV; init.parent_names = NULL; init.num_parents = 0; @@ -173,10 +171,10 @@ static int rk808_clkout_probe(struct platform_device *pdev) rk808_clkout->clkout1_hw.init = &init; /* optional override of the clockname */ - of_property_read_string_index(node, "clock-output-names", + of_property_read_string_index(dev->of_node, "clock-output-names", 0, &init.name); - ret = devm_clk_hw_register(&client->dev, &rk808_clkout->clkout1_hw); + ret = devm_clk_hw_register(dev, &rk808_clkout->clkout1_hw); if (ret) return ret; @@ -185,10 +183,10 @@ static int rk808_clkout_probe(struct platform_device *pdev) rk808_clkout->clkout2_hw.init = &init; /* optional override of the clockname */ - of_property_read_string_index(node, "clock-output-names", + of_property_read_string_index(dev->of_node, "clock-output-names", 1, &init.name); - ret = devm_clk_hw_register(&client->dev, &rk808_clkout->clkout2_hw); + ret = devm_clk_hw_register(dev, &rk808_clkout->clkout2_hw); if (ret) return ret;