Received: by 10.223.176.46 with SMTP id f43csp2976763wra; Mon, 22 Jan 2018 06:34:13 -0800 (PST) X-Google-Smtp-Source: AH8x227imxxDAC3eyeb+sgGqQYGIkimh1MptZ2eoClxhsgIoNzWXf9rsYNNbYfbk3PLRvNO9xniN X-Received: by 10.101.77.68 with SMTP id j4mr7691379pgt.222.1516631652897; Mon, 22 Jan 2018 06:34:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516631652; cv=none; d=google.com; s=arc-20160816; b=bA7X4AWD3u3lV/9iZsWnuNEfiithblWUKepPFXQ4Mgfml8nJSlx2hM0d19HF1PHLvZ 4kSWhvBCT/K4FPHXkiHxYfeGGHjQBbMLcPFuW5TS+bHxbLaVFMXeO26RcVlHcZmdeniv STKzYHptiLPMhUpWozdxZ1Lq7w9PdnZkZ7IT6z36ZaefSdRAbw0FacK8ULpoBtVDosh7 bxSWt8fblaCB3WP/mdKVAfWcX8wJo6ndEg0aDITs6XbqNFv6Y7Yo6wUuuX3NFel5DDag cwUKVQqTTs0pdhQPwAJVtcOc9JJqvdeRSlpDd3VehX1pxkvOUOvEZ8cYNnSS5qG9BNmy QslQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:cms-type:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature:dkim-filter :arc-authentication-results; bh=y5avdco/90Xrr8J2RcGp/xqvZFIvfNTZD5N6sGO4sps=; b=hIpIBAgQQZBdJZRnNHyb4AbJKaKul2QWcffzoeOcbuxw3OdLpe5E7yhXUnLUQoksv2 WGToMIeptL+sMarhH6GwH7g5CUxB2o8O11SSwzPo3kgSyCX+BllfiVZepVU1FNptUO4V uEXwIRkLSYcROnd9uQi4pp0+mGk8tnfqVfXMtnf9r4Vb+IbTzrqgqc2z5mL3jd9BnF+X J+u1dcoyS5nMUE2x1MlTsXS5VHo3AxPHBDR489R3GtyTi7cSJIxHVCHDBOZGHQPzh2+W 2qhguaZ0wIcX1HJwfBUmqUXuuUCgP1wFT6JiPpqrupzulwDRI0rMqO+HH9dEJhosBu31 t1Kw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b=TB3i/FD2; 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=samsung.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n11-v6si3547589plp.449.2018.01.22.06.33.58; Mon, 22 Jan 2018 06:34:12 -0800 (PST) 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=@samsung.com header.s=mail20170921 header.b=TB3i/FD2; 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=samsung.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751210AbeAVOag (ORCPT + 99 others); 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 Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20180122143031euoutp017e380f0cc56bdfd408481ed472a1c775~MKEBP71Mh2788227882euoutp01j; Mon, 22 Jan 2018 14:30:31 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20180122143031euoutp017e380f0cc56bdfd408481ed472a1c775~MKEBP71Mh2788227882euoutp01j DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1516631431; bh=y5avdco/90Xrr8J2RcGp/xqvZFIvfNTZD5N6sGO4sps=; h=From:To:Cc:Subject:Date:In-reply-to:References:From; b=TB3i/FD2+rxbkkolS7NBCwLhPXzr288gJg1byBe++QyCnwVwYkZuC4rIwTVsrMUNp xQ8apdcgmA/BW0eVuDngDySxTEvf82j00XgOLgefuI7tzaJXtinNZwKChgzDH6SN5Y ypY9QHUoT1Xj70mPoQ7wFCfU9uWvco5Z9+BDJRhk= Received: from eusmges5.samsung.com (unknown [203.254.199.245]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20180122143030eucas1p2e16d8352fba07378ec344907585740fd~MKEAc7SqI2118021180eucas1p2o; Mon, 22 Jan 2018 14:30:30 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges5.samsung.com (EUCPMTA) with SMTP id 9D.93.12743.685F56A5; Mon, 22 Jan 2018 14:30:30 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20180122143029eucas1p284202b6e60a86b428b3aa1e6eef62bda~MKD-2oAWA0423404234eucas1p2p; Mon, 22 Jan 2018 14:30:29 +0000 (GMT) X-AuditID: cbfec7f5-f79d06d0000031c7-9c-5a65f586b2da Received: from eusync4.samsung.com ( [203.254.199.214]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 10.AA.18832.585F56A5; Mon, 22 Jan 2018 14:30:29 +0000 (GMT) Received: from AMDC2075.DIGITAL.local ([106.120.51.25]) by eusync4.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0P2Y0079BOAEJF00@eusync4.samsung.com>; Mon, 22 Jan 2018 14:30:29 +0000 (GMT) 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 Precedence: bulk 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