kernel_samsung_a53x/sound/soc/samsung/vts/vts_util.c
2024-06-15 16:02:09 -03:00

40 lines
975 B
C
Executable file

#include <linux/platform_device.h>
#include <linux/clk.h>
#include <linux/io.h>
#include <linux/of.h>
#include <sound/pcm.h>
#include "vts_util.h"
void __iomem *vts_devm_get_request_ioremap(struct platform_device *pdev,
const char *name, phys_addr_t *phys_addr, size_t *size)
{
struct resource *res;
void __iomem *ret;
res = platform_get_resource_byname(pdev, IORESOURCE_MEM, name);
if (IS_ERR_OR_NULL(res)) {
dev_err(&pdev->dev, "Failed to get %s\n", name);
return ERR_PTR(-EINVAL);
}
if (phys_addr)
*phys_addr = res->start;
if (size)
*size = resource_size(res);
res = devm_request_mem_region(&pdev->dev, res->start,
resource_size(res), name);
if (IS_ERR_OR_NULL(res)) {
dev_err(&pdev->dev, "Failed to request %s\n", name);
return ERR_PTR(-EFAULT);
}
ret = devm_ioremap(&pdev->dev, res->start, resource_size(res));
if (IS_ERR_OR_NULL(ret)) {
dev_err(&pdev->dev, "Failed to map %s\n", name);
return ERR_PTR(-EFAULT);
}
return ret;
}