2 * Copyright (C) 2012-2015 Masahiro Yamada <yamada.masahiro@socionext.com>
4 * SPDX-License-Identifier: GPL-2.0+
12 #include "micro-support-card.h"
15 DECLARE_GLOBAL_DATA_PTR;
17 static void uniphier_setup_xirq(void)
19 const void *fdt = gd->fdt_blob;
20 int soc_node, aidet_node;
22 unsigned long aidet_base;
25 soc_node = fdt_path_offset(fdt, "/soc");
29 aidet_node = fdt_subnode_offset_namelen(fdt, soc_node, "aidet", 5);
33 val = fdt_getprop(fdt, aidet_node, "reg", NULL);
37 aidet_base = fdt32_to_cpu(*val);
39 tmp = readl(aidet_base + 8); /* AIDET DETCONFR2 */
40 tmp |= 0x00ff0000; /* Set XIRQ0-7 low active */
41 writel(tmp, aidet_base + 8);
43 tmp = readl(0x55000090); /* IRQCTL */
45 writel(tmp, 0x55000090);
48 int board_early_init_f(void)
52 switch (uniphier_get_soc_type()) {
53 #if defined(CONFIG_ARCH_UNIPHIER_SLD3)
54 case SOC_UNIPHIER_SLD3:
55 uniphier_sld3_pin_init();
57 uniphier_ld4_clk_init();
60 #if defined(CONFIG_ARCH_UNIPHIER_LD4)
61 case SOC_UNIPHIER_LD4:
62 uniphier_ld4_pin_init();
64 uniphier_ld4_clk_init();
67 #if defined(CONFIG_ARCH_UNIPHIER_PRO4)
68 case SOC_UNIPHIER_PRO4:
69 uniphier_pro4_pin_init();
71 uniphier_pro4_clk_init();
74 #if defined(CONFIG_ARCH_UNIPHIER_SLD8)
75 case SOC_UNIPHIER_SLD8:
76 uniphier_sld8_pin_init();
78 uniphier_ld4_clk_init();
81 #if defined(CONFIG_ARCH_UNIPHIER_PRO5)
82 case SOC_UNIPHIER_PRO5:
83 uniphier_pro5_pin_init();
85 uniphier_pro5_clk_init();
88 #if defined(CONFIG_ARCH_UNIPHIER_PXS2)
89 case SOC_UNIPHIER_PXS2:
90 uniphier_pxs2_pin_init();
92 uniphier_pxs2_clk_init();
95 #if defined(CONFIG_ARCH_UNIPHIER_LD6B)
96 case SOC_UNIPHIER_LD6B:
97 uniphier_ld6b_pin_init();
99 uniphier_pxs2_clk_init();
102 #if defined(CONFIG_ARCH_UNIPHIER_LD11)
103 case SOC_UNIPHIER_LD11:
104 uniphier_ld20_pin_init();
106 uniphier_ld11_clk_init();
109 #if defined(CONFIG_ARCH_UNIPHIER_LD20)
110 case SOC_UNIPHIER_LD20:
111 uniphier_ld20_pin_init();
113 uniphier_ld20_clk_init();
121 uniphier_setup_xirq();