Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0
0002 
0003 /* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
0004  * Copyright (C) 2019-2020 Linaro Ltd.
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     /* Setup IPA register memory  */
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 }