| 
					
				 | 
			
			
				@@ -640,3 +640,90 @@ static struct resource at32ap700x_rtc0_resource[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static struct resource at32_wdt0_resource[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.start	= 0xfff000b0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.end	= 0xfff000cf, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.flags	= IORESOURCE_MEM, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct resource at32_eic0_resource[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.start	= 0xfff00100, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.end	= 0xfff0013f, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.flags	= IORESOURCE_MEM, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	IRQ(19), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+DEFINE_DEV(at32_pm, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+DEFINE_DEV(at32ap700x_rtc, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+DEFINE_DEV(at32_wdt, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+DEFINE_DEV(at32_eic, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * Peripheral clock for PM, RTC, WDT and EIC. PM will ensure that this 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * is always running. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct clk at32_pm_pclk = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.name		= "pclk", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.dev		= &at32_pm0_device.dev, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.parent		= &pbb_clk, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.mode		= pbb_clk_mode, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.get_rate	= pbb_clk_get_rate, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.users		= 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.index		= 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct resource intc0_resource[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	PBMEM(0xfff00400), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+struct platform_device at32_intc0_device = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.name		= "intc", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.id		= 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.resource	= intc0_resource, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.num_resources	= ARRAY_SIZE(intc0_resource), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+DEV_CLK(pclk, at32_intc0, pbb, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct clk ebi_clk = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.name		= "ebi", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.parent		= &hsb_clk, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.mode		= hsb_clk_mode, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.get_rate	= hsb_clk_get_rate, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.users		= 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct clk hramc_clk = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.name		= "hramc", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.parent		= &hsb_clk, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.mode		= hsb_clk_mode, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.get_rate	= hsb_clk_get_rate, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.users		= 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.index		= 3, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct clk sdramc_clk = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.name		= "sdramc_clk", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.parent		= &pbb_clk, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.mode		= pbb_clk_mode, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.get_rate	= pbb_clk_get_rate, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.users		= 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.index		= 14, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct resource smc0_resource[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	PBMEM(0xfff03400), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+DEFINE_DEV(smc, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+DEV_CLK(pclk, smc0, pbb, 13); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+DEV_CLK(mck, smc0, hsb, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct platform_device pdc_device = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.name		= "pdc", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.id		= 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+DEV_CLK(hclk, pdc, hsb, 4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+DEV_CLK(pclk, pdc, pba, 16); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct clk pico_clk = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.name		= "pico", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.parent		= &cpu_clk, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.mode		= cpu_clk_mode, 
			 |