On Mon, 2021-03-29 at 21:27 +0200, Fabien Parent wrote: > Add the MT8175 pumpkin board support. > > Signed-off-by: Fabien Parent <fpar...@baylibre.com> > --- > arch/arm/dts/Makefile | 1 + > arch/arm/dts/mt8175-pumpkin.dts | 95 ++++++++++++++++++++++++++ > board/mediatek/mt8175/Kconfig | 13 ++++ > board/mediatek/mt8175/MAINTAINERS | 6 ++ > board/mediatek/mt8175/Makefile | 3 + > board/mediatek/mt8175/mt8175_pumpkin.c | 28 ++++++++ > configs/mt8175_pumpkin_defconfig | 81 ++++++++++++++++++++++ > include/configs/mt8175.h | 41 +++++++++++ > 8 files changed, 268 insertions(+) > create mode 100644 arch/arm/dts/mt8175-pumpkin.dts > create mode 100644 board/mediatek/mt8175/Kconfig > create mode 100644 board/mediatek/mt8175/MAINTAINERS > create mode 100644 board/mediatek/mt8175/Makefile > create mode 100644 board/mediatek/mt8175/mt8175_pumpkin.c > create mode 100644 configs/mt8175_pumpkin_defconfig > create mode 100644 include/configs/mt8175.h > > diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile > index 9a8de46272a2..18f6763d569a 100644 > --- a/arch/arm/dts/Makefile > +++ b/arch/arm/dts/Makefile > @@ -1013,6 +1013,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += \ > mt7622-bananapi-bpi-r64.dtb \ > mt7623n-bananapi-bpi-r2.dtb \ > mt7629-rfb.dtb \ > + mt8175-pumpkin.dtb \ > mt8183-pumpkin.dtb \ > mt8512-bm1-emmc.dtb \ > mt8516-pumpkin.dtb \ > diff --git a/arch/arm/dts/mt8175-pumpkin.dts b/arch/arm/dts/mt8175-pumpkin.dts > new file mode 100644 > index 000000000000..9c5bc845a781 > --- /dev/null > +++ b/arch/arm/dts/mt8175-pumpkin.dts > @@ -0,0 +1,95 @@ > +// SPDX-License-Identifier: GPL-2.0 OR MIT > +/* > + * Copyright (C) 2021 BayLibre SAS. > + * Author: Fabien Parent <fpar...@baylibre.com> > + */ > + > +/dts-v1/; > + > +#include <config.h> > +#include "mt8175.dtsi" > + > +/ { > + model = "MT8175 pumpkin board"; > + compatible = "mediatek,mt8175-pumpkin", "mediatek,mt8175"; > + > + memory@40000000 { > + device_type = "memory"; > + reg = <0 0x40000000 0 0x40000000>; > + }; > + > + reserved-memory { > + #address-cells = <2>; > + #size-cells = <2>; > + ranges; > + > + /* 192 KiB reserved for ARM Trusted Firmware (BL31) */ > + bl31_secmon_reserved: secmon@43000000 { > + no-map; > + reg = <0 0x43000000 0 0x30000>; > + }; > + > + /* 12 MiB reserved for OP-TEE (BL32) > + * +-----------------------+ 0x43e0_0000 > + * | SHMEM 2MiB | > + * +-----------------------+ 0x43c0_0000 > + * | | TA_RAM 8MiB | > + * + TZDRAM +--------------+ 0x4340_0000 > + * | | TEE_RAM 2MiB | > + * +-----------------------+ 0x4320_0000 > + */ > + optee_reserved: optee@43200000 { > + no-map; > + reg = <0 0x43200000 0 0x00c00000>; > + }; > + }; > + > + chosen { > + stdout-path = &uart0; > + }; > + > + reg_1p8v: regulator-1p8v { > + compatible = "regulator-fixed"; > + regulator-name = "fixed-1.8V"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + reg_3p3v: regulator-3p3v { > + compatible = "regulator-fixed"; > + regulator-name = "fixed-3.3V"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + regulator-boot-on; > + regulator-always-on; > + }; > +}; > + > +&uart0 { > + status = "okay"; > +}; > + > +&mmc0 { > + bus-width = <4>; > + max-frequency = <200000000>; > + cap-mmc-highspeed; > + mmc-hs200-1_8v; > + cap-mmc-hw-reset; > + vmmc-supply = <®_3p3v>; > + vqmmc-supply = <®_1p8v>; > + non-removable; > + status = "okay"; > +}; > + > +&usb { > + status = "okay"; > +}; > + > +&ssusb { > + mediatek,force-vbus; > + maximum-speed = "high-speed"; > + dr_mode = "peripheral"; > + status = "okay"; > +}; > diff --git a/board/mediatek/mt8175/Kconfig b/board/mediatek/mt8175/Kconfig > new file mode 100644 > index 000000000000..00fd6c9c7f6e > --- /dev/null > +++ b/board/mediatek/mt8175/Kconfig > @@ -0,0 +1,13 @@ > +if TARGET_MT8175 > + > +config SYS_BOARD > + default "mt8175" > + > +config SYS_CONFIG_NAME > + default "mt8175" > + > +config MTK_BROM_HEADER_INFO > + string > + default "media=emmc" > + > +endif > diff --git a/board/mediatek/mt8175/MAINTAINERS > b/board/mediatek/mt8175/MAINTAINERS > new file mode 100644 > index 000000000000..1d2c966a8b44 > --- /dev/null > +++ b/board/mediatek/mt8175/MAINTAINERS > @@ -0,0 +1,6 @@ > +MT8175 Pumpkin > +M: Fabien Parent <fpar...@baylibre.com> > +S: Maintained > +F: board/mediatek/mt8175 > +F: include/configs/mt8175.h > +F: configs/mt8175_pumpkin_defconfig > diff --git a/board/mediatek/mt8175/Makefile b/board/mediatek/mt8175/Makefile > new file mode 100644 > index 000000000000..65fb3a6cb42c > --- /dev/null > +++ b/board/mediatek/mt8175/Makefile > @@ -0,0 +1,3 @@ > +# SPDX-License-Identifier: GPL-2.0 > + > +obj-y += mt8175_pumpkin.o > diff --git a/board/mediatek/mt8175/mt8175_pumpkin.c > b/board/mediatek/mt8175/mt8175_pumpkin.c > new file mode 100644 > index 000000000000..f071089cd44a > --- /dev/null > +++ b/board/mediatek/mt8175/mt8175_pumpkin.c > @@ -0,0 +1,28 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* > + * Copyright (C) 2021 BayLibre SAS > + * Author: Fabien Parent <fpar...@baylibre.com> > + */ > + > +#include <common.h> > +#include <dm.h> > +#include <net.h> > + > +int board_init(void) > +{ > + struct udevice *dev; > + int ret; > + > + if (CONFIG_IS_ENABLED(USB_GADGET)) { > + ret = uclass_get_device(UCLASS_USB_GADGET_GENERIC, 0, &dev); > + if (ret) { > + pr_err("%s: Cannot find USB device\n", __func__); > + return ret; > + } > + } > + > + if (CONFIG_IS_ENABLED(USB_ETHER)) > + usb_ether_init(); > + > + return 0; > +} > diff --git a/configs/mt8175_pumpkin_defconfig > b/configs/mt8175_pumpkin_defconfig > new file mode 100644 > index 000000000000..9d17659c9691 > --- /dev/null > +++ b/configs/mt8175_pumpkin_defconfig > @@ -0,0 +1,81 @@ > +CONFIG_ARM=y > +CONFIG_POSITION_INDEPENDENT=y > +CONFIG_ARCH_MEDIATEK=y > +CONFIG_SYS_TEXT_BASE=0x4c000000 > +CONFIG_SYS_MALLOC_F_LEN=0x4000 > +CONFIG_NR_DRAM_BANKS=1 > +CONFIG_ENV_SIZE=0x1000 > +CONFIG_ENV_OFFSET=0x0 > +CONFIG_DM_GPIO=y > +CONFIG_TARGET_MT8175=y > +CONFIG_DEBUG_UART_BASE=0x11002000 > +CONFIG_DEBUG_UART_CLOCK=26000000 > +# CONFIG_PSCI_RESET is not set > +CONFIG_DEFAULT_DEVICE_TREE="mt8175-pumpkin" > +CONFIG_DEBUG_UART=y > +# CONFIG_ANDROID_BOOT_IMAGE is not set > +CONFIG_FIT=y > +# CONFIG_ARCH_FIXUP_FDT_MEMORY is not set > +CONFIG_DEFAULT_FDT_FILE="mt8175-pumpkin" > +# CONFIG_DISPLAY_BOARDINFO is not set > +CONFIG_HUSH_PARSER=y > +# CONFIG_CMD_BDI is not set > +# CONFIG_CMD_CONSOLE is not set > +# CONFIG_CMD_BOOTD is not set > +# CONFIG_CMD_BOOTI is not set > +# CONFIG_CMD_ELF is not set > +# CONFIG_CMD_GO is not set > +# CONFIG_CMD_IMI is not set > +# CONFIG_CMD_XIMG is not set > +# CONFIG_CMD_EXPORTENV is not set > +# CONFIG_CMD_IMPORTENV is not set > +# CONFIG_CMD_EDITENV is not set > +# CONFIG_CMD_CRC32 is not set > +# CONFIG_CMD_MEMORY is not set > +CONFIG_CMD_CLK=y > +CONFIG_CMD_GPT=y > +# CONFIG_RANDOM_UUID is not set > +# CONFIG_CMD_LOADB is not set > +# CONFIG_CMD_LOADS is not set > +CONFIG_CMD_MMC=y > +CONFIG_CMD_PART=y > +# CONFIG_CMD_ITEST is not set > +# CONFIG_CMD_SETEXPR is not set > +# CONFIG_CMD_BLOCK_CACHE is not set > +CONFIG_CMD_EXT4=y > +CONFIG_CMD_FS_GENERIC=y > +CONFIG_ENV_IS_IN_MMC=y > +CONFIG_SYS_MMC_ENV_PART=2 > +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y > +CONFIG_DEVRES=y > +CONFIG_CLK=y > +CONFIG_USB_FUNCTION_FASTBOOT=y > +CONFIG_FASTBOOT_BUF_ADDR=0x4d000000 > +CONFIG_FASTBOOT_BUF_SIZE=0x8000000 > +CONFIG_FASTBOOT_FLASH=y > +CONFIG_FASTBOOT_FLASH_MMC_DEV=0 > +CONFIG_FASTBOOT_MMC_BOOT_SUPPORT=y > +# CONFIG_INPUT is not set > +CONFIG_DM_MMC=y > +# CONFIG_MMC_QUIRKS is not set > +CONFIG_MMC_MTK=y > +CONFIG_DM_ETH=y > +CONFIG_PHY=y > +CONFIG_PHY_MTK_TPHY=y > +CONFIG_BAUDRATE=921600 > +CONFIG_DM_SERIAL=y > +CONFIG_DEBUG_UART_ANNOUNCE=y > +CONFIG_MTK_SERIAL=y > +CONFIG_USB=y > +CONFIG_DM_USB=y > +CONFIG_DM_USB_GADGET=y > +CONFIG_USB_MTU3=y > +CONFIG_USB_GADGET=y > +CONFIG_USB_GADGET_VENDOR_NUM=0x0e8d > +CONFIG_USB_GADGET_PRODUCT_NUM=0x201c > +CONFIG_USB_ETHER=y > +CONFIG_WDT=y > +CONFIG_WDT_MTK=y > +# CONFIG_REGEX is not set > +CONFIG_OF_LIBFDT_OVERLAY=y > +# CONFIG_EFI_LOADER is not set > diff --git a/include/configs/mt8175.h b/include/configs/mt8175.h > new file mode 100644 > index 000000000000..1f7a8032a65f > --- /dev/null > +++ b/include/configs/mt8175.h > @@ -0,0 +1,41 @@ > +/* SPDX-License-Identifier: GPL-2.0+ */ > +/* > + * Configuration for MT8175 based boards > + * > + * Copyright (C) 2021 BayLibre, SAS > + * Author: Fabien Parent <fpar...@baylibre.com > + */ > + > +#ifndef __MT8175_H > +#define __MT8175_H > + > +#include <linux/sizes.h> > + > +#define CONFIG_SYS_LOAD_ADDR CONFIG_SYS_TEXT_BASE > +#define CONFIG_SYS_MALLOC_LEN SZ_4M > + > +#define CONFIG_CPU_ARMV8 > +#define COUNTER_FREQUENCY 13000000 > + > +#define CONFIG_SYS_NS16550_SERIAL > +#define CONFIG_SYS_NS16550_REG_SIZE -4 > +#define CONFIG_SYS_NS16550_MEM32 > +#define CONFIG_SYS_NS16550_COM1 0x11005200 > +#define CONFIG_SYS_NS16550_CLK 26000000 > + > +#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_TEXT_BASE + SZ_2M - > \ > + GENERATED_GBL_DATA_SIZE) > + > +#define CONFIG_SYS_BOOTM_LEN SZ_64M > + > +/* Environment settings */ > +#include <config_distro_bootcmd.h> > + > +#define BOOT_TARGET_DEVICES(func) \ > + func(MMC, mmc, 0) > + > +#define CONFIG_EXTRA_ENV_SETTINGS \ > + "scriptaddr=0x40000000\0" \ > + BOOTENV > + > +#endif
For usb related: Reviewed-by: Chunfeng Yun <chunfeng....@mediatek.com> Thanks a lot