|
@@ -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,
|