board/tq: Add common baseboard API

TQMa6 and other SoMs from TQ-Systems GmbH need a baseboard. Therefore
functionality of U-Boot board callbacks may be distributed between SoM
and baseboard implementation.
To prevent code duplication and boilerplate implement a baseboard specific
API for TQ boards with weak defaults that can be filled out for baseboard
implementations as needed.

Signed-off-by: Markus Niebel <Markus.Niebel@ew.tq-group.com>
Signed-off-by: Max Merchel <Max.Merchel@ew.tq-group.com>
This commit is contained in:
Markus Niebel
2026-04-02 09:05:46 -03:00
committed by Fabio Estevam
parent 46de872995
commit b162ec2a08
4 changed files with 135 additions and 0 deletions
+10
View File
@@ -0,0 +1,10 @@
# SPDX-License-Identifier: GPL-2.0-or-later
#
# Copyright (c) 2023-2026 TQ-Systems GmbH <u-boot@ew.tq-group.com>,
# D-82229 Seefeld, Germany.
# Author: Markus Niebel, Max Merchel
#
config TQ_COMMON_BB
bool
default y
+8
View File
@@ -0,0 +1,8 @@
# SPDX-License-Identifier: GPL-2.0-or-later
#
# Copyright (c) 2016-2026 TQ-Systems GmbH <u-boot@ew.tq-group.com>,
# D-82229 Seefeld, Germany.
# Author: Markus Niebel
#
obj-$(CONFIG_TQ_COMMON_BB) += tq_bb.o
+78
View File
@@ -0,0 +1,78 @@
// SPDX-License-Identifier: GPL-2.0-or-later
/*
* Copyright (c) 2022-2026 TQ-Systems GmbH <u-boot@ew.tq-group.com>,
* D-82229 Seefeld, Germany.
* Author: Markus Niebel
*/
#include <linux/types.h>
#include "tq_bb.h"
int __weak tq_bb_board_mmc_getwp(struct mmc *mmc)
{
return 0;
}
int __weak tq_bb_board_mmc_getcd(struct mmc *mmc)
{
return 0;
}
int __weak tq_bb_board_mmc_init(struct bd_info *bis)
{
return 0;
}
int __weak tq_bb_board_early_init_f(void)
{
return 0;
}
int __weak tq_bb_board_init(void)
{
return 0;
}
int __weak tq_bb_board_late_init(void)
{
return 0;
}
int __weak tq_bb_checkboard(void)
{
return 0;
}
void __weak tq_bb_board_quiesce_devices(void)
{
;
}
const char * __weak tq_bb_get_boardname(void)
{
return "INVALID";
}
#if IS_ENABLED(CONFIG_SPL_BUILD)
void __weak tq_bb_board_init_f(ulong dummy)
{
;
}
void __weak tq_bb_spl_board_init(void)
{
;
}
#endif /* IS_ENABLED(CONFIG_SPL_BUILD) */
/*
* Device Tree Support
*/
#if IS_ENABLED(CONFIG_OF_BOARD_SETUP) && IS_ENABLED(CONFIG_OF_LIBFDT)
int __weak tq_bb_ft_board_setup(void *blob, struct bd_info *bis)
{
return 0;
}
#endif /* IS_ENABLED(CONFIG_OF_BOARD_SETUP) && IS_ENABLED(CONFIG_OF_LIBFDT) */
+39
View File
@@ -0,0 +1,39 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* Copyright (c) 2013-2026 TQ-Systems GmbH <u-boot@ew.tq-group.com>,
* D-82229 Seefeld, Germany.
* Author: Markus Niebel
*/
#ifndef __TQ_BB_H
#define __TQ_BB_H
struct mmc;
struct bd_info;
struct node_info;
int tq_bb_board_mmc_getwp(struct mmc *mmc);
int tq_bb_board_mmc_getcd(struct mmc *mmc);
int tq_bb_board_mmc_init(struct bd_info *bis);
int tq_bb_board_early_init_f(void);
int tq_bb_board_init(void);
int tq_bb_board_late_init(void);
int tq_bb_checkboard(void);
void tq_bb_board_quiesce_devices(void);
const char *tq_bb_get_boardname(void);
#if IS_ENABLED(CONFIG_SPL_BUILD)
void tq_bb_board_init_f(ulong dummy);
void tq_bb_spl_board_init(void);
#endif
/*
* Device Tree Support
*/
#if IS_ENABLED(CONFIG_OF_BOARD_SETUP) && IS_ENABLED(CONFIG_OF_LIBFDT)
int tq_bb_ft_board_setup(void *blob, struct bd_info *bis);
#endif /* IS_ENABLED(CONFIG_OF_BOARD_SETUP) && IS_ENABLED(CONFIG_OF_LIBFDT) */
#endif /* __TQ_BB_H */