diff --git a/projects/Amlogic/patches/u-boot/u-boot-0001-LOCAL-configs-meson64-prevent-stdout-stderr-on-video.patch b/projects/Amlogic/patches/u-boot/u-boot-0001-LOCAL-configs-meson64-prevent-stdout-stderr-on-video.patch index 45cc8a216a..ab1df63604 100644 --- a/projects/Amlogic/patches/u-boot/u-boot-0001-LOCAL-configs-meson64-prevent-stdout-stderr-on-video.patch +++ b/projects/Amlogic/patches/u-boot/u-boot-0001-LOCAL-configs-meson64-prevent-stdout-stderr-on-video.patch @@ -1,7 +1,7 @@ -From 95ed57b0ca24cde1d7547878101c62f552cb1160 Mon Sep 17 00:00:00 2001 +From f7a0409730c486cc4151be60537ca71c25e2bf69 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Fri, 13 Nov 2020 02:09:36 +0000 -Subject: [PATCH 01/22] LOCAL: configs: meson64: prevent stdout/stderr on +Subject: [PATCH 1/5] LOCAL: configs: meson64: prevent stdout/stderr on videoconsole Several devices have CONFIG_VIDEO enabled which causes stdout/stderr @@ -14,10 +14,10 @@ Signed-off-by: Christian Hewitt 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/configs/meson64.h b/include/configs/meson64.h -index 40803ee9da..05b1fcb9fd 100644 +index efab9a624d..0976774e5c 100644 --- a/include/configs/meson64.h +++ b/include/configs/meson64.h -@@ -18,7 +18,7 @@ +@@ -28,7 +28,7 @@ /* For splashscreen */ #ifdef CONFIG_VIDEO diff --git a/projects/Amlogic/patches/u-boot/u-boot-0002-LOCAL-configs-meson64-remove-amlogic-so-fdtdir-finds.patch b/projects/Amlogic/patches/u-boot/u-boot-0002-LOCAL-configs-meson64-remove-amlogic-so-fdtdir-finds.patch index 8b93165b7c..a35c23cac9 100644 --- a/projects/Amlogic/patches/u-boot/u-boot-0002-LOCAL-configs-meson64-remove-amlogic-so-fdtdir-finds.patch +++ b/projects/Amlogic/patches/u-boot/u-boot-0002-LOCAL-configs-meson64-remove-amlogic-so-fdtdir-finds.patch @@ -1,26 +1,26 @@ -From d16384b766e1704470f678589e01d288fbb94960 Mon Sep 17 00:00:00 2001 +From a9231a59ceb4b5025aa0e65599944a73b3a38257 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Thu, 22 Apr 2021 06:52:50 +0000 -Subject: [PATCH 02/22] LOCAL: configs: meson64: remove /amlogic so fdtdir - finds LE boot files +Subject: [PATCH 2/5] LOCAL: configs: meson64: remove /amlogic so fdtdir finds + LE boot files --- include/configs/meson64.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/configs/meson64.h b/include/configs/meson64.h -index 05b1fcb9fd..c4af944382 100644 +index 0976774e5c..8490091824 100644 --- a/include/configs/meson64.h +++ b/include/configs/meson64.h -@@ -89,7 +89,7 @@ - "pxefile_addr_r=0x01080000\0" \ - "fdtoverlay_addr_r=0x01000000\0" \ - "ramdisk_addr_r=0x13000000\0" \ +@@ -133,7 +133,7 @@ + "pxefile_addr_r=" PXEFILE_ADDR_R "\0" \ + "fdtoverlay_addr_r=" FDTOVERLAY_ADDR_R "\0" \ + "ramdisk_addr_r=" RAMDISK_ADDR_R "\0" \ - "fdtfile=amlogic/" CONFIG_DEFAULT_DEVICE_TREE ".dtb\0" \ + "fdtfile=/" CONFIG_DEFAULT_DEVICE_TREE ".dtb\0" \ + "dfu_alt_info=fitimage ram " KERNEL_ADDR_R " 0x4000000 \0" \ BOOTENV #endif - -- 2.34.1 diff --git a/projects/Amlogic/patches/u-boot/u-boot-0003-LOCAL-board-amlogic-odroid-n2-remove-amlogic-prefix-.patch b/projects/Amlogic/patches/u-boot/u-boot-0003-LOCAL-board-amlogic-odroid-n2-remove-amlogic-prefix-.patch index bcebc030c5..9e221df736 100644 --- a/projects/Amlogic/patches/u-boot/u-boot-0003-LOCAL-board-amlogic-odroid-n2-remove-amlogic-prefix-.patch +++ b/projects/Amlogic/patches/u-boot/u-boot-0003-LOCAL-board-amlogic-odroid-n2-remove-amlogic-prefix-.patch @@ -1,8 +1,8 @@ -From a9fc1d56916fbcf4e00a1dd7543c9f53d697477a Mon Sep 17 00:00:00 2001 +From 95d719fb5565ae6eac12af1b63bfda78d7028ef5 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Tue, 3 Aug 2021 18:42:55 +0000 -Subject: [PATCH 03/22] LOCAL: board: amlogic: odroid-n2: remove /amlogic/ - prefix for dtb path +Subject: [PATCH 3/5] LOCAL: board: amlogic: odroid-n2: remove /amlogic/ prefix + for dtb path Remove the /amlogic/ prefix to align with current LE dtb locations. diff --git a/projects/Amlogic/patches/u-boot/u-boot-0004-FROMGIT-net-Add-Amlogic-GXL-MDIO-Mux-driver.patch b/projects/Amlogic/patches/u-boot/u-boot-0004-FROMGIT-net-Add-Amlogic-GXL-MDIO-Mux-driver.patch new file mode 100644 index 0000000000..da7d7e5616 --- /dev/null +++ b/projects/Amlogic/patches/u-boot/u-boot-0004-FROMGIT-net-Add-Amlogic-GXL-MDIO-Mux-driver.patch @@ -0,0 +1,197 @@ +From 60eefe057501e5bc4bd7b9deffb7f5ccaa45aae7 Mon Sep 17 00:00:00 2001 +From: Neil Armstrong +Date: Wed, 13 Dec 2023 10:30:12 +0100 +Subject: [PATCH 4/5] FROMGIT: net: Add Amlogic GXL MDIO Mux driver + +Port the mdio-mux-meson-gxl.c Linux driver introduced in [1], +and adapt it to U-Boot. + +This driver is needed to boot U-Boot with Linux DT since v6.4, +since it switched the MDIO mux from the mmio to a proper GXL driver. + +[1] 9a24e1ff4326 ("net: mdio: add amlogic gxl mdio mux support") + +Link: https://lore.kernel.org/r/20231213-u-boot-gxl-mdio-mux-v2-1-c56bb02a75ea@linaro.org +Signed-off-by: Neil Armstrong +--- + drivers/net/Kconfig | 7 ++ + drivers/net/Makefile | 1 + + drivers/net/mdio_mux_meson_gxl.c | 138 +++++++++++++++++++++++++++++++ + 3 files changed, 146 insertions(+) + create mode 100644 drivers/net/mdio_mux_meson_gxl.c + +diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig +index ebab4d9f2e..18ec910d12 100644 +--- a/drivers/net/Kconfig ++++ b/drivers/net/Kconfig +@@ -988,4 +988,11 @@ config MDIO_MUX_MESON_G12A + This driver is used for the MDIO mux found on the Amlogic G12A & compatible + SoCs. + ++config MDIO_MUX_MESON_GXL ++ bool "MDIO MUX for Amlogic Meson GXL SoCs" ++ depends on DM_MDIO_MUX ++ help ++ This driver is used for the MDIO mux found on the Amlogic GXL & compatible ++ SoCs. ++ + endif # NETDEVICES +diff --git a/drivers/net/Makefile b/drivers/net/Makefile +index 1ce6fea323..3794609fd2 100644 +--- a/drivers/net/Makefile ++++ b/drivers/net/Makefile +@@ -58,6 +58,7 @@ obj-$(CONFIG_MCFFEC) += mcffec.o mcfmii.o + obj-$(CONFIG_MDIO_IPQ4019) += mdio-ipq4019.o + obj-$(CONFIG_MDIO_MUX_I2CREG) += mdio_mux_i2creg.o + obj-$(CONFIG_MDIO_MUX_MESON_G12A) += mdio_mux_meson_g12a.o ++obj-$(CONFIG_MDIO_MUX_MESON_GXL) += mdio_mux_meson_gxl.o + obj-$(CONFIG_MDIO_MUX_MMIOREG) += mdio_mux_mmioreg.o + obj-$(CONFIG_MDIO_MUX_SANDBOX) += mdio_mux_sandbox.o + obj-$(CONFIG_MDIO_SANDBOX) += mdio_sandbox.o +diff --git a/drivers/net/mdio_mux_meson_gxl.c b/drivers/net/mdio_mux_meson_gxl.c +new file mode 100644 +index 0000000000..8ef3ae598b +--- /dev/null ++++ b/drivers/net/mdio_mux_meson_gxl.c +@@ -0,0 +1,138 @@ ++// SPDX-License-Identifier: GPL-2.0 ++/* ++ * Copyright (c) 2022 Baylibre, SAS. ++ * Author: Jerome Brunet ++ * Copyright (c) 2023 Neil Armstrong ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define ETH_REG2 0x0 ++#define REG2_PHYID GENMASK(21, 0) ++#define EPHY_GXL_ID 0x110181 ++#define REG2_LEDACT GENMASK(23, 22) ++#define REG2_LEDLINK GENMASK(25, 24) ++#define REG2_DIV4SEL BIT(27) ++#define REG2_ADCBYPASS BIT(30) ++#define REG2_CLKINSEL BIT(31) ++#define ETH_REG3 0x4 ++#define REG3_ENH BIT(3) ++#define REG3_CFGMODE GENMASK(6, 4) ++#define REG3_AUTOMDIX BIT(7) ++#define REG3_PHYADDR GENMASK(12, 8) ++#define REG3_PWRUPRST BIT(21) ++#define REG3_PWRDOWN BIT(22) ++#define REG3_LEDPOL BIT(23) ++#define REG3_PHYMDI BIT(26) ++#define REG3_CLKINEN BIT(29) ++#define REG3_PHYIP BIT(30) ++#define REG3_PHYEN BIT(31) ++#define ETH_REG4 0x8 ++#define REG4_PWRUPRSTSIG BIT(0) ++ ++#define MESON_GXL_MDIO_EXTERNAL_ID 0 ++#define MESON_GXL_MDIO_INTERNAL_ID 1 ++ ++struct mdio_mux_meson_gxl_priv { ++ phys_addr_t regs; ++}; ++ ++static int meson_gxl_enable_internal_mdio(struct mdio_mux_meson_gxl_priv *priv) ++{ ++ u32 val; ++ ++ /* Setup the internal phy */ ++ val = (REG3_ENH | ++ FIELD_PREP(REG3_CFGMODE, 0x7) | ++ REG3_AUTOMDIX | ++ FIELD_PREP(REG3_PHYADDR, 8) | ++ REG3_LEDPOL | ++ REG3_PHYMDI | ++ REG3_CLKINEN | ++ REG3_PHYIP); ++ ++ writel(REG4_PWRUPRSTSIG, priv->regs + ETH_REG4); ++ writel(val, priv->regs + ETH_REG3); ++ mdelay(10); ++ ++ /* NOTE: The HW kept the phy id configurable at runtime. ++ * The id below is arbitrary. It is the one used in the vendor code. ++ * The only constraint is that it must match the one in ++ * drivers/net/phy/meson-gxl.c to properly match the PHY. ++ */ ++ writel(FIELD_PREP(REG2_PHYID, EPHY_GXL_ID), ++ priv->regs + ETH_REG2); ++ ++ /* Enable the internal phy */ ++ val |= REG3_PHYEN; ++ writel(val, priv->regs + ETH_REG3); ++ writel(0, priv->regs + ETH_REG4); ++ ++ /* The phy needs a bit of time to power up */ ++ mdelay(10); ++ ++ return 0; ++} ++ ++static int meson_gxl_enable_external_mdio(struct mdio_mux_meson_gxl_priv *priv) ++{ ++ /* Reset the mdio bus mux to the external phy */ ++ writel(0, priv->regs + ETH_REG3); ++ ++ return 0; ++} ++ ++static int mdio_mux_meson_gxl_select(struct udevice *mux, int cur, int sel) ++{ ++ struct mdio_mux_meson_gxl_priv *priv = dev_get_priv(mux); ++ ++ debug("%s: %x -> %x\n", __func__, (u32)cur, (u32)sel); ++ ++ /* if last selection didn't change we're good to go */ ++ if (cur == sel) ++ return 0; ++ ++ switch (sel) { ++ case MESON_GXL_MDIO_EXTERNAL_ID: ++ return meson_gxl_enable_external_mdio(priv); ++ case MESON_GXL_MDIO_INTERNAL_ID: ++ return meson_gxl_enable_internal_mdio(priv); ++ default: ++ return -EINVAL; ++ } ++ ++ return 0; ++} ++ ++static const struct mdio_mux_ops mdio_mux_meson_gxl_ops = { ++ .select = mdio_mux_meson_gxl_select, ++}; ++ ++static int mdio_mux_meson_gxl_probe(struct udevice *dev) ++{ ++ struct mdio_mux_meson_gxl_priv *priv = dev_get_priv(dev); ++ ++ priv->regs = dev_read_addr(dev); ++ ++ return 0; ++} ++ ++static const struct udevice_id mdio_mux_meson_gxl_ids[] = { ++ { .compatible = "amlogic,gxl-mdio-mux" }, ++ { } ++}; ++ ++U_BOOT_DRIVER(mdio_mux_meson_gxl) = { ++ .name = "mdio_mux_meson_gxl", ++ .id = UCLASS_MDIO_MUX, ++ .of_match = mdio_mux_meson_gxl_ids, ++ .probe = mdio_mux_meson_gxl_probe, ++ .ops = &mdio_mux_meson_gxl_ops, ++ .priv_auto = sizeof(struct mdio_mux_meson_gxl_priv), ++}; +-- +2.34.1 + diff --git a/projects/Amlogic/patches/u-boot/u-boot-0005-FROMGIT-ARM-dts-sync-Amlogic-GX-DT-to-Linux-v6.4.patch b/projects/Amlogic/patches/u-boot/u-boot-0005-FROMGIT-ARM-dts-sync-Amlogic-GX-DT-to-Linux-v6.4.patch new file mode 100644 index 0000000000..e7a8b2cc1e --- /dev/null +++ b/projects/Amlogic/patches/u-boot/u-boot-0005-FROMGIT-ARM-dts-sync-Amlogic-GX-DT-to-Linux-v6.4.patch @@ -0,0 +1,785 @@ +From 5f0a6294ad795b9644c2811469cca7c375bede6e Mon Sep 17 00:00:00 2001 +From: Neil Armstrong +Date: Wed, 13 Dec 2023 10:30:13 +0100 +Subject: [PATCH 5/5] FROMGIT: ARM: dts: sync Amlogic GX DT to Linux v6.4 + +Sync Amlogic GXBB, GXL & GXM DTs from Linux v6.4, and also +switch to GXL MDIO MUX driver to adapt to DT change, + +Most of the changes are only cosmetic or doesn't concern U-Boot, +the most important change for U-Boot is the GXL mdio mux compatible +switch to amlogic,gxl-mdio-mux. + +Link: https://lore.kernel.org/r/20231213-u-boot-gxl-mdio-mux-v2-2-c56bb02a75ea@linaro.org +Signed-off-by: Neil Armstrong +--- + arch/arm/dts/meson-gx-libretech-pc.dtsi | 4 +- + arch/arm/dts/meson-gx.dtsi | 21 ++++-- + arch/arm/dts/meson-gxbb-nanopi-k2.dts | 13 +++- + arch/arm/dts/meson-gxbb-odroidc2.dts | 26 +++---- + arch/arm/dts/meson-gxbb.dtsi | 18 ++++- + arch/arm/dts/meson-gxl-s805x-libretech-ac.dts | 2 +- + .../meson-gxl-s905w-jethome-jethub-j80.dts | 12 +++- + arch/arm/dts/meson-gxl-s905x-khadas-vim.dts | 16 +---- + .../dts/meson-gxl-s905x-libretech-cc-v2.dts | 3 +- + arch/arm/dts/meson-gxl-s905x-p212.dts | 68 +++++++++++++++++++ + arch/arm/dts/meson-gxl-s905x-p212.dtsi | 21 +++--- + arch/arm/dts/meson-gxl.dtsi | 43 ++++++++---- + arch/arm/dts/meson-gxm-khadas-vim2.dts | 15 ++-- + arch/arm/dts/meson-gxm-wetek-core2.dts | 2 - + configs/beelink-gt1-ultimate_defconfig | 2 +- + configs/jethub_j80_defconfig | 2 +- + configs/khadas-vim2_defconfig | 2 +- + configs/khadas-vim_defconfig | 2 +- + configs/libretech-ac_defconfig | 2 +- + configs/libretech-cc_defconfig | 2 +- + configs/libretech-cc_v2_defconfig | 2 +- + configs/libretech-s905d-pc_defconfig | 2 +- + configs/libretech-s912-pc_defconfig | 2 +- + configs/p212_defconfig | 2 +- + configs/wetek-core2_defconfig | 2 +- + 25 files changed, 196 insertions(+), 90 deletions(-) + +diff --git a/arch/arm/dts/meson-gx-libretech-pc.dtsi b/arch/arm/dts/meson-gx-libretech-pc.dtsi +index 2d7032f41e..4e84ab87cc 100644 +--- a/arch/arm/dts/meson-gx-libretech-pc.dtsi ++++ b/arch/arm/dts/meson-gx-libretech-pc.dtsi +@@ -17,7 +17,7 @@ + io-channel-names = "buttons"; + keyup-threshold-microvolt = <1800000>; + +- update-button { ++ button-update { + label = "update"; + linux,code = ; + press-threshold-microvolt = <1300000>; +@@ -416,7 +416,7 @@ + pinctrl-names = "default"; + status = "okay"; + +- gd25lq128: spi-flash@0 { ++ gd25lq128: flash@0 { + compatible = "jedec,spi-nor"; + #address-cells = <1>; + #size-cells = <1>; +diff --git a/arch/arm/dts/meson-gx.dtsi b/arch/arm/dts/meson-gx.dtsi +index 6b457b2c30..11f89bfecb 100644 +--- a/arch/arm/dts/meson-gx.dtsi ++++ b/arch/arm/dts/meson-gx.dtsi +@@ -49,6 +49,12 @@ + no-map; + }; + ++ /* 32 MiB reserved for ARM Trusted Firmware (BL32) */ ++ secmon_reserved_bl32: secmon@5300000 { ++ reg = <0x0 0x05300000 0x0 0x2000000>; ++ no-map; ++ }; ++ + linux,cma { + compatible = "shared-dma-pool"; + reusable; +@@ -126,6 +132,7 @@ + + l2: l2-cache0 { + compatible = "cache"; ++ cache-level = <2>; + }; + }; + +@@ -226,7 +233,7 @@ + reg = <0x14 0x10>; + }; + +- eth_mac: eth_mac@34 { ++ eth_mac: eth-mac@34 { + reg = <0x34 0x10>; + }; + +@@ -243,7 +250,7 @@ + scpi_clocks: clocks { + compatible = "arm,scpi-clocks"; + +- scpi_dvfs: scpi_clocks@0 { ++ scpi_dvfs: clocks-0 { + compatible = "arm,scpi-dvfs-clocks"; + #clock-cells = <1>; + clock-indices = <0>; +@@ -444,7 +451,7 @@ + + sysctrl_AO: sys-ctrl@0 { + compatible = "amlogic,meson-gx-ao-sysctrl", "simple-mfd", "syscon"; +- reg = <0x0 0x0 0x0 0x100>; ++ reg = <0x0 0x0 0x0 0x100>; + + clkc_AO: clock-controller { + compatible = "amlogic,meson-gx-aoclkc"; +@@ -525,7 +532,7 @@ + #size-cells = <2>; + ranges = <0x0 0x0 0x0 0xc8834000 0x0 0x2000>; + +- hwrng: rng { ++ hwrng: rng@0 { + compatible = "amlogic,meson-rng"; + reg = <0x0 0x0 0x0 0x4>; + }; +@@ -596,21 +603,21 @@ + sd_emmc_a: mmc@70000 { + compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc"; + reg = <0x0 0x70000 0x0 0x800>; +- interrupts = ; ++ interrupts = ; + status = "disabled"; + }; + + sd_emmc_b: mmc@72000 { + compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc"; + reg = <0x0 0x72000 0x0 0x800>; +- interrupts = ; ++ interrupts = ; + status = "disabled"; + }; + + sd_emmc_c: mmc@74000 { + compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc"; + reg = <0x0 0x74000 0x0 0x800>; +- interrupts = ; ++ interrupts = ; + status = "disabled"; + }; + }; +diff --git a/arch/arm/dts/meson-gxbb-nanopi-k2.dts b/arch/arm/dts/meson-gxbb-nanopi-k2.dts +index 7273eed529..7d94160f58 100644 +--- a/arch/arm/dts/meson-gxbb-nanopi-k2.dts ++++ b/arch/arm/dts/meson-gxbb-nanopi-k2.dts +@@ -385,9 +385,20 @@ + + /* Bluetooth on AP6212 */ + &uart_A { +- status = "disabled"; ++ status = "okay"; + pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; + pinctrl-names = "default"; ++ uart-has-rtscts; ++ ++ bluetooth { ++ compatible = "brcm,bcm43438-bt"; ++ clocks = <&wifi_32k>; ++ clock-names = "lpo"; ++ vbat-supply = <&vddio_ao3v3>; ++ vddio-supply = <&vddio_ao18>; ++ host-wakeup-gpios = <&gpio GPIOX_21 GPIO_ACTIVE_HIGH>; ++ shutdown-gpios = <&gpio GPIOX_20 GPIO_ACTIVE_HIGH>; ++ }; + }; + + /* 40-pin CON1 */ +diff --git a/arch/arm/dts/meson-gxbb-odroidc2.dts b/arch/arm/dts/meson-gxbb-odroidc2.dts +index 201596247f..01356437a0 100644 +--- a/arch/arm/dts/meson-gxbb-odroidc2.dts ++++ b/arch/arm/dts/meson-gxbb-odroidc2.dts +@@ -250,21 +250,6 @@ + }; + }; + +-&gpio_ao { +- /* +- * WARNING: The USB Hub on the Odroid-C2 needs a reset signal +- * to be turned high in order to be detected by the USB Controller +- * This signal should be handled by a USB specific power sequence +- * in order to reset the Hub when USB bus is powered down. +- */ +- hog-0 { +- gpio-hog; +- gpios = ; +- output-high; +- line-name = "usb-hub-reset"; +- }; +-}; +- + &hdmi_tx { + status = "okay"; + pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; +@@ -414,5 +399,16 @@ + }; + + &usb1 { ++ dr_mode = "host"; ++ #address-cells = <1>; ++ #size-cells = <0>; + status = "okay"; ++ ++ hub@1 { ++ /* Genesys Logic GL852G USB 2.0 hub */ ++ compatible = "usb5e3,610"; ++ reg = <1>; ++ vdd-supply = <&p5v0>; ++ reset-gpio = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_LOW>; ++ }; + }; +diff --git a/arch/arm/dts/meson-gxbb.dtsi b/arch/arm/dts/meson-gxbb.dtsi +index 7c029f552a..12ef6e81c8 100644 +--- a/arch/arm/dts/meson-gxbb.dtsi ++++ b/arch/arm/dts/meson-gxbb.dtsi +@@ -300,8 +300,8 @@ + }; + + &gpio_intc { +- compatible = "amlogic,meson-gpio-intc", +- "amlogic,meson-gxbb-gpio-intc"; ++ compatible = "amlogic,meson-gxbb-gpio-intc", ++ "amlogic,meson-gpio-intc"; + status = "okay"; + }; + +@@ -427,6 +427,20 @@ + }; + }; + ++ spi_idle_high_pins: spi-idle-high-pins { ++ mux { ++ groups = "spi_sclk"; ++ bias-pull-up; ++ }; ++ }; ++ ++ spi_idle_low_pins: spi-idle-low-pins { ++ mux { ++ groups = "spi_sclk"; ++ bias-pull-down; ++ }; ++ }; ++ + spi_ss0_pins: spi-ss0 { + mux { + groups = "spi_ss0"; +diff --git a/arch/arm/dts/meson-gxl-s805x-libretech-ac.dts b/arch/arm/dts/meson-gxl-s805x-libretech-ac.dts +index 2d769203f6..213a0705eb 100644 +--- a/arch/arm/dts/meson-gxl-s805x-libretech-ac.dts ++++ b/arch/arm/dts/meson-gxl-s805x-libretech-ac.dts +@@ -298,7 +298,7 @@ + pinctrl-0 = <&nor_pins>; + pinctrl-names = "default"; + +- w25q32: spi-flash@0 { ++ w25q32: flash@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "jedec,spi-nor"; +diff --git a/arch/arm/dts/meson-gxl-s905w-jethome-jethub-j80.dts b/arch/arm/dts/meson-gxl-s905w-jethome-jethub-j80.dts +index 6eafb90869..a18d6d241a 100644 +--- a/arch/arm/dts/meson-gxl-s905w-jethome-jethub-j80.dts ++++ b/arch/arm/dts/meson-gxl-s905w-jethome-jethub-j80.dts +@@ -86,11 +86,11 @@ + }; + + &efuse { +- bt_mac: bt_mac@6 { ++ bt_mac: bt-mac@6 { + reg = <0x6 0x6>; + }; + +- wifi_mac: wifi_mac@C { ++ wifi_mac: wifi-mac@c { + reg = <0xc 0x6>; + }; + }; +@@ -213,6 +213,12 @@ + pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; + pinctrl-names = "default"; + uart-has-rtscts; ++ ++ bluetooth { ++ compatible = "realtek,rtl8822cs-bt"; ++ enable-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; ++ host-wake-gpios = <&gpio GPIOX_18 GPIO_ACTIVE_HIGH>; ++ }; + }; + + &uart_C { +@@ -233,7 +239,7 @@ + pinctrl-names = "default"; + pinctrl-0 = <&i2c_b_pins>; + +- pcf8563: pcf8563@51 { ++ pcf8563: rtc@51 { + compatible = "nxp,pcf8563"; + reg = <0x51>; + status = "okay"; +diff --git a/arch/arm/dts/meson-gxl-s905x-khadas-vim.dts b/arch/arm/dts/meson-gxl-s905x-khadas-vim.dts +index 60feac0179..02f81839d4 100644 +--- a/arch/arm/dts/meson-gxl-s905x-khadas-vim.dts ++++ b/arch/arm/dts/meson-gxl-s905x-khadas-vim.dts +@@ -140,7 +140,6 @@ + compatible = "haoyu,hym8563"; + reg = <0x51>; + #clock-cells = <0>; +- clock-frequency = <32768>; + clock-output-names = "xin32k"; + }; + }; +@@ -218,20 +217,7 @@ + }; + + &sd_emmc_a { +- brcmf: wifi@1 { +- reg = <1>; +- compatible = "brcm,bcm4329-fmac"; +- }; +-}; +- +-&uart_A { +- bluetooth { +- compatible = "brcm,bcm43438-bt"; +- shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; +- max-speed = <2000000>; +- clocks = <&wifi32k>; +- clock-names = "lpo"; +- }; ++ max-frequency = <100000000>; + }; + + /* This is brought out on the Linux_RX (18) and Linux_TX (19) pins: */ +diff --git a/arch/arm/dts/meson-gxl-s905x-libretech-cc-v2.dts b/arch/arm/dts/meson-gxl-s905x-libretech-cc-v2.dts +index 93d8f8aff7..6c4e68e0e6 100644 +--- a/arch/arm/dts/meson-gxl-s905x-libretech-cc-v2.dts ++++ b/arch/arm/dts/meson-gxl-s905x-libretech-cc-v2.dts +@@ -284,7 +284,7 @@ + pinctrl-0 = <&nor_pins>; + pinctrl-names = "default"; + +- nor_4u1: spi-flash@0 { ++ nor_4u1: flash@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "jedec,spi-nor"; +@@ -305,7 +305,6 @@ + }; + + &usb2_phy0 { +- pinctrl-names = "default"; + phy-supply = <&vcc5v>; + }; + +diff --git a/arch/arm/dts/meson-gxl-s905x-p212.dts b/arch/arm/dts/meson-gxl-s905x-p212.dts +index 2602940c20..9b4ea6a493 100644 +--- a/arch/arm/dts/meson-gxl-s905x-p212.dts ++++ b/arch/arm/dts/meson-gxl-s905x-p212.dts +@@ -7,11 +7,19 @@ + /dts-v1/; + + #include "meson-gxl-s905x-p212.dtsi" ++#include + + / { + compatible = "amlogic,p212", "amlogic,s905x", "amlogic,meson-gxl"; + model = "Amlogic Meson GXL (S905X) P212 Development Board"; + ++ dio2133: analog-amplifier { ++ compatible = "simple-audio-amplifier"; ++ sound-name-prefix = "AU2"; ++ VCC-supply = <&hdmi_5v>; ++ enable-gpios = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>; ++ }; ++ + cvbs-connector { + compatible = "composite-video-connector"; + +@@ -32,6 +40,66 @@ + }; + }; + }; ++ ++ sound { ++ compatible = "amlogic,gx-sound-card"; ++ model = "S905X-P212"; ++ audio-aux-devs = <&dio2133>; ++ audio-widgets = "Line", "Lineout"; ++ audio-routing = "AU2 INL", "ACODEC LOLN", ++ "AU2 INR", "ACODEC LORN", ++ "Lineout", "AU2 OUTL", ++ "Lineout", "AU2 OUTR"; ++ assigned-clocks = <&clkc CLKID_MPLL0>, ++ <&clkc CLKID_MPLL1>, ++ <&clkc CLKID_MPLL2>; ++ assigned-clock-parents = <0>, <0>, <0>; ++ assigned-clock-rates = <294912000>, ++ <270950400>, ++ <393216000>; ++ dai-link-0 { ++ sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; ++ }; ++ ++ dai-link-1 { ++ sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; ++ dai-format = "i2s"; ++ mclk-fs = <256>; ++ ++ codec-0 { ++ sound-dai = <&aiu AIU_HDMI CTRL_I2S>; ++ }; ++ ++ codec-1 { ++ sound-dai = <&aiu AIU_ACODEC CTRL_I2S>; ++ }; ++ }; ++ ++ dai-link-2 { ++ sound-dai = <&aiu AIU_HDMI CTRL_OUT>; ++ ++ codec-0 { ++ sound-dai = <&hdmi_tx>; ++ }; ++ }; ++ ++ dai-link-3 { ++ sound-dai = <&aiu AIU_ACODEC CTRL_OUT>; ++ ++ codec-0 { ++ sound-dai = <&acodec>; ++ }; ++ }; ++ }; ++}; ++ ++&acodec { ++ AVDD-supply = <&vddio_ao18>; ++ status = "okay"; ++}; ++ ++&aiu { ++ status = "okay"; + }; + + &cec_AO { +diff --git a/arch/arm/dts/meson-gxl-s905x-p212.dtsi b/arch/arm/dts/meson-gxl-s905x-p212.dtsi +index 05cb2f5e5c..a150cc0e18 100644 +--- a/arch/arm/dts/meson-gxl-s905x-p212.dtsi ++++ b/arch/arm/dts/meson-gxl-s905x-p212.dtsi +@@ -97,6 +97,14 @@ + pinctrl-names = "default"; + }; + ++&pwm_ef { ++ status = "okay"; ++ pinctrl-0 = <&pwm_e_pins>; ++ pinctrl-names = "default"; ++ clocks = <&clkc CLKID_FCLK_DIV4>; ++ clock-names = "clkin0"; ++}; ++ + &saradc { + status = "okay"; + vref-supply = <&vddio_ao18>; +@@ -125,6 +133,11 @@ + + vmmc-supply = <&vddao_3v3>; + vqmmc-supply = <&vddio_boot>; ++ ++ brcmf: wifi@1 { ++ reg = <1>; ++ compatible = "brcm,bcm4329-fmac"; ++ }; + }; + + /* SD card */ +@@ -165,14 +178,6 @@ + vqmmc-supply = <&vddio_boot>; + }; + +-&pwm_ef { +- status = "okay"; +- pinctrl-0 = <&pwm_e_pins>; +- pinctrl-names = "default"; +- clocks = <&clkc CLKID_FCLK_DIV4>; +- clock-names = "clkin0"; +-}; +- + /* This is connected to the Bluetooth module: */ + &uart_A { + status = "okay"; +diff --git a/arch/arm/dts/meson-gxl.dtsi b/arch/arm/dts/meson-gxl.dtsi +index c3ac531c4f..17bcfa4702 100644 +--- a/arch/arm/dts/meson-gxl.dtsi ++++ b/arch/arm/dts/meson-gxl.dtsi +@@ -312,8 +312,8 @@ + }; + + &gpio_intc { +- compatible = "amlogic,meson-gpio-intc", +- "amlogic,meson-gxl-gpio-intc"; ++ compatible = "amlogic,meson-gxl-gpio-intc", ++ "amlogic,meson-gpio-intc"; + status = "okay"; + }; + +@@ -429,6 +429,20 @@ + }; + }; + ++ spi_idle_high_pins: spi-idle-high-pins { ++ mux { ++ groups = "spi_sclk"; ++ bias-pull-up; ++ }; ++ }; ++ ++ spi_idle_low_pins: spi-idle-low-pins { ++ mux { ++ groups = "spi_sclk"; ++ bias-pull-down; ++ }; ++ }; ++ + spi_ss0_pins: spi-ss0 { + mux { + groups = "spi_ss0"; +@@ -759,16 +773,23 @@ + }; + }; + +- eth-phy-mux { +- compatible = "mdio-mux-mmioreg", "mdio-mux"; ++ eth_phy_mux: mdio@558 { ++ reg = <0x0 0x558 0x0 0xc>; ++ compatible = "amlogic,gxl-mdio-mux"; + #address-cells = <1>; + #size-cells = <0>; +- reg = <0x0 0x55c 0x0 0x4>; +- mux-mask = <0xffffffff>; ++ clocks = <&clkc CLKID_FCLK_DIV4>; ++ clock-names = "ref"; + mdio-parent-bus = <&mdio0>; + +- internal_mdio: mdio@e40908ff { +- reg = <0xe40908ff>; ++ external_mdio: mdio@0 { ++ reg = <0x0>; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ }; ++ ++ internal_mdio: mdio@1 { ++ reg = <0x1>; + #address-cells = <1>; + #size-cells = <0>; + +@@ -779,12 +800,6 @@ + max-speed = <100>; + }; + }; +- +- external_mdio: mdio@2009087f { +- reg = <0x2009087f>; +- #address-cells = <1>; +- #size-cells = <0>; +- }; + }; + }; + +diff --git a/arch/arm/dts/meson-gxm-khadas-vim2.dts b/arch/arm/dts/meson-gxm-khadas-vim2.dts +index 18a4b7a6c5..74897a1548 100644 +--- a/arch/arm/dts/meson-gxm-khadas-vim2.dts ++++ b/arch/arm/dts/meson-gxm-khadas-vim2.dts +@@ -52,10 +52,11 @@ + gpios = <&gpio GPIODV_14 GPIO_ACTIVE_HIGH + &gpio GPIODV_15 GPIO_ACTIVE_HIGH>; + /* Dummy RPM values since fan is optional */ +- gpio-fan,speed-map = <0 0 +- 1 1 +- 2 2 +- 3 3>; ++ gpio-fan,speed-map = ++ <0 0>, ++ <1 1>, ++ <2 2>, ++ <3 3>; + #cooling-cells = <2>; + }; + +@@ -270,7 +271,6 @@ + compatible = "haoyu,hym8563"; + reg = <0x51>; + #clock-cells = <0>; +- clock-frequency = <32768>; + clock-output-names = "xin32k"; + }; + }; +@@ -307,7 +307,8 @@ + #size-cells = <0>; + + bus-width = <4>; +- max-frequency = <60000000>; ++ cap-sd-highspeed; ++ max-frequency = <100000000>; + + non-removable; + disable-wp; +@@ -373,7 +374,7 @@ + pinctrl-0 = <&nor_pins>; + pinctrl-names = "default"; + +- w25q32: spi-flash@0 { ++ w25q32: flash@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "winbond,w25q16", "jedec,spi-nor"; +diff --git a/arch/arm/dts/meson-gxm-wetek-core2.dts b/arch/arm/dts/meson-gxm-wetek-core2.dts +index 1e7f77f9b5..f8c40340b9 100644 +--- a/arch/arm/dts/meson-gxm-wetek-core2.dts ++++ b/arch/arm/dts/meson-gxm-wetek-core2.dts +@@ -45,8 +45,6 @@ + + gpio-keys-polled { + compatible = "gpio-keys-polled"; +- #address-cells = <1>; +- #size-cells = <0>; + poll-interval = <100>; + + button-power { +diff --git a/configs/beelink-gt1-ultimate_defconfig b/configs/beelink-gt1-ultimate_defconfig +index 1313dde92f..00fdad8544 100644 +--- a/configs/beelink-gt1-ultimate_defconfig ++++ b/configs/beelink-gt1-ultimate_defconfig +@@ -46,7 +46,7 @@ CONFIG_PHY_REALTEK=y + CONFIG_DM_MDIO=y + CONFIG_DM_MDIO_MUX=y + CONFIG_ETH_DESIGNWARE_MESON8B=y +-CONFIG_MDIO_MUX_MMIOREG=y ++CONFIG_MDIO_MUX_MESON_GXL=y + CONFIG_MESON_GXL_USB_PHY=y + CONFIG_PINCTRL=y + CONFIG_PINCTRL_MESON_GXL=y +diff --git a/configs/jethub_j80_defconfig b/configs/jethub_j80_defconfig +index b370e5d1d4..15e410de82 100644 +--- a/configs/jethub_j80_defconfig ++++ b/configs/jethub_j80_defconfig +@@ -54,7 +54,7 @@ CONFIG_PHY_MESON_GXL=y + CONFIG_DM_MDIO=y + CONFIG_DM_MDIO_MUX=y + CONFIG_ETH_DESIGNWARE_MESON8B=y +-CONFIG_MDIO_MUX_MMIOREG=y ++CONFIG_MDIO_MUX_MESON_GXL=y + CONFIG_MESON_GXL_USB_PHY=y + CONFIG_PINCTRL=y + CONFIG_PINCTRL_MESON_GXL=y +diff --git a/configs/khadas-vim2_defconfig b/configs/khadas-vim2_defconfig +index 28e9052245..59ef33723e 100644 +--- a/configs/khadas-vim2_defconfig ++++ b/configs/khadas-vim2_defconfig +@@ -51,7 +51,7 @@ CONFIG_PHY_REALTEK=y + CONFIG_DM_MDIO=y + CONFIG_DM_MDIO_MUX=y + CONFIG_ETH_DESIGNWARE_MESON8B=y +-CONFIG_MDIO_MUX_MMIOREG=y ++CONFIG_MDIO_MUX_MESON_GXL=y + CONFIG_MESON_GXL_USB_PHY=y + CONFIG_PINCTRL=y + CONFIG_PINCTRL_MESON_GXL=y +diff --git a/configs/khadas-vim_defconfig b/configs/khadas-vim_defconfig +index d27ab6f590..5ed7c1a408 100644 +--- a/configs/khadas-vim_defconfig ++++ b/configs/khadas-vim_defconfig +@@ -45,7 +45,7 @@ CONFIG_PHY_MESON_GXL=y + CONFIG_DM_MDIO=y + CONFIG_DM_MDIO_MUX=y + CONFIG_ETH_DESIGNWARE_MESON8B=y +-CONFIG_MDIO_MUX_MMIOREG=y ++CONFIG_MDIO_MUX_MESON_GXL=y + CONFIG_MESON_GXL_USB_PHY=y + CONFIG_PINCTRL=y + CONFIG_PINCTRL_MESON_GXL=y +diff --git a/configs/libretech-ac_defconfig b/configs/libretech-ac_defconfig +index bc17b423a2..f0ab19580c 100644 +--- a/configs/libretech-ac_defconfig ++++ b/configs/libretech-ac_defconfig +@@ -57,7 +57,7 @@ CONFIG_PHY_MESON_GXL=y + CONFIG_DM_MDIO=y + CONFIG_DM_MDIO_MUX=y + CONFIG_ETH_DESIGNWARE_MESON8B=y +-CONFIG_MDIO_MUX_MMIOREG=y ++CONFIG_MDIO_MUX_MESON_GXL=y + CONFIG_MESON_GXL_USB_PHY=y + CONFIG_PINCTRL=y + CONFIG_PINCTRL_MESON_GXL=y +diff --git a/configs/libretech-cc_defconfig b/configs/libretech-cc_defconfig +index baa9b1b3db..bb1a37a0cd 100644 +--- a/configs/libretech-cc_defconfig ++++ b/configs/libretech-cc_defconfig +@@ -44,7 +44,7 @@ CONFIG_PHY_MESON_GXL=y + CONFIG_DM_MDIO=y + CONFIG_DM_MDIO_MUX=y + CONFIG_ETH_DESIGNWARE_MESON8B=y +-CONFIG_MDIO_MUX_MMIOREG=y ++CONFIG_MDIO_MUX_MESON_GXL=y + CONFIG_MESON_GXL_USB_PHY=y + CONFIG_PINCTRL=y + CONFIG_PINCTRL_MESON_GXL=y +diff --git a/configs/libretech-cc_v2_defconfig b/configs/libretech-cc_v2_defconfig +index b1c267a791..8949e240c9 100644 +--- a/configs/libretech-cc_v2_defconfig ++++ b/configs/libretech-cc_v2_defconfig +@@ -52,7 +52,7 @@ CONFIG_PHY_MESON_GXL=y + CONFIG_DM_MDIO=y + CONFIG_DM_MDIO_MUX=y + CONFIG_ETH_DESIGNWARE_MESON8B=y +-CONFIG_MDIO_MUX_MMIOREG=y ++CONFIG_MDIO_MUX_MESON_GXL=y + CONFIG_PHY=y + CONFIG_MESON_GXL_USB_PHY=y + CONFIG_PINCTRL=y +diff --git a/configs/libretech-s905d-pc_defconfig b/configs/libretech-s905d-pc_defconfig +index cd138d696e..a5dc3115fc 100644 +--- a/configs/libretech-s905d-pc_defconfig ++++ b/configs/libretech-s905d-pc_defconfig +@@ -53,7 +53,7 @@ CONFIG_PHY_REALTEK=y + CONFIG_DM_MDIO=y + CONFIG_DM_MDIO_MUX=y + CONFIG_ETH_DESIGNWARE_MESON8B=y +-CONFIG_MDIO_MUX_MMIOREG=y ++CONFIG_MDIO_MUX_MESON_GXL=y + CONFIG_MESON_GXL_USB_PHY=y + CONFIG_PINCTRL=y + CONFIG_PINCTRL_MESON_GXL=y +diff --git a/configs/libretech-s912-pc_defconfig b/configs/libretech-s912-pc_defconfig +index dabb4ca4ec..68f462eeff 100644 +--- a/configs/libretech-s912-pc_defconfig ++++ b/configs/libretech-s912-pc_defconfig +@@ -52,7 +52,7 @@ CONFIG_PHY_REALTEK=y + CONFIG_DM_MDIO=y + CONFIG_DM_MDIO_MUX=y + CONFIG_ETH_DESIGNWARE_MESON8B=y +-CONFIG_MDIO_MUX_MMIOREG=y ++CONFIG_MDIO_MUX_MESON_GXL=y + CONFIG_MESON_GXL_USB_PHY=y + CONFIG_PINCTRL=y + CONFIG_PINCTRL_MESON_GXL=y +diff --git a/configs/p212_defconfig b/configs/p212_defconfig +index b90391d9b5..6b73607d64 100644 +--- a/configs/p212_defconfig ++++ b/configs/p212_defconfig +@@ -40,7 +40,7 @@ CONFIG_PHY_MESON_GXL=y + CONFIG_DM_MDIO=y + CONFIG_DM_MDIO_MUX=y + CONFIG_ETH_DESIGNWARE_MESON8B=y +-CONFIG_MDIO_MUX_MMIOREG=y ++CONFIG_MDIO_MUX_MESON_GXL=y + CONFIG_MESON_GXL_USB_PHY=y + CONFIG_PINCTRL=y + CONFIG_PINCTRL_MESON_GXL=y +diff --git a/configs/wetek-core2_defconfig b/configs/wetek-core2_defconfig +index 9bf3de9e7a..01ffb8bbd7 100644 +--- a/configs/wetek-core2_defconfig ++++ b/configs/wetek-core2_defconfig +@@ -46,7 +46,7 @@ CONFIG_PHY_REALTEK=y + CONFIG_DM_MDIO=y + CONFIG_DM_MDIO_MUX=y + CONFIG_ETH_DESIGNWARE_MESON8B=y +-CONFIG_MDIO_MUX_MMIOREG=y ++CONFIG_MDIO_MUX_MESON_GXL=y + CONFIG_MESON_GXL_USB_PHY=y + CONFIG_PINCTRL=y + CONFIG_PINCTRL_MESON_GXL=y +-- +2.34.1 + diff --git a/projects/Amlogic/patches/u-boot/u-boot-0007-WIP-boards-amlogic-add-board-files-for-wetek-gxbb-de.patch b/projects/Amlogic/patches/u-boot/u-boot-0007-WIP-boards-amlogic-add-board-files-for-wetek-gxbb-de.patch deleted file mode 100644 index 9f9800b6dd..0000000000 --- a/projects/Amlogic/patches/u-boot/u-boot-0007-WIP-boards-amlogic-add-board-files-for-wetek-gxbb-de.patch +++ /dev/null @@ -1,103 +0,0 @@ -From cec8965a83baea925ac82ca0be5dac3cc1823915 Mon Sep 17 00:00:00 2001 -From: Christian Hewitt -Date: Thu, 22 Apr 2021 05:45:29 +0000 -Subject: [PATCH 07/22] WIP: boards: amlogic: add board files for wetek-gxbb - devices - -These support the WeTek Hub and Play2 devices. - -Signed-off-by: Christian Hewitt ---- - board/amlogic/wetek-gxbb/MAINTAINERS | 8 +++++ - board/amlogic/wetek-gxbb/Makefile | 6 ++++ - board/amlogic/wetek-gxbb/wetek-gxbb.c | 50 +++++++++++++++++++++++++++ - 3 files changed, 64 insertions(+) - create mode 100644 board/amlogic/wetek-gxbb/MAINTAINERS - create mode 100644 board/amlogic/wetek-gxbb/Makefile - create mode 100644 board/amlogic/wetek-gxbb/wetek-gxbb.c - -diff --git a/board/amlogic/wetek-gxbb/MAINTAINERS b/board/amlogic/wetek-gxbb/MAINTAINERS -new file mode 100644 -index 0000000000..8aaa82ce17 ---- /dev/null -+++ b/board/amlogic/wetek-gxbb/MAINTAINERS -@@ -0,0 +1,8 @@ -+WETEK-GXBB -+M: Christian Hewitt -+S: Maintained -+L: u-boot-amlogic@groups.io -+F: board/amlogic/wetek-gxbb/ -+F: configs/wetek-hub_defconfig -+F: configs/wetek-play2_defconfig -+F: doc/board/amlogic/wetek-gxbb.rst -diff --git a/board/amlogic/wetek-gxbb/Makefile b/board/amlogic/wetek-gxbb/Makefile -new file mode 100644 -index 0000000000..7a5266b028 ---- /dev/null -+++ b/board/amlogic/wetek-gxbb/Makefile -@@ -0,0 +1,6 @@ -+# SPDX-License-Identifier: GPL-2.0+ -+# -+# (C) Copyright 2020 BayLibre, SAS -+# Author: Neil Armstrong -+ -+obj-y := wetek-gxbb.o -diff --git a/board/amlogic/wetek-gxbb/wetek-gxbb.c b/board/amlogic/wetek-gxbb/wetek-gxbb.c -new file mode 100644 -index 0000000000..fb07eefa53 ---- /dev/null -+++ b/board/amlogic/wetek-gxbb/wetek-gxbb.c -@@ -0,0 +1,50 @@ -+// SPDX-License-Identifier: GPL-2.0+ -+/* -+ * (C) Copyright 2016 Beniamino Galvani -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#define EFUSE_MAC_OFFSET 0 -+#define EFUSE_MAC_SIZE 12 -+#define MAC_ADDR_LEN 6 -+ -+int misc_init_r(void) -+{ -+ u8 mac_addr[MAC_ADDR_LEN]; -+ char efuse_mac_addr[EFUSE_MAC_SIZE], tmp[3]; -+ ssize_t len; -+ -+ if (!eth_env_get_enetaddr("ethaddr", mac_addr)) { -+ len = meson_sm_read_efuse(EFUSE_MAC_OFFSET, -+ efuse_mac_addr, EFUSE_MAC_SIZE); -+ if (len != EFUSE_MAC_SIZE) -+ return 0; -+ -+ /* MAC is stored in ASCII format, 1bytes = 2characters */ -+ for (int i = 0; i < 6; i++) { -+ tmp[0] = efuse_mac_addr[i * 2]; -+ tmp[1] = efuse_mac_addr[i * 2 + 1]; -+ tmp[2] = '\0'; -+ mac_addr[i] = simple_strtoul(tmp, NULL, 16); -+ } -+ -+ if (is_valid_ethaddr(mac_addr)) -+ eth_env_set_enetaddr("ethaddr", mac_addr); -+ else -+ meson_generate_serial_ethaddr(); -+ -+ eth_env_get_enetaddr("ethaddr", mac_addr); -+ } -+ -+ return 0; -+} --- -2.34.1 - diff --git a/projects/Amlogic/patches/u-boot/u-boot-0014-WIP-boards-amlogic-add-Beelink-GT1-defconfig.patch b/projects/Amlogic/patches/u-boot/u-boot-0014-WIP-boards-amlogic-add-Beelink-GT1-defconfig.patch deleted file mode 100644 index 5dc514487b..0000000000 --- a/projects/Amlogic/patches/u-boot/u-boot-0014-WIP-boards-amlogic-add-Beelink-GT1-defconfig.patch +++ /dev/null @@ -1,93 +0,0 @@ -From 7416bc16b956d7b9b2761ac5511c6b51ac8b4ca1 Mon Sep 17 00:00:00 2001 -From: Christian Hewitt -Date: Thu, 7 Jul 2022 10:27:01 +0000 -Subject: [PATCH 14/22] WIP: boards: amlogic: add Beelink GT1 defconfig - -Add a board config for Beelink GT1 devices - -Signed-off-by: Christian Hewitt ---- - configs/beelink-gt1_defconfig | 71 +++++++++++++++++++++++++++++++++++ - 1 file changed, 71 insertions(+) - create mode 100644 configs/beelink-gt1_defconfig - -diff --git a/configs/beelink-gt1_defconfig b/configs/beelink-gt1_defconfig -new file mode 100644 -index 0000000000..77ffc9aa49 ---- /dev/null -+++ b/configs/beelink-gt1_defconfig -@@ -0,0 +1,71 @@ -+CONFIG_ARM=y -+CONFIG_ARCH_MESON=y -+CONFIG_TEXT_BASE=0x01000000 -+CONFIG_NR_DRAM_BANKS=1 -+CONFIG_ENV_SIZE=0x2000 -+CONFIG_DM_GPIO=y -+CONFIG_DEFAULT_DEVICE_TREE="meson-gxm-gt1-ultimate" -+CONFIG_MESON_GXM=y -+CONFIG_DEBUG_UART_BASE=0xc81004c0 -+CONFIG_DEBUG_UART_CLOCK=24000000 -+CONFIG_IDENT_STRING=" beelink-gt1" -+CONFIG_SYS_LOAD_ADDR=0x1000000 -+CONFIG_DEBUG_UART=y -+CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y -+CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x20000000 -+CONFIG_REMAKE_ELF=y -+CONFIG_OF_BOARD_SETUP=y -+# CONFIG_DISPLAY_CPUINFO is not set -+CONFIG_MISC_INIT_R=y -+# CONFIG_CMD_BDI is not set -+# CONFIG_CMD_IMI is not set -+CONFIG_CMD_ADC=y -+CONFIG_CMD_GPIO=y -+# CONFIG_CMD_LOADS is not set -+CONFIG_CMD_MMC=y -+CONFIG_CMD_USB=y -+CONFIG_CMD_USB_MASS_STORAGE=y -+# CONFIG_CMD_SETEXPR is not set -+CONFIG_CMD_REGULATOR=y -+CONFIG_OF_CONTROL=y -+CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+CONFIG_SARADC_MESON=y -+CONFIG_MMC_MESON_GX=y -+CONFIG_MTD=y -+CONFIG_DM_MTD=y -+CONFIG_PHY_REALTEK=y -+CONFIG_DM_ETH=y -+CONFIG_DM_MDIO=y -+CONFIG_DM_MDIO_MUX=y -+CONFIG_ETH_DESIGNWARE_MESON8B=y -+CONFIG_MDIO_MUX_MMIOREG=y -+CONFIG_MESON_GXL_USB_PHY=y -+CONFIG_PINCTRL=y -+CONFIG_PINCTRL_MESON_GXL=y -+CONFIG_POWER_DOMAIN=y -+CONFIG_MESON_GX_VPU_POWER_DOMAIN=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_RESET=y -+CONFIG_DEBUG_UART_ANNOUNCE=y -+CONFIG_DEBUG_UART_SKIP_INIT=y -+CONFIG_MESON_SERIAL=y -+CONFIG_USB=y -+CONFIG_USB_XHCI_HCD=y -+CONFIG_USB_XHCI_DWC3=y -+CONFIG_USB_DWC3=y -+# CONFIG_USB_DWC3_GADGET is not set -+CONFIG_USB_DWC3_MESON_GXL=y -+CONFIG_USB_KEYBOARD=y -+CONFIG_USB_GADGET=y -+CONFIG_USB_GADGET_VENDOR_NUM=0x1b8e -+CONFIG_USB_GADGET_PRODUCT_NUM=0xfada -+CONFIG_USB_GADGET_DWC2_OTG=y -+CONFIG_USB_GADGET_DOWNLOAD=y -+CONFIG_VIDEO=y -+# CONFIG_VIDEO_BPP8 is not set -+# CONFIG_VIDEO_BPP16 is not set -+CONFIG_SYS_WHITE_ON_BLACK=y -+CONFIG_VIDEO_MESON=y -+CONFIG_VIDEO_DT_SIMPLEFB=y -+CONFIG_OF_LIBFDT_OVERLAY=y --- -2.34.1 -