msm: pcie: add support for MPQ8064 Hybrid
PCIe has different regulator numbers on various MPQ8064 platforms.
Add the support in PCIe driver for various platforms.
Change-Id: Ib2662f4cba04ce4de9cce18d4b8e4682a04a276e
Signed-off-by: Yan He <yanhe@codeaurora.org>
diff --git a/arch/arm/mach-msm/include/mach/msm_pcie.h b/arch/arm/mach-msm/include/mach/msm_pcie.h
index 74f0f5b..790a390 100644
--- a/arch/arm/mach-msm/include/mach/msm_pcie.h
+++ b/arch/arm/mach-msm/include/mach/msm_pcie.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012, Code Aurora Forum. All rights reserved.
+/* Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -36,6 +36,7 @@
uint32_t axi_addr;
uint32_t axi_size;
uint32_t wake_n;
+ uint32_t vreg_n;
};
#endif
diff --git a/arch/arm/mach-msm/pcie.c b/arch/arm/mach-msm/pcie.c
index 709c8e8..6305abc 100644
--- a/arch/arm/mach-msm/pcie.c
+++ b/arch/arm/mach-msm/pcie.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012, Code Aurora Forum. All rights reserved.
+/* Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -262,7 +262,7 @@
struct regulator *vreg;
struct msm_pcie_vreg_info_t *info;
- for (i = 0; i < MSM_PCIE_MAX_VREG; i++) {
+ for (i = 0; i < msm_pcie_dev.vreg_n; i++) {
info = &msm_pcie_dev.vreg[i];
vreg = regulator_get(dev, info->name);
@@ -316,7 +316,7 @@
{
int i;
- for (i = 0; i < MSM_PCIE_MAX_VREG; i++) {
+ for (i = 0; i < msm_pcie_dev.vreg_n; i++) {
regulator_disable(msm_pcie_dev.vreg[i].hdl);
regulator_put(msm_pcie_dev.vreg[i].hdl);
msm_pcie_dev.vreg[i].hdl = NULL;
@@ -620,6 +620,7 @@
pdata = pdev->dev.platform_data;
msm_pcie_dev.gpio = pdata->gpio;
msm_pcie_dev.wake_n = pdata->wake_n;
+ msm_pcie_dev.vreg_n = pdata->vreg_n;
msm_pcie_dev.vreg = msm_pcie_vreg_info;
msm_pcie_dev.clk = msm_pcie_clk_info;
msm_pcie_dev.res = msm_pcie_res_info;
diff --git a/arch/arm/mach-msm/pcie.h b/arch/arm/mach-msm/pcie.h
index d7cce3e..31371c2 100644
--- a/arch/arm/mach-msm/pcie.h
+++ b/arch/arm/mach-msm/pcie.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012, Code Aurora Forum. All rights reserved.
+/* Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -70,6 +70,7 @@
struct resource dev_mem_res;
uint32_t wake_n;
+ uint32_t vreg_n;
};
extern uint32_t msm_pcie_irq_init(struct msm_pcie_dev_t *dev);