1 // 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 12 int 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 35 void ipa_reg_exit(struct ipa *ipa) 36 { 37 iounmap(ipa->reg_virt); 38 } 39