0001
0002
0003
0004
0005
0006
0007 #include <linux/io.h>
0008
0009 #include "ipa.h"
0010 #include "ipa_reg.h"
0011
0012 int ipa_reg_init(struct ipa *ipa)
0013 {
0014 struct device *dev = &ipa->pdev->dev;
0015 struct resource *res;
0016
0017
0018 res = platform_get_resource_byname(ipa->pdev, IORESOURCE_MEM,
0019 "ipa-reg");
0020 if (!res) {
0021 dev_err(dev, "DT error getting \"ipa-reg\" memory property\n");
0022 return -ENODEV;
0023 }
0024
0025 ipa->reg_virt = ioremap(res->start, resource_size(res));
0026 if (!ipa->reg_virt) {
0027 dev_err(dev, "unable to remap \"ipa-reg\" memory\n");
0028 return -ENOMEM;
0029 }
0030 ipa->reg_addr = res->start;
0031
0032 return 0;
0033 }
0034
0035 void ipa_reg_exit(struct ipa *ipa)
0036 {
0037 iounmap(ipa->reg_virt);
0038 }