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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D5AADC433EF for ; Thu, 16 Dec 2021 11:27:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236555AbhLPL1t (ORCPT ); Thu, 16 Dec 2021 06:27:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56690 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231423AbhLPL1s (ORCPT ); Thu, 16 Dec 2021 06:27:48 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AA40AC061574; Thu, 16 Dec 2021 03:27:48 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 3AAB561D74; Thu, 16 Dec 2021 11:27:48 +0000 (UTC) Received: from jic23-huawei (cpc108967-cmbg20-2-0-cust86.5-4.cable.virginm.net [81.101.6.87]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.kernel.org (Postfix) with ESMTPSA id 108F6C36AE2; Thu, 16 Dec 2021 11:27:44 +0000 (UTC) Date: Thu, 16 Dec 2021 11:33:10 +0000 From: Jonathan Cameron To: Anand Ashok Dumbre Cc: , , , , , , , , Subject: Re: [PATCH v12 1/5] device property: Add fwnode_iomap() Message-ID: <20211216113310.2da9f8d2@jic23-huawei> In-Reply-To: <20211203212358.31444-2-anand.ashok.dumbre@xilinx.com> References: <20211203212358.31444-1-anand.ashok.dumbre@xilinx.com> <20211203212358.31444-2-anand.ashok.dumbre@xilinx.com> X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.30; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-acpi@vger.kernel.org On Fri, 3 Dec 2021 21:23:54 +0000 Anand Ashok Dumbre wrote: > This patch introduces a new helper routine - fwnode_iomap(), which > allows to map the memory mapped IO for a given device node. > > This implementation does not cover the ACPI case and may be expanded > in the future. The main purpose here is to be able to develop resource > provider agnostic drivers. > > Suggested-by: Andy Shevchenko > Signed-off-by: Anand Ashok Dumbre > Reviewed-by: Andy Shevchenko This is one of those corners of the kernel where I'm not sure whose Acks etc I should be looking for. Maintainers would put it firmly in Greg's territory but seems we've been flexible around this particular file at times. History seems to suggest maybe Greg or Rafael? If either of you have time to sanity check this that would be great! Thanks, Jonathan > --- > drivers/base/property.c | 16 ++++++++++++++++ > include/linux/property.h | 2 ++ > 2 files changed, 18 insertions(+) > > diff --git a/drivers/base/property.c b/drivers/base/property.c > index f1f35b48ab8b..ed4470410030 100644 > --- a/drivers/base/property.c > +++ b/drivers/base/property.c > @@ -958,6 +958,22 @@ int fwnode_irq_get(const struct fwnode_handle *fwnode, unsigned int index) > } > EXPORT_SYMBOL(fwnode_irq_get); > > +/** > + * fwnode_iomap - Maps the memory mapped IO for a given fwnode > + * @fwnode: Pointer to the firmware node > + * @index: Index of the IO range > + * > + * Returns a pointer to the mapped memory. > + */ > +void __iomem *fwnode_iomap(struct fwnode_handle *fwnode, int index) > +{ > + if (IS_ENABLED(CONFIG_OF_ADDRESS) && is_of_node(fwnode)) > + return of_iomap(to_of_node(fwnode), index); > + > + return NULL; > +} > +EXPORT_SYMBOL(fwnode_iomap); > + > /** > * fwnode_graph_get_next_endpoint - Get next endpoint firmware node > * @fwnode: Pointer to the parent firmware node > diff --git a/include/linux/property.h b/include/linux/property.h > index 88fa726a76df..6670d5a1ec2a 100644 > --- a/include/linux/property.h > +++ b/include/linux/property.h > @@ -122,6 +122,8 @@ void fwnode_handle_put(struct fwnode_handle *fwnode); > > int fwnode_irq_get(const struct fwnode_handle *fwnode, unsigned int index); > > +void __iomem *fwnode_iomap(struct fwnode_handle *fwnode, int index); > + > unsigned int device_get_child_node_count(struct device *dev); > > static inline bool device_property_read_bool(struct device *dev,