Merge tag 'armsoc-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/arm...
[deliverable/linux.git] / arch / arm / mach-dove / common.c
index 0d1a89298ece95518c43e07c2c32aa0b15147c69..0cdaa3851d2e3950d441664a1db33cc6e56beb94 100644 (file)
@@ -16,6 +16,7 @@
 #include <linux/platform_data/dma-mv_xor.h>
 #include <linux/platform_data/usb-ehci-orion.h>
 #include <linux/platform_device.h>
+#include <linux/soc/dove/pmu.h>
 #include <asm/hardware/cache-tauros2.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
@@ -375,6 +376,47 @@ void __init dove_setup_cpu_wins(void)
                                    DOVE_SCRATCHPAD_SIZE);
 }
 
+static struct resource orion_wdt_resource[] = {
+               DEFINE_RES_MEM(TIMER_PHYS_BASE, 0x04),
+               DEFINE_RES_MEM(RSTOUTn_MASK_PHYS, 0x04),
+};
+
+static struct platform_device orion_wdt_device = {
+       .name           = "orion_wdt",
+       .id             = -1,
+       .num_resources  = ARRAY_SIZE(orion_wdt_resource),
+       .resource       = orion_wdt_resource,
+};
+
+static void __init __maybe_unused orion_wdt_init(void)
+{
+       platform_device_register(&orion_wdt_device);
+}
+
+static const struct dove_pmu_domain_initdata pmu_domains[] __initconst = {
+       {
+               .pwr_mask = PMU_PWR_VPU_PWR_DWN_MASK,
+               .rst_mask = PMU_SW_RST_VIDEO_MASK,
+               .iso_mask = PMU_ISO_VIDEO_MASK,
+               .name = "vpu-domain",
+       }, {
+               .pwr_mask = PMU_PWR_GPU_PWR_DWN_MASK,
+               .rst_mask = PMU_SW_RST_GPU_MASK,
+               .iso_mask = PMU_ISO_GPU_MASK,
+               .name = "gpu-domain",
+       }, {
+               /* sentinel */
+       },
+};
+
+static const struct dove_pmu_initdata pmu_data __initconst = {
+       .pmc_base = DOVE_PMU_VIRT_BASE,
+       .pmu_base = DOVE_PMU_VIRT_BASE + 0x8000,
+       .irq = IRQ_DOVE_PMU,
+       .irq_domain_start = IRQ_DOVE_PMU_START,
+       .domains = pmu_domains,
+};
+
 void __init dove_init(void)
 {
        pr_info("Dove 88AP510 SoC, TCLK = %d MHz.\n",
@@ -389,6 +431,7 @@ void __init dove_init(void)
        dove_clk_init();
 
        /* internal devices that every board has */
+       dove_init_pmu_legacy(&pmu_data);
        dove_rtc_init();
        dove_xor0_init();
        dove_xor1_init();
This page took 0.024763 seconds and 5 git commands to generate.