SeeedStudio BeagleBone Green Eco (BBGE) is a clone of the BeagleBone Green (BBG). It has minor differences from the BBG, such as a different PMIC, a different Ethernet PHY, and a larger eMMC.
The PMIC is not yet supported in mainline, but the work is ongoing. Signed-off-by: Kory Maincent <kory.mainc...@bootlin.com> --- arch/arm/dts/Makefile | 1 + arch/arm/dts/am335x-bonegreen-eco.dts | 34 +++++++++++++++++++++++++++ board/ti/am335x/board.c | 9 ++++++- board/ti/am335x/board.h | 5 ++++ configs/am335x_evm_defconfig | 2 +- configs/am335x_evm_spiboot_defconfig | 2 +- configs/am335x_hs_evm_defconfig | 2 +- configs/am335x_hs_evm_uart_defconfig | 2 +- include/configs/am335x_evm.h | 2 ++ 9 files changed, 54 insertions(+), 5 deletions(-) create mode 100644 arch/arm/dts/am335x-bonegreen-eco.dts diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index bcf3f4be36e..3846df93abb 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -419,6 +419,7 @@ dtb-$(CONFIG_AM33XX) += \ am335x-evm.dtb \ am335x-evmsk.dtb \ am335x-bonegreen.dtb \ + am335x-bonegreen-eco.dtb \ am335x-bonegreen-wireless.dtb \ am335x-icev2.dtb \ am335x-pocketbeagle.dtb \ diff --git a/arch/arm/dts/am335x-bonegreen-eco.dts b/arch/arm/dts/am335x-bonegreen-eco.dts new file mode 100644 index 00000000000..f3363d1ebcc --- /dev/null +++ b/arch/arm/dts/am335x-bonegreen-eco.dts @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (C) 2025 Bootlin + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bonegreen-common.dtsi" + +/ { + model = "TI AM335x BeagleBone Green Eco"; + compatible = "ti,am335x-bone-green-eco", "ti,am335x-bone-green", + "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx"; + + cpus { + cpu@0 { + /delete-property/ cpu0-supply; + }; + }; +}; + +&usb0 { + interrupts-extended = <&intc 18>; + interrupt-names = "mc"; +}; + +&baseboard_eeprom { + /delete-property/ vcc-supply; +}; + +&i2c0 { + /delete-node/ tps@24; +}; diff --git a/board/ti/am335x/board.c b/board/ti/am335x/board.c index f738cba7bd1..4ada8b534c1 100644 --- a/board/ti/am335x/board.c +++ b/board/ti/am335x/board.c @@ -307,6 +307,9 @@ const struct dpll_params *get_dpll_mpu_params(void) if (board_is_pb() || board_is_bone_lt()) freq = MPUPLL_M_1000; + if (board_is_bbge()) + freq = MPUPLL_M_600; + switch (freq) { case MPUPLL_M_1000: return &dpll_mpu_opp[ind][5]; @@ -823,6 +826,8 @@ int board_late_init(void) if (board_is_bbg1()) name = "BBG1"; + if (board_is_bbge()) + name = "BBGE"; if (board_is_bben()) { char subtype_id = board_ti_get_config()[1]; @@ -955,7 +960,7 @@ int board_fit_config_name_match(const char *name) return 0; else if (board_is_bone() && !strcmp(name, "am335x-bone")) return 0; - else if (board_is_bone_lt() && !board_is_bbg1() && + else if (board_is_bone_lt() && !board_is_bbg1() && !board_is_bbge() && !strcmp(name, "am335x-boneblack")) return 0; else if (board_is_pb() && !strcmp(name, "am335x-pocketbeagle")) @@ -964,6 +969,8 @@ int board_fit_config_name_match(const char *name) return 0; else if (board_is_bbg1() && !strcmp(name, "am335x-bonegreen")) return 0; + else if (board_is_bbge() && !strcmp(name, "am335x-bonegreen-eco")) + return 0; else if (board_is_icev2() && !strcmp(name, "am335x-icev2")) return 0; else if (board_is_bben()) { diff --git a/board/ti/am335x/board.h b/board/ti/am335x/board.h index b0a3842423f..2fe88d3d3f8 100644 --- a/board/ti/am335x/board.h +++ b/board/ti/am335x/board.h @@ -45,6 +45,11 @@ static inline int board_is_bbg1(void) return board_is_bone_lt() && !strncmp(board_ti_get_rev(), "BBG1", 4); } +static inline int board_is_bbge(void) +{ + return board_is_bone_lt() && !strncmp(board_ti_get_rev(), "BBGE", 4); +} + static inline int board_is_bben(void) { return board_is_bone_lt() && !strncmp(board_ti_get_rev(), "SE", 2); diff --git a/configs/am335x_evm_defconfig b/configs/am335x_evm_defconfig index 6d1da0cfc7c..674ad6c06ee 100644 --- a/configs/am335x_evm_defconfig +++ b/configs/am335x_evm_defconfig @@ -52,7 +52,7 @@ CONFIG_MTDIDS_DEFAULT="nand0=nand.0" CONFIG_MTDPARTS_DEFAULT="mtdparts=nand.0:128k(NAND.SPL),128k(NAND.SPL.backup1),128k(NAND.SPL.backup2),128k(NAND.SPL.backup3),256k(NAND.u-boot-spl-os),1m(NAND.u-boot),128k(NAND.u-boot-env),128k(NAND.u-boot-env.backup1),8m(NAND.kernel),-(NAND.file-system)" # CONFIG_SPL_EFI_PARTITION is not set CONFIG_OF_CONTROL=y -CONFIG_OF_LIST="am335x-evm am335x-bone am335x-sancloud-bbe am335x-sancloud-bbe-lite am335x-sancloud-bbe-extended-wifi am335x-boneblack am335x-evmsk am335x-bonegreen am335x-icev2 am335x-pocketbeagle" +CONFIG_OF_LIST="am335x-evm am335x-bone am335x-sancloud-bbe am335x-sancloud-bbe-lite am335x-sancloud-bbe-extended-wifi am335x-boneblack am335x-evmsk am335x-bonegreen am335x-icev2 am335x-pocketbeagle am335x-bonegreen-eco" CONFIG_ENV_OVERWRITE=y CONFIG_SYS_RELOC_GD_ENV_ADDR=y CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y diff --git a/configs/am335x_evm_spiboot_defconfig b/configs/am335x_evm_spiboot_defconfig index 221b2f26a43..d53d1b6e906 100644 --- a/configs/am335x_evm_spiboot_defconfig +++ b/configs/am335x_evm_spiboot_defconfig @@ -41,7 +41,7 @@ CONFIG_CMD_MTDPARTS=y # CONFIG_SPL_EFI_PARTITION is not set CONFIG_OF_CONTROL=y CONFIG_SPL_OF_CONTROL=y -CONFIG_OF_LIST="am335x-evm am335x-bone am335x-boneblack am335x-evmsk am335x-bonegreen am335x-icev2 am335x-pocketbeagle" +CONFIG_OF_LIST="am335x-evm am335x-bone am335x-boneblack am335x-evmsk am335x-bonegreen am335x-icev2 am335x-pocketbeagle am335x-bonegreen-eco" CONFIG_ENV_OVERWRITE=y # CONFIG_ENV_IS_IN_FAT is not set CONFIG_ENV_IS_IN_SPI_FLASH=y diff --git a/configs/am335x_hs_evm_defconfig b/configs/am335x_hs_evm_defconfig index 396e7432c40..55f1519f0e0 100644 --- a/configs/am335x_hs_evm_defconfig +++ b/configs/am335x_hs_evm_defconfig @@ -39,7 +39,7 @@ CONFIG_MTDIDS_DEFAULT="nand0=nand.0" CONFIG_MTDPARTS_DEFAULT="mtdparts=nand.0:128k(NAND.SPL),128k(NAND.SPL.backup1),128k(NAND.SPL.backup2),128k(NAND.SPL.backup3),256k(NAND.u-boot-spl-os),1m(NAND.u-boot),128k(NAND.u-boot-env),128k(NAND.u-boot-env.backup1),8m(NAND.kernel),-(NAND.file-system)" # CONFIG_SPL_EFI_PARTITION is not set CONFIG_OF_CONTROL=y -CONFIG_OF_LIST="am335x-evm am335x-bone am335x-boneblack am335x-evmsk am335x-bonegreen am335x-icev2 am335x-pocketbeagle" +CONFIG_OF_LIST="am335x-evm am335x-bone am335x-boneblack am335x-evmsk am335x-bonegreen am335x-icev2 am335x-pocketbeagle am335x-bonegreen-eco" CONFIG_ENV_OVERWRITE=y CONFIG_SYS_RELOC_GD_ENV_ADDR=y CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y diff --git a/configs/am335x_hs_evm_uart_defconfig b/configs/am335x_hs_evm_uart_defconfig index 4be0b2f3933..1bf7b5f8a12 100644 --- a/configs/am335x_hs_evm_uart_defconfig +++ b/configs/am335x_hs_evm_uart_defconfig @@ -41,7 +41,7 @@ CONFIG_MTDIDS_DEFAULT="nand0=nand.0" CONFIG_MTDPARTS_DEFAULT="mtdparts=nand.0:128k(NAND.SPL),128k(NAND.SPL.backup1),128k(NAND.SPL.backup2),128k(NAND.SPL.backup3),256k(NAND.u-boot-spl-os),1m(NAND.u-boot),128k(NAND.u-boot-env),128k(NAND.u-boot-env.backup1),8m(NAND.kernel),-(NAND.file-system)" # CONFIG_SPL_EFI_PARTITION is not set CONFIG_OF_CONTROL=y -CONFIG_OF_LIST="am335x-evm am335x-bone am335x-boneblack am335x-evmsk am335x-bonegreen am335x-icev2 am335x-pocketbeagle" +CONFIG_OF_LIST="am335x-evm am335x-bone am335x-boneblack am335x-evmsk am335x-bonegreen am335x-icev2 am335x-pocketbeagle am335x-bonegreen-eco" CONFIG_ENV_OVERWRITE=y CONFIG_SYS_RELOC_GD_ENV_ADDR=y CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y diff --git a/include/configs/am335x_evm.h b/include/configs/am335x_evm.h index cf43fc05025..d2164b41d6d 100644 --- a/include/configs/am335x_evm.h +++ b/include/configs/am335x_evm.h @@ -126,6 +126,8 @@ "setenv fdtfile am335x-bonegreen.dtb; fi; " \ "if test $board_name = BBGW; then " \ "setenv fdtfile am335x-bonegreen-wireless.dtb; fi; " \ + "if test $board_name = BBGE; then " \ + "setenv fdtfile am335x-bonegreen-eco.dtb; fi; " \ "if test $board_name = BBBL; then " \ "setenv fdtfile am335x-boneblue.dtb; fi; " \ "if test $board_name = BBEN; then " \ -- 2.34.1