mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 19:21:31 -04:00
mvebu soc for 4.5 (part 1)
- orion5x/mv78xx0 multiplatform conversion - legacy dove PMU support conversion -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iEYEABECAAYFAlZq1uEACgkQCwYYjhRyO9XZ8ACdHuhMhzgLQ3lR/wUj0Eaj6udh AuMAn2JdAcBRYkI6B0PkPK5igJugASzQ =pkme -----END PGP SIGNATURE----- Merge tag 'mvebu-soc-4.5-1' of git://git.infradead.org/linux-mvebu into next/multiplatform Merge "mvebu soc for 4.5 (part 1)" from Gregory CLEMENT: - orion5x/mv78xx0 multiplatform conversion - legacy dove PMU support conversion * tag 'mvebu-soc-4.5-1' of git://git.infradead.org/linux-mvebu: ARM: dove: convert legacy dove to PMU support soc: dove: add legacy support to PMU driver ARM: orion5x: multiplatform support ARM: orion5x: clean up mach/*.h headers ARM: mv78xx0: multiplatform support ARM: mv78xx0: clean up mach/*.h headers ARM: orion: use SPARSE_IRQ everywhere ARM: orion: always use MULTI_IRQ_HANDLER ARM: orion: move watchdog setup to mach-orion5x Conflicts: arch/arm/Kconfig arch/arm/mach-dove/include/mach/entry-macro.S arch/arm/mach-orion5x/include/mach/entry-macro.S
This commit is contained in:
commit
3081dc9eff
67 changed files with 269 additions and 461 deletions
|
|
@ -3,6 +3,7 @@
|
|||
#
|
||||
|
||||
obj-$(CONFIG_SOC_BRCMSTB) += brcmstb/
|
||||
obj-$(CONFIG_ARCH_DOVE) += dove/
|
||||
obj-$(CONFIG_MACH_DOVE) += dove/
|
||||
obj-$(CONFIG_ARCH_MEDIATEK) += mediatek/
|
||||
obj-$(CONFIG_ARCH_QCOM) += qcom/
|
||||
|
|
|
|||
|
|
@ -305,6 +305,49 @@ static int __init dove_init_pmu_irq(struct pmu_data *pmu, int irq)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int __init dove_init_pmu_legacy(const struct dove_pmu_initdata *initdata)
|
||||
{
|
||||
const struct dove_pmu_domain_initdata *domain_initdata;
|
||||
struct pmu_data *pmu;
|
||||
int ret;
|
||||
|
||||
pmu = kzalloc(sizeof(*pmu), GFP_KERNEL);
|
||||
if (!pmu)
|
||||
return -ENOMEM;
|
||||
|
||||
spin_lock_init(&pmu->lock);
|
||||
pmu->pmc_base = initdata->pmc_base;
|
||||
pmu->pmu_base = initdata->pmu_base;
|
||||
|
||||
pmu_reset_init(pmu);
|
||||
for (domain_initdata = initdata->domains; domain_initdata->name;
|
||||
domain_initdata++) {
|
||||
struct pmu_domain *domain;
|
||||
|
||||
domain = kzalloc(sizeof(*domain), GFP_KERNEL);
|
||||
if (domain) {
|
||||
domain->pmu = pmu;
|
||||
domain->pwr_mask = domain_initdata->pwr_mask;
|
||||
domain->rst_mask = domain_initdata->rst_mask;
|
||||
domain->iso_mask = domain_initdata->iso_mask;
|
||||
domain->base.name = domain_initdata->name;
|
||||
|
||||
__pmu_domain_register(domain, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
ret = dove_init_pmu_irq(pmu, initdata->irq);
|
||||
if (ret)
|
||||
pr_err("dove_init_pmu_irq() failed: %d\n", ret);
|
||||
|
||||
if (pmu->irq_domain)
|
||||
irq_domain_associate_many(pmu->irq_domain,
|
||||
initdata->irq_domain_start,
|
||||
0, NR_PMU_IRQS);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* pmu: power-manager@d0000 {
|
||||
* compatible = "marvell,dove-pmu";
|
||||
|
|
|
|||
Loading…
Reference in a new issue