From patchwork Fri Sep 13 08:29:32 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrei Stefanescu X-Patchwork-Id: 828723 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2059.outbound.protection.outlook.com [40.107.21.59]) (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 B001A1BD4F2; Fri, 13 Sep 2024 08:30:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.21.59 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1726216236; cv=fail; b=JrexxLX+RD6GoFYgrAyOa0+Vv1hxLOie+aW7hRVU9tUhvPhC4YUZ47O6sVZcMU1R8L+pGG79VI2/XUqLGTeibC11vJT6K4wgVUb9Fc8y1jv5oyZ9+6dDkeZrSzDPO5CvjlsnBeVb6kHBS5u1zaXo+uJZSF2Lbv6yERfKwvTu8YU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1726216236; c=relaxed/simple; bh=JyK3ywi9Ht00B6w82g3FOAv4l8N26tz0n+KvfNjPDcE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=i/HH/e6RvpR7amsmJ2vay7nuoIyRa3/SwxlB/FwYhsT3dlrjE00l4X+tyaxh4t7p9sEnaGVwxZkLsiGSYn5cvbQib/4D8dj1lzZbh3lMoDQRUtKMy2k9vGWQ6wmL7si0ixrotk4jcbzbB1Dt99IX8lSk6aBWNGnkvjY5+QmpnyY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=REffQhBt; arc=fail smtp.client-ip=40.107.21.59 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="REffQhBt" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=u57hf/hok5Uzu+ptxvjoTeKAuB4+hRiUlt82HOmC6+SQPfmF/gWzXv9IIkoO1uzR1SeHBW34ET4GpQIOLB1Y6k3UHAs8zCszcI1IWUaKjTILzeVd/vu9tPleaN/3z1RVlpLdTMYdG5XHEyBeKoqyhIouAhbdGz5POkoojcvZM2t5eWrpzCipWoe7/Sdfpv/lWjUFpBUFaV+mItB4HMI7/0d+BFO/YIVl8c6BoyFqcs2oq205bLnM0zsgbItbL1eGvi+NDf+KyTchT2AqER+AZHXUhg3zKHF2ApL7chS5ixMEfqUw3oM8vwr1WmIWjNpFOylQxhIPaRNraBDcPvKcog== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=2azDZqodn8AAhlAQVoBzAcvBGio6aTaqiLcdDGJ007E=; b=R67aC3I8rRet9H9mVLO4W9F7kKTdt3G7KnAKdDRjJf+GkQptcZkGNhssYyVza39sjcb8bfCT+8om/PWpFmbh0HJqU4yYaaftj+yecoBNkUa1ckzfISyOMsbN/OCARmFKpM/P9C/dA42E0nMKB99bFQ7UgzYVXTgjsis5eMmKZrKioSy0F5ugo0mf8FWFqBlMA60nro0JHIPsEdcMv61Gqg9CkuaTPYugnHjseATjUJBC/qxACepy95EAAtPoKEjHwNeeAiBuYQQtE5vyzMjjLxyzE+C50legQMV7eR+M6H0vWdSV21JqBxaiMiXZg9IMTCh2EYKWOsJXJvMLIV/xkg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2azDZqodn8AAhlAQVoBzAcvBGio6aTaqiLcdDGJ007E=; b=REffQhBtfuo2iX7Ra6TtHFJECszgacgZoRJ5nKOJMO6ydbNSr4JVi5sjcwWX2JXaYRPh2GzGtj3mYtu1zaTSOrLuIBr1jA0eyMIq+TYtk3sh9KzOTog8WhQIggkP1IPcyHty1h61H/6Lrx6o+KUDMdopEpFMtdRWARFj2nD1UOvKVCjv8gZtY8rt1e7C7Gio3XR5we5ywdqn/9bXWwhGYdwE45XJKWoDZjUwEswpr9EkccX0Q36BB9iZglpw9JrvWZFRKR4ASRum+1GmHneU3JEnBm+XOPoL3BxMO3aqpzKZYuu++a7qdhkNa5OAMT9ew57QJbIuyB6VeQkRwTHAVw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from AM9PR04MB8487.eurprd04.prod.outlook.com (2603:10a6:20b:41a::6) by AS8PR04MB8403.eurprd04.prod.outlook.com (2603:10a6:20b:3f7::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7962.17; Fri, 13 Sep 2024 08:30:27 +0000 Received: from AM9PR04MB8487.eurprd04.prod.outlook.com ([fe80::6d7a:8d2:f020:455]) by AM9PR04MB8487.eurprd04.prod.outlook.com ([fe80::6d7a:8d2:f020:455%5]) with mapi id 15.20.7962.018; Fri, 13 Sep 2024 08:30:27 +0000 From: Andrei Stefanescu To: Linus Walleij , Bartosz Golaszewski , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Chester Lin , Matthias Brugger , Greg Kroah-Hartman , "Rafael J. Wysocki" Cc: linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, NXP S32 Linux Team , Andrei Stefanescu , Krzysztof Kozlowski Subject: [PATCH v2 1/4] drivers: provide devm_platform_get_and_ioremap_resource_byname() Date: Fri, 13 Sep 2024 11:29:32 +0300 Message-ID: <20240913082937.444367-2-andrei.stefanescu@oss.nxp.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240913082937.444367-1-andrei.stefanescu@oss.nxp.com> References: <20240913082937.444367-1-andrei.stefanescu@oss.nxp.com> X-ClientProxiedBy: AM0PR02CA0134.eurprd02.prod.outlook.com (2603:10a6:20b:28c::31) To AM9PR04MB8487.eurprd04.prod.outlook.com (2603:10a6:20b:41a::6) Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM9PR04MB8487:EE_|AS8PR04MB8403:EE_ X-MS-Office365-Filtering-Correlation-Id: 6d70aecf-562f-4401-c174-08dcd3ce51e3 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|52116014|376014|7416014|366016|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?Ctfl9c9Sn1O64LJFIoETVtVChcb7H80?= =?utf-8?q?4btr6tzsZ74z7zJu7KY44PuvQmg0uPnr8Yb9NIm6zflsPAAwg1i/Hvm0Pwl1uj9wF?= =?utf-8?q?aWG4iEMeqwDHod56OTLPERwhYo4JJV5XLl8tGQs2YCz9Hax6xyFopqbANwPpZ2MYZ?= =?utf-8?q?MohcIYcoWgbrx/nqkK9ktpMEuiFJ/ss/30gnkUuv0/myoWqpd3rgQN/+R8utVCyuF?= =?utf-8?q?fEYVxRKAleq3N4KUJuCofET5nDe7AQ57bbEuWKZfofJVMl9crqAUja466aD6owsxw?= =?utf-8?q?td8uqrnCWqtYkI/mv1ns9KYhIdd06/zdYGvFNh6tUgzFga36I66Wn2lWOFvwlHUb8?= =?utf-8?q?IYu9mplhAe98vtWV11JyfF1CUHRxZjwcn0rOmeS0bKwQosYOPI8eQF2CwE44SE8dC?= =?utf-8?q?PON7TyR1rmlRq8N8+tCLxsnp9E4bV5cbQYLaJX38W9aI38CMaXkOLeAX1kDahX8uV?= =?utf-8?q?ppIQnGw3VQ11YQQOXbS5pcDbB7A9QQhQeKJN119R1GzzGO/kYIe8AlyzIkFesydkZ?= =?utf-8?q?tmUNj59nPr/cT+7MBE9sWWZHJ3lpI9PZk9mJVbx7LLTyQuOW8CpSMUSwh7eYpEglp?= =?utf-8?q?FPqdjboYMNBVX8CwAddTvwQMUQMB4Cku1I09aFGEBxe0P/7xJurZEKwzBm3U/if5j?= =?utf-8?q?ljJkMu4sWiLNr76bN3cAInW8QnpkZXDvAP9VNWh9CLB0ThMXR7IFaZBclYxt0WzhO?= =?utf-8?q?S3v8YP2RZ6AcvFWTjBucJe5GrPjAKLIhgy65flRlJmZkul3BnpmYgoSlNXmh76G6J?= =?utf-8?q?iRKswsodhasl5J/XkmUn0NLyjUOmQZp4wuEM4EEVUcXivydYH5h60+na2Bx+WW3TB?= =?utf-8?q?map6BmlkJvU/5Yk76nacqxuwvijs0n6yUreK108CSfUmqRg9GxoKxTdZzQ/f0hTzy?= =?utf-8?q?a3kDYrjuBInXP0GTuBiT0LW1vKQAzrsbdJrI7pP7EpPM1JBnKcOBDFg7jIXBI2osg?= =?utf-8?q?JRU+90t8xcmsK3hWu3Lzbe8sb8WMZpE6KOfvqXGJcynB/5MHbyXnI7smohin+LrgI?= =?utf-8?q?0l8biq2RYwbZYYSbHF/N8dHqHGOMaVrsnAv3dqNRgIvnjs43NmynbMyOY80dYSGjl?= =?utf-8?q?UkIa1LEjAQPHqKLgKXcgNvpvy/dEzQzuqAjDPKq3F3WfOpX9JwhgVdR5+0MLPhpyU?= =?utf-8?q?735VORrmXK8AqM+OblcJE/rWZ5kw1GSUVYtdWrKP37gZ6Mb29J1D7AwZHmnzChCjR?= =?utf-8?q?Bge3GRS+omIv5sH+aOXdnZrcMJh+aUrD2l/HHcn563R+0cNYjXIr6MLESzafDpxur?= =?utf-8?q?ClF0BwxU4M2VVs8ydij2Swt8u+YJcopWkQqTC6udu+7BnBYsZhNQXq8fbRjEHnvPW?= =?utf-8?q?We9UV7tYenYw9QdCan4IDiuQ0Etv5VGq4w=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM9PR04MB8487.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(52116014)(376014)(7416014)(366016)(1800799024)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?dijk7M+I2MWmsShmPy94vc8ZSfhh?= =?utf-8?q?8a0F9NchJxxCpJZiwIOGYAO2PN0eP276jzbTxL8ZwMSVJdn8N7yZg0AUVhaWHCIzw?= =?utf-8?q?JWIFzYe1QS1fLfB0RtQKHIwm6rRpDa0Tf3mSxsgv4g4l96fVnty8P1w7b47ub9g9A?= =?utf-8?q?Pfk+VZAg0rao8qOSdwc9IFtPCUQScd+ctrPbziFs2X93Ps03WfHT1O+YtfRQOzWzg?= =?utf-8?q?ei0JizoBtPVphF2FxZWgaOULgT2ZYPIPtWrDFv6ec34pWmKgTWuaivDfw6HpcfOXp?= =?utf-8?q?s21jLW+TuAnssVvl0uVyL1NNLHOCh9ojM6FWTNoyCO4Utnv7kU7xm/xW++Go5MVx5?= =?utf-8?q?ak34SO5folDEZjgIMzRdSK8v85p0tiQKy3DiQ8R5VomKA+IxYqoYLb/P8z3rAOslT?= =?utf-8?q?jjMi5WMzjPjn9MqRqgeUCVjhkBpDLWAX9uEiJn8uEgrPVLvXOrIk+JI1Xat1V8I+d?= =?utf-8?q?PbEia/5RaooQWOamCLJ2MhTbI4OZQzO11cA/t3i405hI5DN+/hocZIvTRJuWUcKkw?= =?utf-8?q?TYvKdDEPzN0r3Kmxa+PHGLtVJzxAo4Ttf9RMKZ9s3Q/eIwgQEwLzxn6aRCjlmCSl+?= =?utf-8?q?gnIY1EVZIf4vxiDW9zMIPqWrQLOH0py8a/RvhOWNPQ/fBtFaFbsPAKug+qO1cKgb7?= =?utf-8?q?kJkIHJb2UwvZM4Q7H42hZ6zjJxmEAK0oG9LHWFWubP4PkoSkcGNHaWYn2gjI31GP7?= =?utf-8?q?36vvJRXfCLinBRB/L/oQjDIspzjCwulTVfB8ZZ3YNUdpH/tPs7wm1mJHJ5vEsjuZ0?= =?utf-8?q?qgN+o731SfUJk6fURvWtWFGnzWPF4Ics3LcLz4yg2QxFj5/tDD5iIAo4GNJBYm3qH?= =?utf-8?q?yvAL2e0O+Gfa0clNF5hUeFi2M10RntGT51pYd+7u6CDBCkkLj4XphNu05Zayg06GE?= =?utf-8?q?mPhPG8bFIT5F75yYSmO4McNSxOCXlIM12gG83ADPkamVf+t4bYNT9lGn1uOHZrEyd?= =?utf-8?q?WNycxm6B7ZYbglw8E3w8AN5p9a7MHcLDispLQ0HWPtK8EVvEIc6PJE+WMBxfH/MQB?= =?utf-8?q?QrCgA/wnEWGelmZhum1AAmV3rt5gMyzTuIhzoXHaKUdRWqq4P6qsBWqgsfMuqUTEd?= =?utf-8?q?KVgEQ7FKes9ObzuuQdEMJGHpCEoLsKwlRDv66XvczX0ISfpVJLLxLaPyuIdbjLWdH?= =?utf-8?q?gemvZUYQNTOCFWR+mG9KrccPIIQHQkfgS626jGE6pLt7ZVrLaB27N3laaWt+xmjXl?= =?utf-8?q?/TUn/Bq630pGPx5jb+5IbrEbgsVqXGjzJ4Fp2B0Z1zNL1ZU9ZnqdWz3sC0krzmyhx?= =?utf-8?q?qiZmGjW3qaXrveAbZmbbesyvOWuEBumNz7J4onroWoIEkQ04BrqJ5Ci9QJQ+RaDKF?= =?utf-8?q?RgEsBXwgNIpK6qWRGSsVbDpDraDt0Af7p2+rmY8dOZUppk5E5l/IAPVZWtjZL7HKZ?= =?utf-8?q?zsOiMIg5IHl5ikdou04biYosS5g4aPpLeBpZaC6fG5G8gJLWoWlDOt+kYcnPV8R5m?= =?utf-8?q?0nyyNmIh30pkAP4lKOm8emhy65u+P/+fEUcnCWV3edR0tZgBNXSUTZC84n9qF//0p?= =?utf-8?q?DAxt/N1ndXczPM/VRDJpwpEb0ugX9YZKeQ=3D=3D?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6d70aecf-562f-4401-c174-08dcd3ce51e3 X-MS-Exchange-CrossTenant-AuthSource: AM9PR04MB8487.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Sep 2024 08:30:27.2310 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 3jJrLIKY/8Q2qBU3t8bfbIvUnwCW9dffIpkBGoCowRPVYoxTn0MDqNJaZLeEZbs3p2EE2K9OLCRaYP9kHYAhZ2RrrddZKn+tiU/RIkDOfOI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8403 Similar to commit 890cc39a879906b63912482dfc41944579df2dc6 ("drivers: provide devm_platform_get_and_ioremap_resource()") add a wrapper for "platform_get_resource_byname" and "devm_ioremap_resource". This new wrapper also returns the resource, if any, via a pointer. Suggested-by: Krzysztof Kozlowski Signed-off-by: Andrei Stefanescu --- drivers/base/platform.c | 28 ++++++++++++++++++++++++++++ include/linux/platform_device.h | 13 +++++++++++++ 2 files changed, 41 insertions(+) diff --git a/drivers/base/platform.c b/drivers/base/platform.c index 4c3ee6521ba5..ab48c02fcb2c 100644 --- a/drivers/base/platform.c +++ b/drivers/base/platform.c @@ -108,6 +108,34 @@ devm_platform_get_and_ioremap_resource(struct platform_device *pdev, } EXPORT_SYMBOL_GPL(devm_platform_get_and_ioremap_resource); +/** + * devm_platform_get_and_ioremap_resource_byname - call devm_ioremap_resource() + * for a platform device and get + * a resource by its name instead + * of the index + * + * @pdev: platform device to use both for memory resource lookup as well as + * resource management + * @name: resource name + * @res: optional output parameter to store a pointer to the obtained resource. + * + * Return: a pointer to the remapped memory or an ERR_PTR() encoded error code + * on failure. + */ +void __iomem * +devm_platform_get_and_ioremap_resource_byname(struct platform_device *pdev, + const char *name, + struct resource **res) +{ + struct resource *r; + + r = platform_get_resource_byname(pdev, IORESOURCE_MEM, name); + if (res) + *res = r; + return devm_ioremap_resource(&pdev->dev, r); +} +EXPORT_SYMBOL_GPL(devm_platform_get_and_ioremap_resource_byname); + /** * devm_platform_ioremap_resource - call devm_ioremap_resource() for a platform * device diff --git a/include/linux/platform_device.h b/include/linux/platform_device.h index d422db6eec63..ab7f33f3c426 100644 --- a/include/linux/platform_device.h +++ b/include/linux/platform_device.h @@ -68,6 +68,12 @@ platform_find_device_by_driver(struct device *start, extern void __iomem * devm_platform_get_and_ioremap_resource(struct platform_device *pdev, unsigned int index, struct resource **res); + +extern void __iomem * +devm_platform_get_and_ioremap_resource_byname(struct platform_device *pdev, + const char *name, + struct resource **res); + extern void __iomem * devm_platform_ioremap_resource(struct platform_device *pdev, unsigned int index); @@ -83,6 +89,13 @@ devm_platform_get_and_ioremap_resource(struct platform_device *pdev, return ERR_PTR(-EINVAL); } +static inline void __iomem * +devm_platform_get_and_ioremap_resource_byname(struct platform_device *pdev, + const char *name, + struct resource **res) +{ + return ERR_PTR(-EINVAL); +} static inline void __iomem * devm_platform_ioremap_resource(struct platform_device *pdev,