2 * Copyright (C) 2015-2016 Socionext Inc.
3 * Author: Masahiro Yamada <yamada.masahiro@socionext.com>
5 * SPDX-License-Identifier: GPL-2.0+
10 #include <linux/kernel.h>
14 DECLARE_GLOBAL_DATA_PTR;
16 #if defined(CONFIG_ARCH_UNIPHIER_SLD3)
17 static const struct uniphier_board_data uniphier_sld3_data = {
31 .flags = UNIPHIER_BD_DRAM_SPARSE,
35 #if defined(CONFIG_ARCH_UNIPHIER_LD4)
36 static const struct uniphier_board_data uniphier_ld4_data = {
46 .flags = UNIPHIER_BD_DDR3PLUS,
50 #if defined(CONFIG_ARCH_UNIPHIER_PRO4)
52 static const struct uniphier_board_data uniphier_pro4_data = {
65 static const struct uniphier_board_data uniphier_pro4_2g_data = {
78 #if defined(CONFIG_ARCH_UNIPHIER_SLD8)
79 static const struct uniphier_board_data uniphier_sld8_data = {
89 .flags = UNIPHIER_BD_DDR3PLUS,
93 #if defined(CONFIG_ARCH_UNIPHIER_PRO5)
94 static const struct uniphier_board_data uniphier_pro5_data = {
107 #if defined(CONFIG_ARCH_UNIPHIER_PXS2)
108 static const struct uniphier_board_data uniphier_pxs2_data = {
125 #if defined(CONFIG_ARCH_UNIPHIER_LD6B)
126 static const struct uniphier_board_data uniphier_ld6b_data = {
143 struct uniphier_board_id {
144 const char *compatible;
145 const struct uniphier_board_data *param;
148 static const struct uniphier_board_id uniphier_boards[] = {
149 #if defined(CONFIG_ARCH_UNIPHIER_SLD3)
150 { "socionext,uniphier-sld3", &uniphier_sld3_data, },
152 #if defined(CONFIG_ARCH_UNIPHIER_LD4)
153 { "socionext,uniphier-ld4", &uniphier_ld4_data, },
155 #if defined(CONFIG_ARCH_UNIPHIER_PRO4)
156 { "socionext,uniphier-pro4-ace", &uniphier_pro4_2g_data, },
157 { "socionext,uniphier-pro4-sanji", &uniphier_pro4_2g_data, },
158 { "socionext,uniphier-pro4", &uniphier_pro4_data, },
160 #if defined(CONFIG_ARCH_UNIPHIER_SLD8)
161 { "socionext,uniphier-sld8", &uniphier_sld8_data, },
163 #if defined(CONFIG_ARCH_UNIPHIER_PRO5)
164 { "socionext,uniphier-pro5", &uniphier_pro5_data, },
166 #if defined(CONFIG_ARCH_UNIPHIER_PXS2)
167 { "socionext,uniphier-pxs2", &uniphier_pxs2_data, },
169 #if defined(CONFIG_ARCH_UNIPHIER_LD6B)
170 { "socionext,uniphier-ld6b", &uniphier_ld6b_data, },
174 const struct uniphier_board_data *uniphier_get_board_param(void)
178 for (i = 0; i < ARRAY_SIZE(uniphier_boards); i++) {
179 if (!fdt_node_check_compatible(gd->fdt_blob, 0,
180 uniphier_boards[i].compatible))
181 return uniphier_boards[i].param;