From patchwork Tue Mar 7 15:36:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sebastian Reichel X-Patchwork-Id: 65649 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:570d:b0:a1:2e52:cf23 with SMTP id h13csp1976918dyk; Tue, 7 Mar 2023 07:52:27 -0800 (PST) X-Google-Smtp-Source: AK7set8on29jugrAioqaOJUTU5FNIrhBGHN2/+hxWD39SQ/km4bFTZA1TyLQf2xDcSBbuwR3GVZd X-Received: by 2002:a05:6402:1b1a:b0:4bb:c14d:1803 with SMTP id by26-20020a0564021b1a00b004bbc14d1803mr12640562edb.30.1678204347560; Tue, 07 Mar 2023 07:52:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678204347; cv=none; d=google.com; s=arc-20160816; b=AbKlkcgcXb8LxbaqCS4rbqyPlccDidLbxjZ8dFqHp+ye7MR80EovRK4OkyBSa2f3xZ loBib+q3RuHP9JbvH9m5sJHkBHtk7Z9pVTyFkJZabQmOas3SOo4bOHXA+MfPjjJmaGbU bnHY6Uvp6lEGPcON8rEt7Cq8+EnB3dqtpSClneTJydcmF/lwoRkAjpFW4saSOFsYfUBx +2RSwsMVrfCOialEEb1bn2k244FTF4fiR4gptWfvofyxGu7F9ilqYZ/50donAPBYRMP0 /3W6zr2NAShOCNK70KWEzEhsd5amQn9KKq+f9EuuU2AaDNjoq+rauh8BCsYxoeQgjPZF HtqA== 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=uyjv3GuBebMOo/SFsZ5E2nhb6C5ZgQK3El5uMgrkSgY=; b=MPkTHP/2/jdpVEDGBwAMcqRKuiBn/gR20DuJ/XLu4crNm33qp9NlM4pZT5DNyqAGDO 8VdDH6FxpKbI1hQbAZE6S5W0cES6GJUYDXUwH4kNQsWEvcqrNr0QiXbzF0fb5PPFGPZ+ WKg8f/3Qk+gFM1v+TeJUsNxr2mSsXP93ax/GHnhfyE0JlD/elNRzBWHE4y4wSAiRGI/6 /9EEK5vn2OhklmcleP3a5kZY5HyQlHiiRNux3SIQFQFzkCdiEd4sDd9qZzf6z4iwhZUu 7YPSvPZ70OjlMrXbl0otuR8B5xPnNyxqn21hEvWW4vEDJfeS3tEnpvYlhQ6jpf9dhz1J 4Ibg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b=XJeWpaLN; 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 s20-20020a170906961400b008de4a641fdasi835155ejx.193.2023.03.07.07.52.02; Tue, 07 Mar 2023 07:52:27 -0800 (PST) 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=XJeWpaLN; 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 S231354AbjCGPgp (ORCPT + 99 others); Tue, 7 Mar 2023 10:36:45 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37914 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230244AbjCGPgf (ORCPT ); Tue, 7 Mar 2023 10:36:35 -0500 Received: from madras.collabora.co.uk (madras.collabora.co.uk [46.235.227.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 595A34FAB6; Tue, 7 Mar 2023 07:36:23 -0800 (PST) Received: from jupiter.universe (dyndsl-091-248-189-073.ewe-ip-backbone.de [91.248.189.73]) (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 262E06602F58; Tue, 7 Mar 2023 15:36:21 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1678203381; bh=dKt7VxynyLliS0chRw/QniBs4lCx58R+UFw3rEP6Vms=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XJeWpaLNUx6vWlUyhVZqyiYAfyHaNgkZ8/oFBD0QVBM2kX6XmlOws18fPnng90RTh KbQz3+wg/5IzxskjHmdc7zerMAmqIRGsFM+8+oS2EZfyp3boVvLBUNkEyzaTh4jL8x 1+ERnKFJgfwRZQLWgkGsHBXdDcIRVQ97UovtFIBKhvfRKlKgLxQBi4L2mquhfesZ0I RWeF0Mkz+0LH9599qQmZshpikyiZxh7cPzqg32wxCKlBFNeHEkZsWbHip9ttoaj0VX aKc1lr5CAwGYh/pTenpRs5fVGSW+FiUheNGTuHT1qeuiHtzOsgp69L66iOc1+jiVrg AIOP+UMRqJPow== Received: by jupiter.universe (Postfix, from userid 1000) id 1F48148010A; Tue, 7 Mar 2023 16:36:19 +0100 (CET) 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 Subject: [PATCHv7 01/11] clk: RK808: reduce 'struct rk808' usage Date: Tue, 7 Mar 2023 16:36:07 +0100 Message-Id: <20230307153617.643260-2-sebastian.reichel@collabora.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230307153617.643260-1-sebastian.reichel@collabora.com> References: <20230307153617.643260-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, 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?1759724802088200974?= X-GMAIL-MSGID: =?utf-8?q?1759724802088200974?= 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. Signed-off-by: Sebastian Reichel Acked-by: Stephen Boyd --- 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;