From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751224AbeAVOag (ORCPT ); Mon, 22 Jan 2018 09:30:36 -0500 Received: from mailout1.w1.samsung.com ([210.118.77.11]:48150 "EHLO mailout1.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751070AbeAVOad (ORCPT ); Mon, 22 Jan 2018 09:30:33 -0500 DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20180122143031euoutp017e380f0cc56bdfd408481ed472a1c775~MKEBP71Mh2788227882euoutp01j X-AuditID: cbfec7f5-f79d06d0000031c7-9c-5a65f586b2da From: Maciej Purski To: linux-kernel@vger.kernel.org, devicetree@vger.kernel.org Cc: Mark Brown , Liam Girdwood , Rob Herring , Mark Rutland , Marek Szyprowski , Doug Anderson , Bartlomiej Zolnierkiewicz , Maciej Purski Subject: [PATCH v4 1/7] regulator: core: Move of_find_regulator_by_node() to of_regulator.c Date: Mon, 22 Jan 2018 15:30:06 +0100 Message-id: <1516631412-17542-2-git-send-email-m.purski@samsung.com> X-Mailer: git-send-email 2.7.4 In-reply-to: <1516631412-17542-1-git-send-email-m.purski@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrIIsWRmVeSWpSXmKPExsWy7djP87ptX1OjDBo7WC02zljPajH14RM2 i/lHzrFanF12kM3i25UOJovLu+awWSx4eYvFYu2Ru+wWS69fZLJo3XuE3YHLY828NYwesxsu snjsnHWX3WPTqk42j74tqxg9Pm+SC2CL4rJJSc3JLEst0rdL4Mq4uusAS8EM2Yrnv16xNzDu kuhi5OSQEDCROHL7IiuELSZx4d56ti5GLg4hgaWMElP7LrBCOJ8ZJe58m8UK07F0/xRmiMQy RomzH78wQTj/GSX+/zkKlOHgYBPQkljTHg/SICJgI/H2xgFGkBpmgeNMEtenbmQCSQgLxErc Ob2FBaSeRUBVYufRNJAwr4CLxLqp06CWyUncPNfJDGJzCrhK/OmbyAIyR0JgA5vE5RvL2SCK XCQe/njGDGELS7w6voUdwpaR6Ow4yARhV0tc/LoLqr5GovH2Bqgaa4nPk7aA9TIL8ElM2jYd 7H4JAV6JjjYhiBIPiTOTpkCVO0p0nn4NDaIZjBIzr31knsAovYCRYRWjSGppcW56arGpXnFi bnFpXrpecn7uJkZgRJ/+d/zrDsalx6wOMQpwMCrx8HYYpEYJsSaWFVfmHmKU4GBWEuFNWwEU 4k1JrKxKLcqPLyrNSS0+xCjNwaIkzmsb1RYpJJCeWJKanZpakFoEk2Xi4JRqYJQ4wdxey/dI Zqqd2pnln/TtlY62bTzaYvGdZcIz7q32km58lbyLL359ludh+yxbxTZZd8dvV2ueJQbFBYbr fTSOJs583reNIaRVdLlbeL3UTXuLlBl8Hw2db1bO2sj3k///x51XF5z1X/TCb9LHM4lhr9p8 t7c1/i2NfKd8K1pr0clNbdv6gpRYijMSDbWYi4oTAbYN6ZTkAgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrKLMWRmVeSWpSXmKPExsVy+t/xa7qtX1OjDDo3S1tsnLGe1WLqwyds FvOPnGO1OLvsIJvFtysdTBaXd81hs1jw8haLxdojd9ktll6/yGTRuvcIuwOXx5p5axg9Zjdc ZPHYOesuu8emVZ1sHn1bVjF6fN4kF8AWxWWTkpqTWZZapG+XwJVxddcBloIZshXPf71ib2Dc JdHFyMkhIWAisXT/FGYIW0ziwr31bCC2kMASRom1x2K6GLmA7EYmiYfPz7B2MXJwsAloSaxp jwepERGwkXh74wAjSA2zwEkmiT8X1zGCJIQFYiXunN7CAlLPIqAqsfNoGkiYV8BFYt3UaawQ u+Qkbp7rBNvLKeAq8advIgvEXheJvQ/esE9g5F3AyLCKUSS1tDg3PbfYUK84Mbe4NC9dLzk/ dxMjMPC2Hfu5eQfjpY3BhxgFOBiVeHg7DFKjhFgTy4orcw8xSnAwK4nwpq0ACvGmJFZWpRbl xxeV5qQWH2KU5mBREuft3bM6UkggPbEkNTs1tSC1CCbLxMEp1cBovnpK/s1HEhGdOsY6bh+L 5wSE70gK73TdNkG3Rven2nGjhqI7fNdFgvs2nvKvMF7BHuBx7Jik7Y5wIwXhftc7fYV++5ka Pn4/bJ4aWnExvdkscznX8dnbSi5oK9tcX6vmkuFQMa3BWyYymUvq5qy7M/fK9nhPjL5Qovb2 e/08k0Obz14+cEWJpTgj0VCLuag4EQD8ReLPOAIAAA== X-CMS-MailID: 20180122143029eucas1p284202b6e60a86b428b3aa1e6eef62bda X-Msg-Generator: CA CMS-TYPE: 201P X-CMS-RootMailID: 20180122143029eucas1p284202b6e60a86b428b3aa1e6eef62bda X-RootMTR: 20180122143029eucas1p284202b6e60a86b428b3aa1e6eef62bda References: <1516631412-17542-1-git-send-email-m.purski@samsung.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org As of_find_regulator_by_node() is an of function it should be moved from core.c to of_regulator.c. It provides better separation of device tree functions from the core and allows other of_functions in of_regulator.c to resolve device_node to regulator_dev. This will be useful for implementation of parsing coupled regulators properties. Declare of_find_regulator_by_node() function in internal.h as well as regulator_class and dev_to_rdev(), as they are needed by of_find_regulator_by_node(). Signed-off-by: Maciej Purski --- drivers/regulator/core.c | 23 +---------------------- drivers/regulator/internal.h | 9 +++++++++ drivers/regulator/of_regulator.c | 14 ++++++++++++++ 3 files changed, 24 insertions(+), 22 deletions(-) diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index be767dd..ab6652e 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c @@ -58,8 +58,6 @@ static bool has_full_constraints; static struct dentry *debugfs_root; -static struct class regulator_class; - /* * struct regulator_map * @@ -112,11 +110,6 @@ static struct regulator *create_regulator(struct regulator_dev *rdev, const char *supply_name); static void _regulator_put(struct regulator *regulator); -static struct regulator_dev *dev_to_rdev(struct device *dev) -{ - return container_of(dev, struct regulator_dev, dev); -} - static const char *rdev_get_name(struct regulator_dev *rdev) { if (rdev->constraints && rdev->constraints->name) @@ -1418,20 +1411,6 @@ static void regulator_supply_alias(struct device **dev, const char **supply) } } -static int of_node_match(struct device *dev, const void *data) -{ - return dev->of_node == data; -} - -static struct regulator_dev *of_find_regulator_by_node(struct device_node *np) -{ - struct device *dev; - - dev = class_find_device(®ulator_class, NULL, np, of_node_match); - - return dev ? dev_to_rdev(dev) : NULL; -} - static int regulator_match(struct device *dev, const void *data) { struct regulator_dev *r = dev_to_rdev(dev); @@ -3923,7 +3902,7 @@ static void regulator_dev_release(struct device *dev) kfree(rdev); } -static struct class regulator_class = { +struct class regulator_class = { .name = "regulator", .dev_release = regulator_dev_release, .dev_groups = regulator_dev_groups, diff --git a/drivers/regulator/internal.h b/drivers/regulator/internal.h index aba8e414..abfd56e 100644 --- a/drivers/regulator/internal.h +++ b/drivers/regulator/internal.h @@ -49,6 +49,15 @@ struct regulator { struct dentry *debugfs; }; +extern struct class regulator_class; + +static inline struct regulator_dev *dev_to_rdev(struct device *dev) +{ + return container_of(dev, struct regulator_dev, dev); +} + +struct regulator_dev *of_find_regulator_by_node(struct device_node *np); + #ifdef CONFIG_OF struct regulator_init_data *regulator_of_get_init_data(struct device *dev, const struct regulator_desc *desc, diff --git a/drivers/regulator/of_regulator.c b/drivers/regulator/of_regulator.c index 41dad42..caedd3d 100644 --- a/drivers/regulator/of_regulator.c +++ b/drivers/regulator/of_regulator.c @@ -378,3 +378,17 @@ struct regulator_init_data *regulator_of_get_init_data(struct device *dev, return init_data; } + +static int of_node_match(struct device *dev, const void *data) +{ + return dev->of_node == data; +} + +struct regulator_dev *of_find_regulator_by_node(struct device_node *np) +{ + struct device *dev; + + dev = class_find_device(®ulator_class, NULL, np, of_node_match); + + return dev ? dev_to_rdev(dev) : NULL; +} -- 2.7.4