From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-00128a01.pphosted.com (mx0a-00128a01.pphosted.com [148.163.135.77]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A6AD77C for ; Fri, 10 Jun 2022 08:49:26 +0000 (UTC) Received: from pps.filterd (m0167089.ppops.net [127.0.0.1]) by mx0a-00128a01.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 25A7SjCl005350; Fri, 10 Jun 2022 04:49:04 -0400 Received: from nwd2mta3.analog.com ([137.71.173.56]) by mx0a-00128a01.pphosted.com (PPS) with ESMTPS id 3ghq33kqe3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 10 Jun 2022 04:49:04 -0400 Received: from ASHBMBX9.ad.analog.com (ASHBMBX9.ad.analog.com [10.64.17.10]) by nwd2mta3.analog.com (8.14.7/8.14.7) with ESMTP id 25A8n3Kt023331 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Fri, 10 Jun 2022 04:49:03 -0400 Received: from ASHBCASHYB4.ad.analog.com (10.64.17.132) by ASHBMBX9.ad.analog.com (10.64.17.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.14; Fri, 10 Jun 2022 04:49:02 -0400 Received: from ASHBMBX8.ad.analog.com (10.64.17.5) by ASHBCASHYB4.ad.analog.com (10.64.17.132) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.14; Fri, 10 Jun 2022 04:49:02 -0400 Received: from zeus.spd.analog.com (10.66.68.11) by ashbmbx8.ad.analog.com (10.64.17.5) with Microsoft SMTP Server id 15.2.986.14 via Frontend Transport; Fri, 10 Jun 2022 04:49:02 -0400 Received: from nsa.ad.analog.com ([10.44.3.70]) by zeus.spd.analog.com (8.15.1/8.15.1) with ESMTP id 25A8imir014275; Fri, 10 Jun 2022 04:48:50 -0400 From: =?UTF-8?q?Nuno=20S=C3=A1?= To: , , , , , Lad Prabhakar , , , , , CC: Cai Huoqing , Benjamin Fair , Jishnu Prakash , "Linus Walleij" , Lars-Peter Clausen , Alexandre Torgue , Amit Kucheria , Andy Gross , Michael Hennerich , Haibo Chen , Benson Leung , "Rafael J. Wysocki" , "Alexandre Belloni" , Christophe Branchereau , Patrick Venture , Arnd Bergmann , Nancy Yuen , Sascha Hauer , Daniel Lezcano , "Gwendal Grignou" , Saravanan Sekar , "Tali Perry" , Maxime Coquelin , Paul Cercueil , Thara Gopinath , Avi Fishman , "Lorenzo Bianconi" , Claudiu Beznea , Pengutronix Kernel Team , Andy Shevchenko , Fabrice Gasnier , Matthias Brugger , Tomer Maimon , Bjorn Andersson , "Nicolas Ferre" , Jonathan Cameron , Zhang Rui , Shawn Guo , "Guenter Roeck" , Fabio Estevam , "Olivier Moysan" , Eugen Hristev , Miquel Raynal Subject: [PATCH 31/34] iio: adc: qcom-spmi-adc5: convert to device properties Date: Fri, 10 Jun 2022 10:45:42 +0200 Message-ID: <20220610084545.547700-32-nuno.sa@analog.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220610084545.547700-1-nuno.sa@analog.com> References: <20220610084545.547700-1-nuno.sa@analog.com> Precedence: bulk X-Mailing-List: chrome-platform@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit X-ADIRuleOP-NewSCL: Rule Triggered X-Proofpoint-ORIG-GUID: lRX3q1Sm_9npDIyKIT-3VhvZf79E_QQX X-Proofpoint-GUID: lRX3q1Sm_9npDIyKIT-3VhvZf79E_QQX X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.874,Hydra:6.0.517,FMLib:17.11.64.514 definitions=2022-06-10_02,2022-06-09_02,2022-02-23_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 mlxlogscore=999 phishscore=0 priorityscore=1501 adultscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 spamscore=0 impostorscore=0 bulkscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2204290000 definitions=main-2206100032 Make the conversion to firmware agnostic device properties. As part of the conversion the IIO inkern interface 'of_xlate()' is also converted to 'fwnode_xlate()'. The goal is to completely drop 'of_xlate' and hence OF dependencies from IIO. Signed-off-by: Nuno Sá --- drivers/iio/adc/qcom-spmi-adc5.c | 63 +++++++++++++++----------------- 1 file changed, 30 insertions(+), 33 deletions(-) diff --git a/drivers/iio/adc/qcom-spmi-adc5.c b/drivers/iio/adc/qcom-spmi-adc5.c index 87438d1e5c0b..a23f9293d6c1 100644 --- a/drivers/iio/adc/qcom-spmi-adc5.c +++ b/drivers/iio/adc/qcom-spmi-adc5.c @@ -14,9 +14,9 @@ #include #include #include -#include -#include +#include #include +#include #include #include @@ -403,8 +403,8 @@ static irqreturn_t adc5_isr(int irq, void *dev_id) return IRQ_HANDLED; } -static int adc5_of_xlate(struct iio_dev *indio_dev, - const struct of_phandle_args *iiospec) +static int adc5_fwnode_xlate(struct iio_dev *indio_dev, + const struct fwnode_reference_args *iiospec) { struct adc5_chip *adc = iio_priv(indio_dev); int i; @@ -416,8 +416,8 @@ static int adc5_of_xlate(struct iio_dev *indio_dev, return -EINVAL; } -static int adc7_of_xlate(struct iio_dev *indio_dev, - const struct of_phandle_args *iiospec) +static int adc7_fwnode_xlate(struct iio_dev *indio_dev, + const struct fwnode_reference_args *iiospec) { struct adc5_chip *adc = iio_priv(indio_dev); int i, v_channel; @@ -481,12 +481,12 @@ static int adc7_read_raw(struct iio_dev *indio_dev, static const struct iio_info adc5_info = { .read_raw = adc5_read_raw, - .of_xlate = adc5_of_xlate, + .fwnode_xlate = adc5_fwnode_xlate, }; static const struct iio_info adc7_info = { .read_raw = adc7_read_raw, - .of_xlate = adc7_of_xlate, + .fwnode_xlate = adc7_fwnode_xlate, }; struct adc5_channels { @@ -611,18 +611,18 @@ static const struct adc5_channels adc5_chans_rev2[ADC5_MAX_CHANNEL] = { SCALE_HW_CALIB_THERM_100K_PULLUP) }; -static int adc5_get_dt_channel_data(struct adc5_chip *adc, +static int adc5_get_fw_channel_data(struct adc5_chip *adc, struct adc5_channel_prop *prop, - struct device_node *node, + struct fwnode_handle *fwnode, const struct adc5_data *data) { - const char *name = node->name, *channel_name; + const char *name = fwnode_get_name(fwnode), *channel_name; u32 chan, value, varr[2]; u32 sid = 0; int ret; struct device *dev = adc->dev; - ret = of_property_read_u32(node, "reg", &chan); + ret = fwnode_property_read_u32(fwnode, "reg", &chan); if (ret) { dev_err(dev, "invalid channel number %s\n", name); return ret; @@ -647,15 +647,13 @@ static int adc5_get_dt_channel_data(struct adc5_chip *adc, prop->channel = chan; prop->sid = sid; - channel_name = of_get_property(node, - "label", NULL) ? : node->name; - if (!channel_name) { - dev_err(dev, "Invalid channel name\n"); - return -EINVAL; - } + ret = fwnode_property_read_string(fwnode, "label", &channel_name); + if (ret) + channel_name = name; + prop->datasheet_name = channel_name; - ret = of_property_read_u32(node, "qcom,decimation", &value); + ret = fwnode_property_read_u32(fwnode, "qcom,decimation", &value); if (!ret) { ret = qcom_adc5_decimation_from_dt(value, data->decimation); if (ret < 0) { @@ -668,7 +666,7 @@ static int adc5_get_dt_channel_data(struct adc5_chip *adc, prop->decimation = ADC5_DECIMATION_DEFAULT; } - ret = of_property_read_u32_array(node, "qcom,pre-scaling", varr, 2); + ret = fwnode_property_read_u32_array(fwnode, "qcom,pre-scaling", varr, 2); if (!ret) { ret = qcom_adc5_prescaling_from_dt(varr[0], varr[1]); if (ret < 0) { @@ -682,7 +680,7 @@ static int adc5_get_dt_channel_data(struct adc5_chip *adc, adc->data->adc_chans[prop->channel].prescale_index; } - ret = of_property_read_u32(node, "qcom,hw-settle-time", &value); + ret = fwnode_property_read_u32(fwnode, "qcom,hw-settle-time", &value); if (!ret) { u8 dig_version[2]; @@ -713,7 +711,7 @@ static int adc5_get_dt_channel_data(struct adc5_chip *adc, prop->hw_settle_time = VADC_DEF_HW_SETTLE_TIME; } - ret = of_property_read_u32(node, "qcom,avg-samples", &value); + ret = fwnode_property_read_u32(fwnode, "qcom,avg-samples", &value); if (!ret) { ret = qcom_adc5_avg_samples_from_dt(value); if (ret < 0) { @@ -726,7 +724,7 @@ static int adc5_get_dt_channel_data(struct adc5_chip *adc, prop->avg_samples = VADC_DEF_AVG_SAMPLES; } - if (of_property_read_bool(node, "qcom,ratiometric")) + if (fwnode_property_read_bool(fwnode, "qcom,ratiometric")) prop->cal_method = ADC5_RATIOMETRIC_CAL; else prop->cal_method = ADC5_ABSOLUTE_CAL; @@ -801,16 +799,16 @@ static const struct of_device_id adc5_match_table[] = { }; MODULE_DEVICE_TABLE(of, adc5_match_table); -static int adc5_get_dt_data(struct adc5_chip *adc, struct device_node *node) +static int adc5_get_fw_data(struct adc5_chip *adc) { const struct adc5_channels *adc_chan; struct iio_chan_spec *iio_chan; struct adc5_channel_prop prop, *chan_props; - struct device_node *child; + struct fwnode_handle *child; unsigned int index = 0; int ret; - adc->nchannels = of_get_available_child_count(node); + adc->nchannels = device_get_child_node_count(adc->dev); if (!adc->nchannels) return -EINVAL; @@ -826,14 +824,14 @@ static int adc5_get_dt_data(struct adc5_chip *adc, struct device_node *node) chan_props = adc->chan_props; iio_chan = adc->iio_chans; - adc->data = of_device_get_match_data(adc->dev); + adc->data = device_get_match_data(adc->dev); if (!adc->data) adc->data = &adc5_data_pmic; - for_each_available_child_of_node(node, child) { - ret = adc5_get_dt_channel_data(adc, &prop, child, adc->data); + device_for_each_child_node(adc->dev, child) { + ret = adc5_get_fw_channel_data(adc, &prop, child, adc->data); if (ret) { - of_node_put(child); + fwnode_handle_put(child); return ret; } @@ -858,7 +856,6 @@ static int adc5_get_dt_data(struct adc5_chip *adc, struct device_node *node) static int adc5_probe(struct platform_device *pdev) { - struct device_node *node = pdev->dev.of_node; struct device *dev = &pdev->dev; struct iio_dev *indio_dev; struct adc5_chip *adc; @@ -870,7 +867,7 @@ static int adc5_probe(struct platform_device *pdev) if (!regmap) return -ENODEV; - ret = of_property_read_u32(node, "reg", ®); + ret = device_property_read_u32(dev, "reg", ®); if (ret < 0) return ret; @@ -886,7 +883,7 @@ static int adc5_probe(struct platform_device *pdev) init_completion(&adc->complete); mutex_init(&adc->lock); - ret = adc5_get_dt_data(adc, node); + ret = adc5_get_fw_data(adc); if (ret) { dev_err(dev, "adc get dt data failed\n"); return ret; -- 2.36.1 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 93B64CCA47E for ; Fri, 10 Jun 2022 08:49:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:CC:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=LQstodNZBshcuhRqAQJmO7pNhsAbH3R1wy3TJWpC6sg=; b=W4V1m8S/SrxbTy GThCLWYyaBjOqsdL1coFHyqC1J/DymmOFwsqc8chdgBYE7ve9jEdgLpnDEcBfE+F93ZpeK9SzZ54s TMCgHrrwlT6R0Yk3rhM0H0PZFep5e3mGvmqCY9jeHAcAntbb8CWyjh0SakvXNnAW4iIM3EmPOVRxw CLAs8/1l5wCu0Z6grOYjd9vhBX753U38/V7aABtkolRZgC55ZeRUokYorgAGmAtPh7aYed07Uxblz dVaHOFDCOIcv65EZCWg0u5FNxOqDVfPtqwTtz6ewhSPVnIMJZo5EWe6lZJjZqI09deof2ENhSYWMj UsWjm/VV+rahFJPTK/tg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nzaKd-006vIM-Ai; Fri, 10 Jun 2022 08:49:27 +0000 Received: from mx0a-00128a01.pphosted.com ([148.163.135.77]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nzaKa-006vG3-G2; Fri, 10 Jun 2022 08:49:26 +0000 Received: from pps.filterd (m0167089.ppops.net [127.0.0.1]) by mx0a-00128a01.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 25A7SjCl005350; Fri, 10 Jun 2022 04:49:04 -0400 Received: from nwd2mta3.analog.com ([137.71.173.56]) by mx0a-00128a01.pphosted.com (PPS) with ESMTPS id 3ghq33kqe3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 10 Jun 2022 04:49:04 -0400 Received: from ASHBMBX9.ad.analog.com (ASHBMBX9.ad.analog.com [10.64.17.10]) by nwd2mta3.analog.com (8.14.7/8.14.7) with ESMTP id 25A8n3Kt023331 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Fri, 10 Jun 2022 04:49:03 -0400 Received: from ASHBCASHYB4.ad.analog.com (10.64.17.132) by ASHBMBX9.ad.analog.com (10.64.17.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.14; Fri, 10 Jun 2022 04:49:02 -0400 Received: from ASHBMBX8.ad.analog.com (10.64.17.5) by ASHBCASHYB4.ad.analog.com (10.64.17.132) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.14; Fri, 10 Jun 2022 04:49:02 -0400 Received: from zeus.spd.analog.com (10.66.68.11) by ashbmbx8.ad.analog.com (10.64.17.5) with Microsoft SMTP Server id 15.2.986.14 via Frontend Transport; Fri, 10 Jun 2022 04:49:02 -0400 Received: from nsa.ad.analog.com ([10.44.3.70]) by zeus.spd.analog.com (8.15.1/8.15.1) with ESMTP id 25A8imir014275; Fri, 10 Jun 2022 04:48:50 -0400 From: =?UTF-8?q?Nuno=20S=C3=A1?= To: , , , , , Lad Prabhakar , , , , , CC: Cai Huoqing , Benjamin Fair , Jishnu Prakash , "Linus Walleij" , Lars-Peter Clausen , Alexandre Torgue , Amit Kucheria , Andy Gross , Michael Hennerich , Haibo Chen , Benson Leung , "Rafael J. Wysocki" , "Alexandre Belloni" , Christophe Branchereau , Patrick Venture , Arnd Bergmann , Nancy Yuen , Sascha Hauer , Daniel Lezcano , "Gwendal Grignou" , Saravanan Sekar , "Tali Perry" , Maxime Coquelin , Paul Cercueil , Thara Gopinath , Avi Fishman , "Lorenzo Bianconi" , Claudiu Beznea , Pengutronix Kernel Team , Andy Shevchenko , Fabrice Gasnier , Matthias Brugger , Tomer Maimon , Bjorn Andersson , "Nicolas Ferre" , Jonathan Cameron , Zhang Rui , Shawn Guo , "Guenter Roeck" , Fabio Estevam , "Olivier Moysan" , Eugen Hristev , Miquel Raynal Subject: [PATCH 31/34] iio: adc: qcom-spmi-adc5: convert to device properties Date: Fri, 10 Jun 2022 10:45:42 +0200 Message-ID: <20220610084545.547700-32-nuno.sa@analog.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220610084545.547700-1-nuno.sa@analog.com> References: <20220610084545.547700-1-nuno.sa@analog.com> MIME-Version: 1.0 X-ADIRuleOP-NewSCL: Rule Triggered X-Proofpoint-ORIG-GUID: lRX3q1Sm_9npDIyKIT-3VhvZf79E_QQX X-Proofpoint-GUID: lRX3q1Sm_9npDIyKIT-3VhvZf79E_QQX X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.874,Hydra:6.0.517,FMLib:17.11.64.514 definitions=2022-06-10_02,2022-06-09_02,2022-02-23_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 mlxlogscore=999 phishscore=0 priorityscore=1501 adultscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 spamscore=0 impostorscore=0 bulkscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2204290000 definitions=main-2206100032 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220610_014924_597748_0601EFBD X-CRM114-Status: GOOD ( 20.14 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org TWFrZSB0aGUgY29udmVyc2lvbiB0byBmaXJtd2FyZSBhZ25vc3RpYyBkZXZpY2UgcHJvcGVydGll cy4gQXMgcGFydCBvZgp0aGUgY29udmVyc2lvbiB0aGUgSUlPIGlua2VybiBpbnRlcmZhY2UgJ29m X3hsYXRlKCknIGlzIGFsc28gY29udmVydGVkIHRvCidmd25vZGVfeGxhdGUoKScuIFRoZSBnb2Fs IGlzIHRvIGNvbXBsZXRlbHkgZHJvcCAnb2ZfeGxhdGUnIGFuZCBoZW5jZSBPRgpkZXBlbmRlbmNp ZXMgZnJvbSBJSU8uCgpTaWduZWQtb2ZmLWJ5OiBOdW5vIFPDoSA8bnVuby5zYUBhbmFsb2cuY29t PgotLS0KIGRyaXZlcnMvaWlvL2FkYy9xY29tLXNwbWktYWRjNS5jIHwgNjMgKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzMCBpbnNlcnRpb25zKCspLCAz MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lpby9hZGMvcWNvbS1zcG1pLWFk YzUuYyBiL2RyaXZlcnMvaWlvL2FkYy9xY29tLXNwbWktYWRjNS5jCmluZGV4IDg3NDM4ZDFlNWMw Yi4uYTIzZjkyOTNkNmMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lpby9hZGMvcWNvbS1zcG1pLWFk YzUuYworKysgYi9kcml2ZXJzL2lpby9hZGMvcWNvbS1zcG1pLWFkYzUuYwpAQCAtMTQsOSArMTQs OSBAQAogI2luY2x1ZGUgPGxpbnV4L2xvZzIuaD4KICNpbmNsdWRlIDxsaW51eC9tYXRoNjQuaD4K ICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9vZi5oPgotI2luY2x1 ZGUgPGxpbnV4L29mX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L21vZF9kZXZpY2V0YWJsZS5o PgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3By b3BlcnR5Lmg+CiAjaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+CiAjaW5jbHVkZSA8bGludXgvc2xh Yi5oPgogCkBAIC00MDMsOCArNDAzLDggQEAgc3RhdGljIGlycXJldHVybl90IGFkYzVfaXNyKGlu dCBpcnEsIHZvaWQgKmRldl9pZCkKIAlyZXR1cm4gSVJRX0hBTkRMRUQ7CiB9CiAKLXN0YXRpYyBp bnQgYWRjNV9vZl94bGF0ZShzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2LAotCQkJCWNvbnN0IHN0 cnVjdCBvZl9waGFuZGxlX2FyZ3MgKmlpb3NwZWMpCitzdGF0aWMgaW50IGFkYzVfZndub2RlX3hs YXRlKHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYsCisJCQkgICAgIGNvbnN0IHN0cnVjdCBmd25v ZGVfcmVmZXJlbmNlX2FyZ3MgKmlpb3NwZWMpCiB7CiAJc3RydWN0IGFkYzVfY2hpcCAqYWRjID0g aWlvX3ByaXYoaW5kaW9fZGV2KTsKIAlpbnQgaTsKQEAgLTQxNiw4ICs0MTYsOCBAQCBzdGF0aWMg aW50IGFkYzVfb2ZfeGxhdGUoc3RydWN0IGlpb19kZXYgKmluZGlvX2RldiwKIAlyZXR1cm4gLUVJ TlZBTDsKIH0KIAotc3RhdGljIGludCBhZGM3X29mX3hsYXRlKHN0cnVjdCBpaW9fZGV2ICppbmRp b19kZXYsCi0JCQkJY29uc3Qgc3RydWN0IG9mX3BoYW5kbGVfYXJncyAqaWlvc3BlYykKK3N0YXRp YyBpbnQgYWRjN19md25vZGVfeGxhdGUoc3RydWN0IGlpb19kZXYgKmluZGlvX2RldiwKKwkJCSAg ICAgY29uc3Qgc3RydWN0IGZ3bm9kZV9yZWZlcmVuY2VfYXJncyAqaWlvc3BlYykKIHsKIAlzdHJ1 Y3QgYWRjNV9jaGlwICphZGMgPSBpaW9fcHJpdihpbmRpb19kZXYpOwogCWludCBpLCB2X2NoYW5u ZWw7CkBAIC00ODEsMTIgKzQ4MSwxMiBAQCBzdGF0aWMgaW50IGFkYzdfcmVhZF9yYXcoc3RydWN0 IGlpb19kZXYgKmluZGlvX2RldiwKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBpaW9faW5mbyBhZGM1 X2luZm8gPSB7CiAJLnJlYWRfcmF3ID0gYWRjNV9yZWFkX3JhdywKLQkub2ZfeGxhdGUgPSBhZGM1 X29mX3hsYXRlLAorCS5md25vZGVfeGxhdGUgPSBhZGM1X2Z3bm9kZV94bGF0ZSwKIH07CiAKIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgaWlvX2luZm8gYWRjN19pbmZvID0gewogCS5yZWFkX3JhdyA9IGFk YzdfcmVhZF9yYXcsCi0JLm9mX3hsYXRlID0gYWRjN19vZl94bGF0ZSwKKwkuZndub2RlX3hsYXRl ID0gYWRjN19md25vZGVfeGxhdGUsCiB9OwogCiBzdHJ1Y3QgYWRjNV9jaGFubmVscyB7CkBAIC02 MTEsMTggKzYxMSwxOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGFkYzVfY2hhbm5lbHMgYWRjNV9j aGFuc19yZXYyW0FEQzVfTUFYX0NIQU5ORUxdID0gewogCQkJCQlTQ0FMRV9IV19DQUxJQl9USEVS TV8xMDBLX1BVTExVUCkKIH07CiAKLXN0YXRpYyBpbnQgYWRjNV9nZXRfZHRfY2hhbm5lbF9kYXRh KHN0cnVjdCBhZGM1X2NoaXAgKmFkYywKK3N0YXRpYyBpbnQgYWRjNV9nZXRfZndfY2hhbm5lbF9k YXRhKHN0cnVjdCBhZGM1X2NoaXAgKmFkYywKIAkJCQkgICAgc3RydWN0IGFkYzVfY2hhbm5lbF9w cm9wICpwcm9wLAotCQkJCSAgICBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUsCisJCQkJICAgIHN0 cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUsCiAJCQkJICAgIGNvbnN0IHN0cnVjdCBhZGM1X2Rh dGEgKmRhdGEpCiB7Ci0JY29uc3QgY2hhciAqbmFtZSA9IG5vZGUtPm5hbWUsICpjaGFubmVsX25h bWU7CisJY29uc3QgY2hhciAqbmFtZSA9IGZ3bm9kZV9nZXRfbmFtZShmd25vZGUpLCAqY2hhbm5l bF9uYW1lOwogCXUzMiBjaGFuLCB2YWx1ZSwgdmFyclsyXTsKIAl1MzIgc2lkID0gMDsKIAlpbnQg cmV0OwogCXN0cnVjdCBkZXZpY2UgKmRldiA9IGFkYy0+ZGV2OwogCi0JcmV0ID0gb2ZfcHJvcGVy dHlfcmVhZF91MzIobm9kZSwgInJlZyIsICZjaGFuKTsKKwlyZXQgPSBmd25vZGVfcHJvcGVydHlf cmVhZF91MzIoZndub2RlLCAicmVnIiwgJmNoYW4pOwogCWlmIChyZXQpIHsKIAkJZGV2X2Vycihk ZXYsICJpbnZhbGlkIGNoYW5uZWwgbnVtYmVyICVzXG4iLCBuYW1lKTsKIAkJcmV0dXJuIHJldDsK QEAgLTY0NywxNSArNjQ3LDEzIEBAIHN0YXRpYyBpbnQgYWRjNV9nZXRfZHRfY2hhbm5lbF9kYXRh KHN0cnVjdCBhZGM1X2NoaXAgKmFkYywKIAlwcm9wLT5jaGFubmVsID0gY2hhbjsKIAlwcm9wLT5z aWQgPSBzaWQ7CiAKLQljaGFubmVsX25hbWUgPSBvZl9nZXRfcHJvcGVydHkobm9kZSwKLQkJCQki bGFiZWwiLCBOVUxMKSA/IDogbm9kZS0+bmFtZTsKLQlpZiAoIWNoYW5uZWxfbmFtZSkgewotCQlk ZXZfZXJyKGRldiwgIkludmFsaWQgY2hhbm5lbCBuYW1lXG4iKTsKLQkJcmV0dXJuIC1FSU5WQUw7 Ci0JfQorCXJldCA9IGZ3bm9kZV9wcm9wZXJ0eV9yZWFkX3N0cmluZyhmd25vZGUsICJsYWJlbCIs ICZjaGFubmVsX25hbWUpOworCWlmIChyZXQpCisJCWNoYW5uZWxfbmFtZSA9IG5hbWU7CisKIAlw cm9wLT5kYXRhc2hlZXRfbmFtZSA9IGNoYW5uZWxfbmFtZTsKIAotCXJldCA9IG9mX3Byb3BlcnR5 X3JlYWRfdTMyKG5vZGUsICJxY29tLGRlY2ltYXRpb24iLCAmdmFsdWUpOworCXJldCA9IGZ3bm9k ZV9wcm9wZXJ0eV9yZWFkX3UzMihmd25vZGUsICJxY29tLGRlY2ltYXRpb24iLCAmdmFsdWUpOwog CWlmICghcmV0KSB7CiAJCXJldCA9IHFjb21fYWRjNV9kZWNpbWF0aW9uX2Zyb21fZHQodmFsdWUs IGRhdGEtPmRlY2ltYXRpb24pOwogCQlpZiAocmV0IDwgMCkgewpAQCAtNjY4LDcgKzY2Niw3IEBA IHN0YXRpYyBpbnQgYWRjNV9nZXRfZHRfY2hhbm5lbF9kYXRhKHN0cnVjdCBhZGM1X2NoaXAgKmFk YywKIAkJcHJvcC0+ZGVjaW1hdGlvbiA9IEFEQzVfREVDSU1BVElPTl9ERUZBVUxUOwogCX0KIAot CXJldCA9IG9mX3Byb3BlcnR5X3JlYWRfdTMyX2FycmF5KG5vZGUsICJxY29tLHByZS1zY2FsaW5n IiwgdmFyciwgMik7CisJcmV0ID0gZndub2RlX3Byb3BlcnR5X3JlYWRfdTMyX2FycmF5KGZ3bm9k ZSwgInFjb20scHJlLXNjYWxpbmciLCB2YXJyLCAyKTsKIAlpZiAoIXJldCkgewogCQlyZXQgPSBx Y29tX2FkYzVfcHJlc2NhbGluZ19mcm9tX2R0KHZhcnJbMF0sIHZhcnJbMV0pOwogCQlpZiAocmV0 IDwgMCkgewpAQCAtNjgyLDcgKzY4MCw3IEBAIHN0YXRpYyBpbnQgYWRjNV9nZXRfZHRfY2hhbm5l bF9kYXRhKHN0cnVjdCBhZGM1X2NoaXAgKmFkYywKIAkJCWFkYy0+ZGF0YS0+YWRjX2NoYW5zW3By b3AtPmNoYW5uZWxdLnByZXNjYWxlX2luZGV4OwogCX0KIAotCXJldCA9IG9mX3Byb3BlcnR5X3Jl YWRfdTMyKG5vZGUsICJxY29tLGh3LXNldHRsZS10aW1lIiwgJnZhbHVlKTsKKwlyZXQgPSBmd25v ZGVfcHJvcGVydHlfcmVhZF91MzIoZndub2RlLCAicWNvbSxody1zZXR0bGUtdGltZSIsICZ2YWx1 ZSk7CiAJaWYgKCFyZXQpIHsKIAkJdTggZGlnX3ZlcnNpb25bMl07CiAKQEAgLTcxMyw3ICs3MTEs NyBAQCBzdGF0aWMgaW50IGFkYzVfZ2V0X2R0X2NoYW5uZWxfZGF0YShzdHJ1Y3QgYWRjNV9jaGlw ICphZGMsCiAJCXByb3AtPmh3X3NldHRsZV90aW1lID0gVkFEQ19ERUZfSFdfU0VUVExFX1RJTUU7 CiAJfQogCi0JcmV0ID0gb2ZfcHJvcGVydHlfcmVhZF91MzIobm9kZSwgInFjb20sYXZnLXNhbXBs ZXMiLCAmdmFsdWUpOworCXJldCA9IGZ3bm9kZV9wcm9wZXJ0eV9yZWFkX3UzMihmd25vZGUsICJx Y29tLGF2Zy1zYW1wbGVzIiwgJnZhbHVlKTsKIAlpZiAoIXJldCkgewogCQlyZXQgPSBxY29tX2Fk YzVfYXZnX3NhbXBsZXNfZnJvbV9kdCh2YWx1ZSk7CiAJCWlmIChyZXQgPCAwKSB7CkBAIC03MjYs NyArNzI0LDcgQEAgc3RhdGljIGludCBhZGM1X2dldF9kdF9jaGFubmVsX2RhdGEoc3RydWN0IGFk YzVfY2hpcCAqYWRjLAogCQlwcm9wLT5hdmdfc2FtcGxlcyA9IFZBRENfREVGX0FWR19TQU1QTEVT OwogCX0KIAotCWlmIChvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wobm9kZSwgInFjb20scmF0aW9tZXRy aWMiKSkKKwlpZiAoZndub2RlX3Byb3BlcnR5X3JlYWRfYm9vbChmd25vZGUsICJxY29tLHJhdGlv bWV0cmljIikpCiAJCXByb3AtPmNhbF9tZXRob2QgPSBBREM1X1JBVElPTUVUUklDX0NBTDsKIAll bHNlCiAJCXByb3AtPmNhbF9tZXRob2QgPSBBREM1X0FCU09MVVRFX0NBTDsKQEAgLTgwMSwxNiAr Nzk5LDE2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGFkYzVfbWF0Y2hfdGFi bGVbXSA9IHsKIH07CiBNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBhZGM1X21hdGNoX3RhYmxlKTsK IAotc3RhdGljIGludCBhZGM1X2dldF9kdF9kYXRhKHN0cnVjdCBhZGM1X2NoaXAgKmFkYywgc3Ry dWN0IGRldmljZV9ub2RlICpub2RlKQorc3RhdGljIGludCBhZGM1X2dldF9md19kYXRhKHN0cnVj dCBhZGM1X2NoaXAgKmFkYykKIHsKIAljb25zdCBzdHJ1Y3QgYWRjNV9jaGFubmVscyAqYWRjX2No YW47CiAJc3RydWN0IGlpb19jaGFuX3NwZWMgKmlpb19jaGFuOwogCXN0cnVjdCBhZGM1X2NoYW5u ZWxfcHJvcCBwcm9wLCAqY2hhbl9wcm9wczsKLQlzdHJ1Y3QgZGV2aWNlX25vZGUgKmNoaWxkOwor CXN0cnVjdCBmd25vZGVfaGFuZGxlICpjaGlsZDsKIAl1bnNpZ25lZCBpbnQgaW5kZXggPSAwOwog CWludCByZXQ7CiAKLQlhZGMtPm5jaGFubmVscyA9IG9mX2dldF9hdmFpbGFibGVfY2hpbGRfY291 bnQobm9kZSk7CisJYWRjLT5uY2hhbm5lbHMgPSBkZXZpY2VfZ2V0X2NoaWxkX25vZGVfY291bnQo YWRjLT5kZXYpOwogCWlmICghYWRjLT5uY2hhbm5lbHMpCiAJCXJldHVybiAtRUlOVkFMOwogCkBA IC04MjYsMTQgKzgyNCwxNCBAQCBzdGF0aWMgaW50IGFkYzVfZ2V0X2R0X2RhdGEoc3RydWN0IGFk YzVfY2hpcCAqYWRjLCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUpCiAKIAljaGFuX3Byb3BzID0g YWRjLT5jaGFuX3Byb3BzOwogCWlpb19jaGFuID0gYWRjLT5paW9fY2hhbnM7Ci0JYWRjLT5kYXRh ID0gb2ZfZGV2aWNlX2dldF9tYXRjaF9kYXRhKGFkYy0+ZGV2KTsKKwlhZGMtPmRhdGEgPSBkZXZp Y2VfZ2V0X21hdGNoX2RhdGEoYWRjLT5kZXYpOwogCWlmICghYWRjLT5kYXRhKQogCQlhZGMtPmRh dGEgPSAmYWRjNV9kYXRhX3BtaWM7CiAKLQlmb3JfZWFjaF9hdmFpbGFibGVfY2hpbGRfb2Zfbm9k ZShub2RlLCBjaGlsZCkgewotCQlyZXQgPSBhZGM1X2dldF9kdF9jaGFubmVsX2RhdGEoYWRjLCAm cHJvcCwgY2hpbGQsIGFkYy0+ZGF0YSk7CisJZGV2aWNlX2Zvcl9lYWNoX2NoaWxkX25vZGUoYWRj LT5kZXYsIGNoaWxkKSB7CisJCXJldCA9IGFkYzVfZ2V0X2Z3X2NoYW5uZWxfZGF0YShhZGMsICZw cm9wLCBjaGlsZCwgYWRjLT5kYXRhKTsKIAkJaWYgKHJldCkgewotCQkJb2Zfbm9kZV9wdXQoY2hp bGQpOworCQkJZndub2RlX2hhbmRsZV9wdXQoY2hpbGQpOwogCQkJcmV0dXJuIHJldDsKIAkJfQog CkBAIC04NTgsNyArODU2LDYgQEAgc3RhdGljIGludCBhZGM1X2dldF9kdF9kYXRhKHN0cnVjdCBh ZGM1X2NoaXAgKmFkYywgc3RydWN0IGRldmljZV9ub2RlICpub2RlKQogCiBzdGF0aWMgaW50IGFk YzVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIHsKLQlzdHJ1Y3QgZGV2aWNl X25vZGUgKm5vZGUgPSBwZGV2LT5kZXYub2Zfbm9kZTsKIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAm cGRldi0+ZGV2OwogCXN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXY7CiAJc3RydWN0IGFkYzVfY2hp cCAqYWRjOwpAQCAtODcwLDcgKzg2Nyw3IEBAIHN0YXRpYyBpbnQgYWRjNV9wcm9iZShzdHJ1Y3Qg cGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWlmICghcmVnbWFwKQogCQlyZXR1cm4gLUVOT0RFVjsK IAotCXJldCA9IG9mX3Byb3BlcnR5X3JlYWRfdTMyKG5vZGUsICJyZWciLCAmcmVnKTsKKwlyZXQg PSBkZXZpY2VfcHJvcGVydHlfcmVhZF91MzIoZGV2LCAicmVnIiwgJnJlZyk7CiAJaWYgKHJldCA8 IDApCiAJCXJldHVybiByZXQ7CiAKQEAgLTg4Niw3ICs4ODMsNyBAQCBzdGF0aWMgaW50IGFkYzVf cHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlpbml0X2NvbXBsZXRpb24oJmFk Yy0+Y29tcGxldGUpOwogCW11dGV4X2luaXQoJmFkYy0+bG9jayk7CiAKLQlyZXQgPSBhZGM1X2dl dF9kdF9kYXRhKGFkYywgbm9kZSk7CisJcmV0ID0gYWRjNV9nZXRfZndfZGF0YShhZGMpOwogCWlm IChyZXQpIHsKIAkJZGV2X2VycihkZXYsICJhZGMgZ2V0IGR0IGRhdGEgZmFpbGVkXG4iKTsKIAkJ cmV0dXJuIHJldDsKLS0gCjIuMzYuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkxpbnV4LW1lZGlhdGVrIG1haWxpbmcgbGlzdApMaW51eC1tZWRpYXRl a0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4v bGlzdGluZm8vbGludXgtbWVkaWF0ZWsK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 4E36BC43334 for ; Thu, 16 Jun 2022 02:16:12 +0000 (UTC) Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4LNm4V758hz3dw7 for ; Thu, 16 Jun 2022 12:16:10 +1000 (AEST) Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=analog.com (client-ip=148.163.135.77; helo=mx0a-00128a01.pphosted.com; envelope-from=nuno.sa@analog.com; receiver=) Received: from mx0a-00128a01.pphosted.com (mx0a-00128a01.pphosted.com [148.163.135.77]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4LKF555Pf1z3btK for ; Fri, 10 Jun 2022 18:49:29 +1000 (AEST) Received: from pps.filterd (m0167089.ppops.net [127.0.0.1]) by mx0a-00128a01.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 25A7SjCl005350; Fri, 10 Jun 2022 04:49:04 -0400 Received: from nwd2mta3.analog.com ([137.71.173.56]) by mx0a-00128a01.pphosted.com (PPS) with ESMTPS id 3ghq33kqe3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 10 Jun 2022 04:49:04 -0400 Received: from ASHBMBX9.ad.analog.com (ASHBMBX9.ad.analog.com [10.64.17.10]) by nwd2mta3.analog.com (8.14.7/8.14.7) with ESMTP id 25A8n3Kt023331 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Fri, 10 Jun 2022 04:49:03 -0400 Received: from ASHBCASHYB4.ad.analog.com (10.64.17.132) by ASHBMBX9.ad.analog.com (10.64.17.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.14; Fri, 10 Jun 2022 04:49:02 -0400 Received: from ASHBMBX8.ad.analog.com (10.64.17.5) by ASHBCASHYB4.ad.analog.com (10.64.17.132) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.14; Fri, 10 Jun 2022 04:49:02 -0400 Received: from zeus.spd.analog.com (10.66.68.11) by ashbmbx8.ad.analog.com (10.64.17.5) with Microsoft SMTP Server id 15.2.986.14 via Frontend Transport; Fri, 10 Jun 2022 04:49:02 -0400 Received: from nsa.ad.analog.com ([10.44.3.70]) by zeus.spd.analog.com (8.15.1/8.15.1) with ESMTP id 25A8imir014275; Fri, 10 Jun 2022 04:48:50 -0400 From: =?UTF-8?q?Nuno=20S=C3=A1?= To: , , , , , Lad Prabhakar , , , , , Subject: [PATCH 31/34] iio: adc: qcom-spmi-adc5: convert to device properties Date: Fri, 10 Jun 2022 10:45:42 +0200 Message-ID: <20220610084545.547700-32-nuno.sa@analog.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220610084545.547700-1-nuno.sa@analog.com> References: <20220610084545.547700-1-nuno.sa@analog.com> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit X-ADIRuleOP-NewSCL: Rule Triggered X-Proofpoint-ORIG-GUID: lRX3q1Sm_9npDIyKIT-3VhvZf79E_QQX X-Proofpoint-GUID: lRX3q1Sm_9npDIyKIT-3VhvZf79E_QQX X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.874,Hydra:6.0.517,FMLib:17.11.64.514 definitions=2022-06-10_02,2022-06-09_02,2022-02-23_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 mlxlogscore=999 phishscore=0 priorityscore=1501 adultscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 spamscore=0 impostorscore=0 bulkscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2204290000 definitions=main-2206100032 X-Mailman-Approved-At: Thu, 16 Jun 2022 12:05:36 +1000 X-BeenThere: openbmc@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development list for OpenBMC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Alexandre Belloni , Daniel Lezcano , Tomer Maimon , "Rafael J. Wysocki" , Linus Walleij , Amit Kucheria , Alexandre Torgue , Tali Perry , Paul Cercueil , Miquel Raynal , Guenter Roeck , Fabio Estevam , Lars-Peter Clausen , Benjamin Fair , Jishnu Prakash , Haibo Chen , Andy Shevchenko , Andy Gross , Olivier Moysan , Zhang Rui , Christophe Branchereau , Saravanan Sekar , Michael Hennerich , Sascha Hauer , Fabrice Gasnier , Cai Huoqing , Matthias Brugger , Gwendal Grignou , Bjorn Andersson , Benson Leung , Pengutronix Kernel Team , Lorenzo Bianconi , Avi Fishman , Patrick Venture , Nicolas Ferre , Thara Gopinath , Arnd Bergmann , Maxime Coquelin , Eugen Hristev , Shawn Guo , Claudiu Beznea , Jonathan Cameron Errors-To: openbmc-bounces+openbmc=archiver.kernel.org@lists.ozlabs.org Sender: "openbmc" Make the conversion to firmware agnostic device properties. As part of the conversion the IIO inkern interface 'of_xlate()' is also converted to 'fwnode_xlate()'. The goal is to completely drop 'of_xlate' and hence OF dependencies from IIO. Signed-off-by: Nuno Sá --- drivers/iio/adc/qcom-spmi-adc5.c | 63 +++++++++++++++----------------- 1 file changed, 30 insertions(+), 33 deletions(-) diff --git a/drivers/iio/adc/qcom-spmi-adc5.c b/drivers/iio/adc/qcom-spmi-adc5.c index 87438d1e5c0b..a23f9293d6c1 100644 --- a/drivers/iio/adc/qcom-spmi-adc5.c +++ b/drivers/iio/adc/qcom-spmi-adc5.c @@ -14,9 +14,9 @@ #include #include #include -#include -#include +#include #include +#include #include #include @@ -403,8 +403,8 @@ static irqreturn_t adc5_isr(int irq, void *dev_id) return IRQ_HANDLED; } -static int adc5_of_xlate(struct iio_dev *indio_dev, - const struct of_phandle_args *iiospec) +static int adc5_fwnode_xlate(struct iio_dev *indio_dev, + const struct fwnode_reference_args *iiospec) { struct adc5_chip *adc = iio_priv(indio_dev); int i; @@ -416,8 +416,8 @@ static int adc5_of_xlate(struct iio_dev *indio_dev, return -EINVAL; } -static int adc7_of_xlate(struct iio_dev *indio_dev, - const struct of_phandle_args *iiospec) +static int adc7_fwnode_xlate(struct iio_dev *indio_dev, + const struct fwnode_reference_args *iiospec) { struct adc5_chip *adc = iio_priv(indio_dev); int i, v_channel; @@ -481,12 +481,12 @@ static int adc7_read_raw(struct iio_dev *indio_dev, static const struct iio_info adc5_info = { .read_raw = adc5_read_raw, - .of_xlate = adc5_of_xlate, + .fwnode_xlate = adc5_fwnode_xlate, }; static const struct iio_info adc7_info = { .read_raw = adc7_read_raw, - .of_xlate = adc7_of_xlate, + .fwnode_xlate = adc7_fwnode_xlate, }; struct adc5_channels { @@ -611,18 +611,18 @@ static const struct adc5_channels adc5_chans_rev2[ADC5_MAX_CHANNEL] = { SCALE_HW_CALIB_THERM_100K_PULLUP) }; -static int adc5_get_dt_channel_data(struct adc5_chip *adc, +static int adc5_get_fw_channel_data(struct adc5_chip *adc, struct adc5_channel_prop *prop, - struct device_node *node, + struct fwnode_handle *fwnode, const struct adc5_data *data) { - const char *name = node->name, *channel_name; + const char *name = fwnode_get_name(fwnode), *channel_name; u32 chan, value, varr[2]; u32 sid = 0; int ret; struct device *dev = adc->dev; - ret = of_property_read_u32(node, "reg", &chan); + ret = fwnode_property_read_u32(fwnode, "reg", &chan); if (ret) { dev_err(dev, "invalid channel number %s\n", name); return ret; @@ -647,15 +647,13 @@ static int adc5_get_dt_channel_data(struct adc5_chip *adc, prop->channel = chan; prop->sid = sid; - channel_name = of_get_property(node, - "label", NULL) ? : node->name; - if (!channel_name) { - dev_err(dev, "Invalid channel name\n"); - return -EINVAL; - } + ret = fwnode_property_read_string(fwnode, "label", &channel_name); + if (ret) + channel_name = name; + prop->datasheet_name = channel_name; - ret = of_property_read_u32(node, "qcom,decimation", &value); + ret = fwnode_property_read_u32(fwnode, "qcom,decimation", &value); if (!ret) { ret = qcom_adc5_decimation_from_dt(value, data->decimation); if (ret < 0) { @@ -668,7 +666,7 @@ static int adc5_get_dt_channel_data(struct adc5_chip *adc, prop->decimation = ADC5_DECIMATION_DEFAULT; } - ret = of_property_read_u32_array(node, "qcom,pre-scaling", varr, 2); + ret = fwnode_property_read_u32_array(fwnode, "qcom,pre-scaling", varr, 2); if (!ret) { ret = qcom_adc5_prescaling_from_dt(varr[0], varr[1]); if (ret < 0) { @@ -682,7 +680,7 @@ static int adc5_get_dt_channel_data(struct adc5_chip *adc, adc->data->adc_chans[prop->channel].prescale_index; } - ret = of_property_read_u32(node, "qcom,hw-settle-time", &value); + ret = fwnode_property_read_u32(fwnode, "qcom,hw-settle-time", &value); if (!ret) { u8 dig_version[2]; @@ -713,7 +711,7 @@ static int adc5_get_dt_channel_data(struct adc5_chip *adc, prop->hw_settle_time = VADC_DEF_HW_SETTLE_TIME; } - ret = of_property_read_u32(node, "qcom,avg-samples", &value); + ret = fwnode_property_read_u32(fwnode, "qcom,avg-samples", &value); if (!ret) { ret = qcom_adc5_avg_samples_from_dt(value); if (ret < 0) { @@ -726,7 +724,7 @@ static int adc5_get_dt_channel_data(struct adc5_chip *adc, prop->avg_samples = VADC_DEF_AVG_SAMPLES; } - if (of_property_read_bool(node, "qcom,ratiometric")) + if (fwnode_property_read_bool(fwnode, "qcom,ratiometric")) prop->cal_method = ADC5_RATIOMETRIC_CAL; else prop->cal_method = ADC5_ABSOLUTE_CAL; @@ -801,16 +799,16 @@ static const struct of_device_id adc5_match_table[] = { }; MODULE_DEVICE_TABLE(of, adc5_match_table); -static int adc5_get_dt_data(struct adc5_chip *adc, struct device_node *node) +static int adc5_get_fw_data(struct adc5_chip *adc) { const struct adc5_channels *adc_chan; struct iio_chan_spec *iio_chan; struct adc5_channel_prop prop, *chan_props; - struct device_node *child; + struct fwnode_handle *child; unsigned int index = 0; int ret; - adc->nchannels = of_get_available_child_count(node); + adc->nchannels = device_get_child_node_count(adc->dev); if (!adc->nchannels) return -EINVAL; @@ -826,14 +824,14 @@ static int adc5_get_dt_data(struct adc5_chip *adc, struct device_node *node) chan_props = adc->chan_props; iio_chan = adc->iio_chans; - adc->data = of_device_get_match_data(adc->dev); + adc->data = device_get_match_data(adc->dev); if (!adc->data) adc->data = &adc5_data_pmic; - for_each_available_child_of_node(node, child) { - ret = adc5_get_dt_channel_data(adc, &prop, child, adc->data); + device_for_each_child_node(adc->dev, child) { + ret = adc5_get_fw_channel_data(adc, &prop, child, adc->data); if (ret) { - of_node_put(child); + fwnode_handle_put(child); return ret; } @@ -858,7 +856,6 @@ static int adc5_get_dt_data(struct adc5_chip *adc, struct device_node *node) static int adc5_probe(struct platform_device *pdev) { - struct device_node *node = pdev->dev.of_node; struct device *dev = &pdev->dev; struct iio_dev *indio_dev; struct adc5_chip *adc; @@ -870,7 +867,7 @@ static int adc5_probe(struct platform_device *pdev) if (!regmap) return -ENODEV; - ret = of_property_read_u32(node, "reg", ®); + ret = device_property_read_u32(dev, "reg", ®); if (ret < 0) return ret; @@ -886,7 +883,7 @@ static int adc5_probe(struct platform_device *pdev) init_completion(&adc->complete); mutex_init(&adc->lock); - ret = adc5_get_dt_data(adc, node); + ret = adc5_get_fw_data(adc); if (ret) { dev_err(dev, "adc get dt data failed\n"); return ret; -- 2.36.1