ARM: uniphier: check DT to determine whether to initialize SBC
If CONFIG_MICRO_SUPPORT_CARD is enabled, U-Boot initialize SBC (System Bus Controller), which may not be really necessary. Check the "socionext,uniphier-system-bus" node in DT run-time. If and only if it is found and its "status" property is okay, initialize the SBC block. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
This commit is contained in:
@@ -18,13 +18,14 @@ ifndef CONFIG_SYSRESET
|
|||||||
obj-y += reset.o
|
obj-y += reset.o
|
||||||
endif
|
endif
|
||||||
|
|
||||||
obj-$(CONFIG_MICRO_SUPPORT_CARD) += sbc/ micro-support-card.o
|
obj-$(CONFIG_MICRO_SUPPORT_CARD) += micro-support-card.o
|
||||||
obj-y += pinctrl-glue.o
|
obj-y += pinctrl-glue.o
|
||||||
obj-$(CONFIG_MMC) += mmc-first-dev.o
|
obj-$(CONFIG_MMC) += mmc-first-dev.o
|
||||||
obj-y += fdt-fixup.o
|
obj-y += fdt-fixup.o
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
obj-y += sbc/
|
||||||
obj-y += soc-info.o
|
obj-y += soc-info.o
|
||||||
obj-y += boot-device/
|
obj-y += boot-device/
|
||||||
obj-y += clk/
|
obj-y += clk/
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0+
|
# SPDX-License-Identifier: GPL-2.0+
|
||||||
|
|
||||||
|
obj- += dummy.o
|
||||||
|
|
||||||
|
ifndef CONFIG_SPL_BUILD
|
||||||
obj-y += sbc.o
|
obj-y += sbc.o
|
||||||
|
|
||||||
obj-$(CONFIG_ARCH_UNIPHIER_LD4) += sbc-ld4.o
|
obj-$(CONFIG_ARCH_UNIPHIER_LD4) += sbc-ld4.o
|
||||||
@@ -9,3 +12,4 @@ obj-$(CONFIG_ARCH_UNIPHIER_LD6B) += sbc-pxs2.o
|
|||||||
obj-$(CONFIG_ARCH_UNIPHIER_LD11) += sbc-ld11.o
|
obj-$(CONFIG_ARCH_UNIPHIER_LD11) += sbc-ld11.o
|
||||||
obj-$(CONFIG_ARCH_UNIPHIER_LD20) += sbc-ld11.o
|
obj-$(CONFIG_ARCH_UNIPHIER_LD20) += sbc-ld11.o
|
||||||
obj-$(CONFIG_ARCH_UNIPHIER_PXS3) += sbc-pxs2.o
|
obj-$(CONFIG_ARCH_UNIPHIER_PXS3) += sbc-pxs2.o
|
||||||
|
endif
|
||||||
|
|||||||
@@ -12,6 +12,9 @@
|
|||||||
|
|
||||||
void uniphier_ld11_sbc_init(void)
|
void uniphier_ld11_sbc_init(void)
|
||||||
{
|
{
|
||||||
|
if (!uniphier_sbc_is_enabled())
|
||||||
|
return;
|
||||||
|
|
||||||
uniphier_sbc_init_savepin();
|
uniphier_sbc_init_savepin();
|
||||||
|
|
||||||
/* necessary for ROM boot ?? */
|
/* necessary for ROM boot ?? */
|
||||||
|
|||||||
@@ -13,6 +13,9 @@ void uniphier_ld4_sbc_init(void)
|
|||||||
{
|
{
|
||||||
u32 tmp;
|
u32 tmp;
|
||||||
|
|
||||||
|
if (!uniphier_sbc_is_enabled())
|
||||||
|
return;
|
||||||
|
|
||||||
uniphier_sbc_init_savepin();
|
uniphier_sbc_init_savepin();
|
||||||
|
|
||||||
/* system bus output enable */
|
/* system bus output enable */
|
||||||
|
|||||||
@@ -10,6 +10,9 @@
|
|||||||
|
|
||||||
void uniphier_pxs2_sbc_init(void)
|
void uniphier_pxs2_sbc_init(void)
|
||||||
{
|
{
|
||||||
|
if (!uniphier_sbc_is_enabled())
|
||||||
|
return;
|
||||||
|
|
||||||
uniphier_sbc_init_savepin();
|
uniphier_sbc_init_savepin();
|
||||||
|
|
||||||
/* necessary for ROM boot ?? */
|
/* necessary for ROM boot ?? */
|
||||||
|
|||||||
@@ -84,4 +84,6 @@ static inline int boot_is_swapped(void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
int uniphier_sbc_is_enabled(void);
|
||||||
|
|
||||||
#endif /* ARCH_SBC_REGS_H */
|
#endif /* ARCH_SBC_REGS_H */
|
||||||
|
|||||||
@@ -5,7 +5,9 @@
|
|||||||
* Author: Masahiro Yamada <yamada.masahiro@socionext.com>
|
* Author: Masahiro Yamada <yamada.masahiro@socionext.com>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <common.h>
|
||||||
#include <linux/io.h>
|
#include <linux/io.h>
|
||||||
|
#include <asm/global_data.h>
|
||||||
|
|
||||||
#include "../init.h"
|
#include "../init.h"
|
||||||
#include "sbc-regs.h"
|
#include "sbc-regs.h"
|
||||||
@@ -31,6 +33,20 @@
|
|||||||
#define SBCTRL2_SAVEPIN_MEM_VALUE 0x34000009
|
#define SBCTRL2_SAVEPIN_MEM_VALUE 0x34000009
|
||||||
#define SBCTRL4_SAVEPIN_MEM_VALUE 0x02110210
|
#define SBCTRL4_SAVEPIN_MEM_VALUE 0x02110210
|
||||||
|
|
||||||
|
int uniphier_sbc_is_enabled(void)
|
||||||
|
{
|
||||||
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
const void *fdt = gd->fdt_blob;
|
||||||
|
int offset;
|
||||||
|
|
||||||
|
offset = fdt_node_offset_by_compatible(fdt, 0,
|
||||||
|
"socionext,uniphier-system-bus");
|
||||||
|
if (offset < 0)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
return fdtdec_get_is_enabled(fdt, offset);
|
||||||
|
}
|
||||||
|
|
||||||
static void __uniphier_sbc_init(int savepin)
|
static void __uniphier_sbc_init(int savepin)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
|||||||
Reference in New Issue
Block a user