blob: e6147a1cd787b661f6e5591c2758fd617c0e74d1 [file] [log] [blame]
Alex Eldercdf2e942020-03-05 22:28:17 -06001// SPDX-License-Identifier: GPL-2.0
2
3/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
4 * Copyright (C) 2019-2020 Linaro Ltd.
5 */
6
7#include <linux/io.h>
8
9#include "ipa.h"
10#include "ipa_reg.h"
11
12int ipa_reg_init(struct ipa *ipa)
13{
14 struct device *dev = &ipa->pdev->dev;
15 struct resource *res;
16
17 /* Setup IPA register memory */
18 res = platform_get_resource_byname(ipa->pdev, IORESOURCE_MEM,
19 "ipa-reg");
20 if (!res) {
21 dev_err(dev, "DT error getting \"ipa-reg\" memory property\n");
22 return -ENODEV;
23 }
24
25 ipa->reg_virt = ioremap(res->start, resource_size(res));
26 if (!ipa->reg_virt) {
27 dev_err(dev, "unable to remap \"ipa-reg\" memory\n");
28 return -ENOMEM;
29 }
30 ipa->reg_addr = res->start;
31
32 return 0;
33}
34
35void ipa_reg_exit(struct ipa *ipa)
36{
37 iounmap(ipa->reg_virt);
38}