diff options
author | Ahmad Fatoum <a.fatoum@pengutronix.de> | 2024-01-19 17:26:05 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2024-01-22 13:54:32 +0100 |
commit | b10cb98c70ce36ce3137c7463ec84a54770f82cc (patch) | |
tree | bfa7375249e14f2824cdccb5b9327bbe5375167d /include/linux | |
parent | e05bc9135e8b20fc622ab3d4792228ceb043279e (diff) | |
download | barebox-b10cb98c70ce36ce3137c7463ec84a54770f82cc.tar.gz barebox-b10cb98c70ce36ce3137c7463ec84a54770f82cc.tar.xz |
include: linux/device.h: implement dev_platform_ioremap_resource
There are more than a thousand instances of devm_platform_ioremap_resource
across Linux drivers and porting it to barebox is cumbersome, because
unlike Linux we don't remap, so the MMIO region may be at address zero.
Now that dev_request_mem_region_err_null() prints a warning in that
case, let's just use it to implement dev_platform_ioremap_resource().
Platforms with relevant MMIO at address 0 are scarce anyway and when we
run on such a platform, we can always switch to use normal
dev_request_mem_resource().
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Link: https://lore.barebox.org/20240119162610.1014870-15-a.fatoum@pengutronix.de
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/device.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/include/linux/device.h b/include/linux/device.h index 0bd61154ac..d892a9cb0e 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -32,6 +32,18 @@ #define driver_register register_driver #define driver_unregister unregister_driver + +static inline void __iomem *dev_platform_ioremap_resource(struct device *dev, + int resource) +{ + /* + * barebox maps everything outside the RAM banks suitably for MMIO, + * so we don't need to do anything besides requesting the regions + * and can leave the memory attributes unchanged. + */ + return dev_request_mem_region_err_null(dev, resource); +} + static inline void __iomem *devm_ioremap(struct device *dev, resource_size_t start, resource_size_t size) |