mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-31 14:37:59 +00:00
Merge pull request #4596 from Kwiboo/uboot-2020.10
u-boot: update to v2020.10
This commit is contained in:
commit
fede07ec5d
@ -29,8 +29,8 @@ case "$PROJECT" in
|
|||||||
PKG_PATCH_DIRS="rockchip"
|
PKG_PATCH_DIRS="rockchip"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
PKG_VERSION="v2020.04"
|
PKG_VERSION="v2020.10"
|
||||||
PKG_SHA256="56257a55360aa851c7384fcad1c04f4ff1819275af8b01307ec8eebc512786ea"
|
PKG_SHA256="0c022ca6796aa8c0689faae8b515eb62ac84519c31de3153257a9ee0f446618f"
|
||||||
PKG_URL="https://github.com/u-boot/u-boot/archive/$PKG_VERSION.tar.gz"
|
PKG_URL="https://github.com/u-boot/u-boot/archive/$PKG_VERSION.tar.gz"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
@ -21,8 +21,8 @@ index 3d65b87d33..1ffeeed6cd 100644
|
|||||||
CONFIG_MACPWR="PD6"
|
CONFIG_MACPWR="PD6"
|
||||||
CONFIG_SPL_SPI_SUNXI=y
|
CONFIG_SPL_SPI_SUNXI=y
|
||||||
+CONFIG_SPL_I2C_SUPPORT=y
|
+CONFIG_SPL_I2C_SUPPORT=y
|
||||||
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
|
|
||||||
CONFIG_DEFAULT_DEVICE_TREE="sun50i-h5-orangepi-pc2"
|
CONFIG_DEFAULT_DEVICE_TREE="sun50i-h5-orangepi-pc2"
|
||||||
|
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
|
||||||
CONFIG_SUN8I_EMAC=y
|
CONFIG_SUN8I_EMAC=y
|
||||||
+CONFIG_SY8106A_POWER=y
|
+CONFIG_SY8106A_POWER=y
|
||||||
+CONFIG_SY8106A_VOUT1_VOLT=1100
|
+CONFIG_SY8106A_VOUT1_VOLT=1100
|
||||||
|
@ -226,9 +226,9 @@ index e670793479..c05682a331 100644
|
|||||||
+ "local-bd-address", bdaddr, ETH_ALEN, 1);
|
+ "local-bd-address", bdaddr, ETH_ALEN, 1);
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
int ft_board_setup(void *blob, bd_t *bd)
|
int ft_board_setup(void *blob, struct bd_info *bd)
|
||||||
{
|
{
|
||||||
int __maybe_unused r;
|
int __maybe_unused r;
|
||||||
@@ -888,6 +920,8 @@ int ft_board_setup(void *blob, bd_t *bd)
|
@@ -888,6 +920,8 @@ int ft_board_setup(void *blob, bd_t *bd)
|
||||||
*/
|
*/
|
||||||
setup_environment(blob);
|
setup_environment(blob);
|
||||||
|
@ -0,0 +1,30 @@
|
|||||||
|
From 4e109edd71cb99e6085031f160b5677e0f56bcff Mon Sep 17 00:00:00 2001
|
||||||
|
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||||
|
Date: Tue, 6 Oct 2020 12:56:09 +0000
|
||||||
|
Subject: [PATCH 1/2] HACK: prevent stdout/stderr on videoconsole
|
||||||
|
|
||||||
|
Several devices have CONFIG_DM_VIDEO enabled which causes stdout/stderr
|
||||||
|
to appear on videoconsole, so remove videoconsole from STDOUT so that
|
||||||
|
early u-boot boot remains silent unless using the uart/serial console.
|
||||||
|
|
||||||
|
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||||
|
---
|
||||||
|
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 c895a24eca..6b0e991a3c 100644
|
||||||
|
--- a/include/configs/meson64.h
|
||||||
|
+++ b/include/configs/meson64.h
|
||||||
|
@@ -22,7 +22,7 @@
|
||||||
|
#define CONFIG_BMP_16BPP
|
||||||
|
#define CONFIG_BMP_24BPP
|
||||||
|
#define CONFIG_BMP_32BPP
|
||||||
|
-#define STDOUT_CFG "vidconsole,serial"
|
||||||
|
+#define STDOUT_CFG "serial"
|
||||||
|
#else
|
||||||
|
#define STDOUT_CFG "serial"
|
||||||
|
#endif
|
||||||
|
--
|
||||||
|
2.17.1
|
||||||
|
|
@ -1,17 +1,17 @@
|
|||||||
From 0c0505f7e8ee3ffc96cfa70d609a4140586fa2dc Mon Sep 17 00:00:00 2001
|
From 59a2250691bb734b748d081ddcbc2431cf27bf62 Mon Sep 17 00:00:00 2001
|
||||||
From: chewitt <christianshewitt@gmail.com>
|
From: chewitt <christianshewitt@gmail.com>
|
||||||
Date: Fri, 24 Apr 2020 15:15:04 +0000
|
Date: Fri, 24 Apr 2020 15:15:04 +0000
|
||||||
Subject: [PATCH 32/33] HACK: mmc: meson-gx: limit to 24MHz
|
Subject: [PATCH 2/2] HACK: mmc: meson-gx: limit to 24MHz
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/mmc/meson_gx_mmc.c | 2 +-
|
drivers/mmc/meson_gx_mmc.c | 2 +-
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/drivers/mmc/meson_gx_mmc.c b/drivers/mmc/meson_gx_mmc.c
|
diff --git a/drivers/mmc/meson_gx_mmc.c b/drivers/mmc/meson_gx_mmc.c
|
||||||
index 86c1a7164a..0d273c09ad 100644
|
index 719dd1e5e5..dd3dd7c08c 100644
|
||||||
--- a/drivers/mmc/meson_gx_mmc.c
|
--- a/drivers/mmc/meson_gx_mmc.c
|
||||||
+++ b/drivers/mmc/meson_gx_mmc.c
|
+++ b/drivers/mmc/meson_gx_mmc.c
|
||||||
@@ -264,7 +264,7 @@ static int meson_mmc_probe(struct udevice *dev)
|
@@ -265,7 +265,7 @@ static int meson_mmc_probe(struct udevice *dev)
|
||||||
cfg->host_caps = MMC_MODE_8BIT | MMC_MODE_4BIT |
|
cfg->host_caps = MMC_MODE_8BIT | MMC_MODE_4BIT |
|
||||||
MMC_MODE_HS_52MHz | MMC_MODE_HS;
|
MMC_MODE_HS_52MHz | MMC_MODE_HS;
|
||||||
cfg->f_min = DIV_ROUND_UP(SD_EMMC_CLKSRC_24M, CLK_MAX_DIV);
|
cfg->f_min = DIV_ROUND_UP(SD_EMMC_CLKSRC_24M, CLK_MAX_DIV);
|
@ -1,101 +0,0 @@
|
|||||||
From c3234c37aa9234d0d03b4fe2e9c4aba84069d38b Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jerome Brunet <jbrunet@baylibre.com>
|
|
||||||
Date: Thu, 5 Mar 2020 12:12:35 +0100
|
|
||||||
Subject: [PATCH 01/33] FROMGIT: dt-bindings: leds: import common led bindings
|
|
||||||
from linux v5.5
|
|
||||||
|
|
||||||
Import the common leds bindings definition from linux
|
|
||||||
d5226fa6dbae ("Linux 5.5")
|
|
||||||
|
|
||||||
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
|
|
||||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
---
|
|
||||||
include/dt-bindings/leds/common.h | 75 +++++++++++++++++++++++++++++++
|
|
||||||
1 file changed, 75 insertions(+)
|
|
||||||
create mode 100644 include/dt-bindings/leds/common.h
|
|
||||||
|
|
||||||
diff --git a/include/dt-bindings/leds/common.h b/include/dt-bindings/leds/common.h
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000000..9e1256a7c1
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/include/dt-bindings/leds/common.h
|
|
||||||
@@ -0,0 +1,75 @@
|
|
||||||
+/* SPDX-License-Identifier: GPL-2.0 */
|
|
||||||
+/*
|
|
||||||
+ * This header provides macros for the common LEDs device tree bindings.
|
|
||||||
+ *
|
|
||||||
+ * Copyright (C) 2015, Samsung Electronics Co., Ltd.
|
|
||||||
+ * Author: Jacek Anaszewski <j.anaszewski@samsung.com>
|
|
||||||
+ *
|
|
||||||
+ * Copyright (C) 2019 Jacek Anaszewski <jacek.anaszewski@gmail.com>
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+#ifndef __DT_BINDINGS_LEDS_H
|
|
||||||
+#define __DT_BINDINGS_LEDS_H
|
|
||||||
+
|
|
||||||
+/* External trigger type */
|
|
||||||
+#define LEDS_TRIG_TYPE_EDGE 0
|
|
||||||
+#define LEDS_TRIG_TYPE_LEVEL 1
|
|
||||||
+
|
|
||||||
+/* Boost modes */
|
|
||||||
+#define LEDS_BOOST_OFF 0
|
|
||||||
+#define LEDS_BOOST_ADAPTIVE 1
|
|
||||||
+#define LEDS_BOOST_FIXED 2
|
|
||||||
+
|
|
||||||
+/* Standard LED colors */
|
|
||||||
+#define LED_COLOR_ID_WHITE 0
|
|
||||||
+#define LED_COLOR_ID_RED 1
|
|
||||||
+#define LED_COLOR_ID_GREEN 2
|
|
||||||
+#define LED_COLOR_ID_BLUE 3
|
|
||||||
+#define LED_COLOR_ID_AMBER 4
|
|
||||||
+#define LED_COLOR_ID_VIOLET 5
|
|
||||||
+#define LED_COLOR_ID_YELLOW 6
|
|
||||||
+#define LED_COLOR_ID_IR 7
|
|
||||||
+#define LED_COLOR_ID_MAX 8
|
|
||||||
+
|
|
||||||
+/* Standard LED functions */
|
|
||||||
+#define LED_FUNCTION_ACTIVITY "activity"
|
|
||||||
+#define LED_FUNCTION_ALARM "alarm"
|
|
||||||
+#define LED_FUNCTION_BACKLIGHT "backlight"
|
|
||||||
+#define LED_FUNCTION_BLUETOOTH "bluetooth"
|
|
||||||
+#define LED_FUNCTION_BOOT "boot"
|
|
||||||
+#define LED_FUNCTION_CPU "cpu"
|
|
||||||
+#define LED_FUNCTION_CAPSLOCK "capslock"
|
|
||||||
+#define LED_FUNCTION_CHARGING "charging"
|
|
||||||
+#define LED_FUNCTION_DEBUG "debug"
|
|
||||||
+#define LED_FUNCTION_DISK "disk"
|
|
||||||
+#define LED_FUNCTION_DISK_ACTIVITY "disk-activity"
|
|
||||||
+#define LED_FUNCTION_DISK_ERR "disk-err"
|
|
||||||
+#define LED_FUNCTION_DISK_READ "disk-read"
|
|
||||||
+#define LED_FUNCTION_DISK_WRITE "disk-write"
|
|
||||||
+#define LED_FUNCTION_FAULT "fault"
|
|
||||||
+#define LED_FUNCTION_FLASH "flash"
|
|
||||||
+#define LED_FUNCTION_HEARTBEAT "heartbeat"
|
|
||||||
+#define LED_FUNCTION_INDICATOR "indicator"
|
|
||||||
+#define LED_FUNCTION_KBD_BACKLIGHT "kbd_backlight"
|
|
||||||
+#define LED_FUNCTION_LAN "lan"
|
|
||||||
+#define LED_FUNCTION_MAIL "mail"
|
|
||||||
+#define LED_FUNCTION_MTD "mtd"
|
|
||||||
+#define LED_FUNCTION_MICMUTE "micmute"
|
|
||||||
+#define LED_FUNCTION_MUTE "mute"
|
|
||||||
+#define LED_FUNCTION_NUMLOCK "numlock"
|
|
||||||
+#define LED_FUNCTION_PANIC "panic"
|
|
||||||
+#define LED_FUNCTION_PROGRAMMING "programming"
|
|
||||||
+#define LED_FUNCTION_POWER "power"
|
|
||||||
+#define LED_FUNCTION_RX "rx"
|
|
||||||
+#define LED_FUNCTION_SD "sd"
|
|
||||||
+#define LED_FUNCTION_SCROLLLOCK "scrolllock"
|
|
||||||
+#define LED_FUNCTION_STANDBY "standby"
|
|
||||||
+#define LED_FUNCTION_STATUS "status"
|
|
||||||
+#define LED_FUNCTION_TORCH "torch"
|
|
||||||
+#define LED_FUNCTION_TX "tx"
|
|
||||||
+#define LED_FUNCTION_USB "usb"
|
|
||||||
+#define LED_FUNCTION_WAN "wan"
|
|
||||||
+#define LED_FUNCTION_WLAN "wlan"
|
|
||||||
+#define LED_FUNCTION_WPS "wps"
|
|
||||||
+
|
|
||||||
+#endif /* __DT_BINDINGS_LEDS_H */
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
@ -1,62 +0,0 @@
|
|||||||
From aeb0006b6b0bf77bef8bb39cd65ee0a7eb4fabe3 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jerome Brunet <jbrunet@baylibre.com>
|
|
||||||
Date: Thu, 5 Mar 2020 12:12:36 +0100
|
|
||||||
Subject: [PATCH 02/33] FROMGIT: mmc: meson-gx: enable input clocks
|
|
||||||
|
|
||||||
Until now, the mmc clock was left in a good enough state by the ROM
|
|
||||||
code to be used by the controller. However on some SoC, if the ROM
|
|
||||||
code finds a bootloader on USB or SPI, it might leave the MMC clock
|
|
||||||
in state the controller cannot work with.
|
|
||||||
|
|
||||||
Enable the input clocks provided to the mmc controller. While the
|
|
||||||
u-boot mmc controller driver is not doing fancy settings like the Linux,
|
|
||||||
it at least needs to make these clocks are running.
|
|
||||||
|
|
||||||
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
|
|
||||||
Reviewed-by: Anand Moon <linux.amoon@gmail.com>
|
|
||||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
---
|
|
||||||
drivers/mmc/meson_gx_mmc.c | 14 +++++++++++++-
|
|
||||||
1 file changed, 13 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/drivers/mmc/meson_gx_mmc.c b/drivers/mmc/meson_gx_mmc.c
|
|
||||||
index b5f5122b1b..86c1a7164a 100644
|
|
||||||
--- a/drivers/mmc/meson_gx_mmc.c
|
|
||||||
+++ b/drivers/mmc/meson_gx_mmc.c
|
|
||||||
@@ -4,6 +4,7 @@
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <common.h>
|
|
||||||
+#include <clk.h>
|
|
||||||
#include <cpu_func.h>
|
|
||||||
#include <dm.h>
|
|
||||||
#include <fdtdec.h>
|
|
||||||
@@ -241,12 +242,23 @@ static int meson_mmc_probe(struct udevice *dev)
|
|
||||||
struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
|
|
||||||
struct mmc *mmc = &pdata->mmc;
|
|
||||||
struct mmc_config *cfg = &pdata->cfg;
|
|
||||||
+ struct clk_bulk clocks;
|
|
||||||
uint32_t val;
|
|
||||||
+ int ret;
|
|
||||||
+
|
|
||||||
#ifdef CONFIG_PWRSEQ
|
|
||||||
struct udevice *pwr_dev;
|
|
||||||
- int ret;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+ /* Enable the clocks feeding the MMC controller */
|
|
||||||
+ ret = clk_get_bulk(dev, &clocks);
|
|
||||||
+ if (ret)
|
|
||||||
+ return ret;
|
|
||||||
+
|
|
||||||
+ ret = clk_enable_bulk(&clocks);
|
|
||||||
+ if (ret)
|
|
||||||
+ return ret;
|
|
||||||
+
|
|
||||||
cfg->voltages = MMC_VDD_33_34 | MMC_VDD_32_33 |
|
|
||||||
MMC_VDD_31_32 | MMC_VDD_165_195;
|
|
||||||
cfg->host_caps = MMC_MODE_8BIT | MMC_MODE_4BIT |
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
@ -1,77 +0,0 @@
|
|||||||
From fcf29e62ed25bc08e7ed7aa7e5a8a1c8dc070b86 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jerome Brunet <jbrunet@baylibre.com>
|
|
||||||
Date: Thu, 5 Mar 2020 12:12:37 +0100
|
|
||||||
Subject: [PATCH 03/33] FROMGIT: clk: meson: reset mmc clock on probe
|
|
||||||
|
|
||||||
On some SoCs, depending on the boot device, the MMC clock block may be
|
|
||||||
left in a weird state by the ROM code, in which no decent clock may be
|
|
||||||
provided. Reset the related register to make sure a sane MMC clock is
|
|
||||||
ready for the controller.
|
|
||||||
|
|
||||||
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
Tested-by: Anand Moon <linux.amoon@gmail.com>
|
|
||||||
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
|
|
||||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
---
|
|
||||||
drivers/clk/meson/axg.c | 7 +++++++
|
|
||||||
drivers/clk/meson/g12a.c | 7 +++++++
|
|
||||||
drivers/clk/meson/gxbb.c | 7 +++++++
|
|
||||||
3 files changed, 21 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/drivers/clk/meson/axg.c b/drivers/clk/meson/axg.c
|
|
||||||
index 7035b59a13..4b0028d04b 100644
|
|
||||||
--- a/drivers/clk/meson/axg.c
|
|
||||||
+++ b/drivers/clk/meson/axg.c
|
|
||||||
@@ -291,6 +291,13 @@ static int meson_clk_probe(struct udevice *dev)
|
|
||||||
if (IS_ERR(priv->map))
|
|
||||||
return PTR_ERR(priv->map);
|
|
||||||
|
|
||||||
+ /*
|
|
||||||
+ * Depending on the boot src, the state of the MMC clock might
|
|
||||||
+ * be different. Reset it to make sure we won't get stuck
|
|
||||||
+ */
|
|
||||||
+ regmap_write(priv->map, HHI_NAND_CLK_CNTL, 0);
|
|
||||||
+ regmap_write(priv->map, HHI_SD_EMMC_CLK_CNTL, 0);
|
|
||||||
+
|
|
||||||
debug("meson-clk-axg: probed\n");
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
diff --git a/drivers/clk/meson/g12a.c b/drivers/clk/meson/g12a.c
|
|
||||||
index 686d94ebfe..9e6beca94a 100644
|
|
||||||
--- a/drivers/clk/meson/g12a.c
|
|
||||||
+++ b/drivers/clk/meson/g12a.c
|
|
||||||
@@ -977,6 +977,13 @@ static int meson_clk_probe(struct udevice *dev)
|
|
||||||
if (IS_ERR(priv->map))
|
|
||||||
return PTR_ERR(priv->map);
|
|
||||||
|
|
||||||
+ /*
|
|
||||||
+ * Depending on the boot src, the state of the MMC clock might
|
|
||||||
+ * be different. Reset it to make sure we won't get stuck
|
|
||||||
+ */
|
|
||||||
+ regmap_write(priv->map, HHI_NAND_CLK_CNTL, 0);
|
|
||||||
+ regmap_write(priv->map, HHI_SD_EMMC_CLK_CNTL, 0);
|
|
||||||
+
|
|
||||||
debug("meson-clk-g12a: probed\n");
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
diff --git a/drivers/clk/meson/gxbb.c b/drivers/clk/meson/gxbb.c
|
|
||||||
index e781e08d9d..5ef4dd794d 100644
|
|
||||||
--- a/drivers/clk/meson/gxbb.c
|
|
||||||
+++ b/drivers/clk/meson/gxbb.c
|
|
||||||
@@ -887,6 +887,13 @@ static int meson_clk_probe(struct udevice *dev)
|
|
||||||
if (IS_ERR(priv->map))
|
|
||||||
return PTR_ERR(priv->map);
|
|
||||||
|
|
||||||
+ /*
|
|
||||||
+ * Depending on the boot src, the state of the MMC clock might
|
|
||||||
+ * be different. Reset it to make sure we won't get stuck
|
|
||||||
+ */
|
|
||||||
+ regmap_write(priv->map, HHI_NAND_CLK_CNTL, 0);
|
|
||||||
+ regmap_write(priv->map, HHI_SD_EMMC_CLK_CNTL, 0);
|
|
||||||
+
|
|
||||||
debug("meson-clk: probed\n");
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
@ -1,515 +0,0 @@
|
|||||||
From 1b2f800496b58d8d98de6e805294f7def4716fc6 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jerome Brunet <jbrunet@baylibre.com>
|
|
||||||
Date: Thu, 5 Mar 2020 12:12:39 +0100
|
|
||||||
Subject: [PATCH 05/33] FROMGIT: arm64: dts: meson: import libretech-pc from
|
|
||||||
linux v5.6-rc2
|
|
||||||
|
|
||||||
Sync the libretech-pc device tree from Linux v5.6-rc2
|
|
||||||
11a48a5a18c6 ("Linux 5.6-rc2")
|
|
||||||
|
|
||||||
Acked-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
|
|
||||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
---
|
|
||||||
arch/arm/dts/meson-gx-libretech-pc.dtsi | 375 ++++++++++++++++++
|
|
||||||
arch/arm/dts/meson-gxl-s905d-libretech-pc.dts | 16 +
|
|
||||||
arch/arm/dts/meson-gxl-s905d.dtsi | 12 +
|
|
||||||
arch/arm/dts/meson-gxm-s912-libretech-pc.dts | 62 +++
|
|
||||||
4 files changed, 465 insertions(+)
|
|
||||||
create mode 100644 arch/arm/dts/meson-gx-libretech-pc.dtsi
|
|
||||||
create mode 100644 arch/arm/dts/meson-gxl-s905d-libretech-pc.dts
|
|
||||||
create mode 100644 arch/arm/dts/meson-gxl-s905d.dtsi
|
|
||||||
create mode 100644 arch/arm/dts/meson-gxm-s912-libretech-pc.dts
|
|
||||||
|
|
||||||
diff --git a/arch/arm/dts/meson-gx-libretech-pc.dtsi b/arch/arm/dts/meson-gx-libretech-pc.dtsi
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000000..248b018c83
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/arch/arm/dts/meson-gx-libretech-pc.dtsi
|
|
||||||
@@ -0,0 +1,375 @@
|
|
||||||
+// SPDX-License-Identifier: GPL-2.0
|
|
||||||
+/*
|
|
||||||
+ * Copyright (c) 2019 BayLibre SAS.
|
|
||||||
+ * Author: Jerome Brunet <jbrunet@baylibre.com>
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+/* Libretech Amlogic GX PC form factor - AKA: Tartiflette */
|
|
||||||
+
|
|
||||||
+#include <dt-bindings/input/input.h>
|
|
||||||
+#include <dt-bindings/leds/common.h>
|
|
||||||
+
|
|
||||||
+/ {
|
|
||||||
+ adc-keys {
|
|
||||||
+ compatible = "adc-keys";
|
|
||||||
+ io-channels = <&saradc 0>;
|
|
||||||
+ io-channel-names = "buttons";
|
|
||||||
+ keyup-threshold-microvolt = <1800000>;
|
|
||||||
+
|
|
||||||
+ update-button {
|
|
||||||
+ label = "update";
|
|
||||||
+ linux,code = <KEY_VENDOR>;
|
|
||||||
+ press-threshold-microvolt = <1300000>;
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ aliases {
|
|
||||||
+ serial0 = &uart_AO;
|
|
||||||
+ ethernet0 = ðmac;
|
|
||||||
+ spi0 = &spifc;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ chosen {
|
|
||||||
+ stdout-path = "serial0:115200n8";
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ cvbs-connector {
|
|
||||||
+ compatible = "composite-video-connector";
|
|
||||||
+ status = "disabled";
|
|
||||||
+
|
|
||||||
+ port {
|
|
||||||
+ cvbs_connector_in: endpoint {
|
|
||||||
+ remote-endpoint = <&cvbs_vdac_out>;
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ emmc_pwrseq: emmc-pwrseq {
|
|
||||||
+ compatible = "mmc-pwrseq-emmc";
|
|
||||||
+ reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ hdmi-connector {
|
|
||||||
+ compatible = "hdmi-connector";
|
|
||||||
+ type = "a";
|
|
||||||
+
|
|
||||||
+ port {
|
|
||||||
+ hdmi_connector_in: endpoint {
|
|
||||||
+ remote-endpoint = <&hdmi_tx_tmds_out>;
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ gpio-keys-polled {
|
|
||||||
+ compatible = "gpio-keys-polled";
|
|
||||||
+ poll-interval = <100>;
|
|
||||||
+
|
|
||||||
+ power-button {
|
|
||||||
+ label = "power";
|
|
||||||
+ linux,code = <KEY_POWER>;
|
|
||||||
+ gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ memory@0 {
|
|
||||||
+ device_type = "memory";
|
|
||||||
+ reg = <0x0 0x0 0x0 0x80000000>;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ ao_5v: regulator-ao_5v {
|
|
||||||
+ compatible = "regulator-fixed";
|
|
||||||
+ regulator-name = "AO_5V";
|
|
||||||
+ regulator-min-microvolt = <5000000>;
|
|
||||||
+ regulator-max-microvolt = <5000000>;
|
|
||||||
+ vin-supply = <&dc_in>;
|
|
||||||
+ regulator-always-on;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ dc_in: regulator-dc_in {
|
|
||||||
+ compatible = "regulator-fixed";
|
|
||||||
+ regulator-name = "DC_IN";
|
|
||||||
+ regulator-min-microvolt = <5000000>;
|
|
||||||
+ regulator-max-microvolt = <5000000>;
|
|
||||||
+ regulator-always-on;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ leds {
|
|
||||||
+ compatible = "gpio-leds";
|
|
||||||
+
|
|
||||||
+ green {
|
|
||||||
+ color = <LED_COLOR_ID_GREEN>;
|
|
||||||
+ function = LED_FUNCTION_DISK_ACTIVITY;
|
|
||||||
+ gpios = <&gpio_ao GPIOAO_9 GPIO_ACTIVE_HIGH>;
|
|
||||||
+ linux,default-trigger = "disk-activity";
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ blue {
|
|
||||||
+ color = <LED_COLOR_ID_BLUE>;
|
|
||||||
+ function = LED_FUNCTION_STATUS;
|
|
||||||
+ gpios = <&gpio GPIODV_28 GPIO_ACTIVE_HIGH>;
|
|
||||||
+ linux,default-trigger = "heartbeat";
|
|
||||||
+ panic-indicator;
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ vcc_card: regulator-vcc_card {
|
|
||||||
+ compatible = "regulator-fixed";
|
|
||||||
+ regulator-name = "VCC_CARD";
|
|
||||||
+ regulator-min-microvolt = <3300000>;
|
|
||||||
+ regulator-max-microvolt = <3300000>;
|
|
||||||
+ vin-supply = <&vddio_ao3v3>;
|
|
||||||
+
|
|
||||||
+ gpio = <&gpio GPIODV_4 GPIO_ACTIVE_HIGH>;
|
|
||||||
+ enable-active-high;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ vcc5v: regulator-vcc5v {
|
|
||||||
+ compatible = "regulator-fixed";
|
|
||||||
+ regulator-name = "VCC5V";
|
|
||||||
+ regulator-min-microvolt = <5000000>;
|
|
||||||
+ regulator-max-microvolt = <5000000>;
|
|
||||||
+ vin-supply = <&ao_5v>;
|
|
||||||
+
|
|
||||||
+ gpio = <&gpio GPIOH_3 GPIO_OPEN_DRAIN>;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ vddio_ao18: regulator-vddio_ao18 {
|
|
||||||
+ compatible = "regulator-fixed";
|
|
||||||
+ regulator-name = "VDDIO_AO18";
|
|
||||||
+ regulator-min-microvolt = <1800000>;
|
|
||||||
+ regulator-max-microvolt = <1800000>;
|
|
||||||
+ vin-supply = <&ao_5v>;
|
|
||||||
+ regulator-always-on;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ vddio_ao3v3: regulator-vddio_ao3v3 {
|
|
||||||
+ compatible = "regulator-fixed";
|
|
||||||
+ regulator-name = "VDDIO_AO3V3";
|
|
||||||
+ regulator-min-microvolt = <3300000>;
|
|
||||||
+ regulator-max-microvolt = <3300000>;
|
|
||||||
+ vin-supply = <&ao_5v>;
|
|
||||||
+ regulator-always-on;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ vddio_boot: regulator-vddio_boot {
|
|
||||||
+ compatible = "regulator-fixed";
|
|
||||||
+ regulator-name = "VDDIO_BOOT";
|
|
||||||
+ regulator-min-microvolt = <1800000>;
|
|
||||||
+ regulator-max-microvolt = <1800000>;
|
|
||||||
+ vin-supply = <&vddio_ao3v3>;
|
|
||||||
+ regulator-always-on;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ vddio_card: regulator-vddio-card {
|
|
||||||
+ compatible = "regulator-gpio";
|
|
||||||
+ regulator-name = "VDDIO_CARD";
|
|
||||||
+ regulator-min-microvolt = <1800000>;
|
|
||||||
+ regulator-max-microvolt = <3300000>;
|
|
||||||
+
|
|
||||||
+ gpios = <&gpio GPIODV_5 GPIO_ACTIVE_HIGH>;
|
|
||||||
+ gpios-states = <0>;
|
|
||||||
+
|
|
||||||
+ states = <3300000 0>,
|
|
||||||
+ <1800000 1>;
|
|
||||||
+
|
|
||||||
+ regulator-settling-time-up-us = <200>;
|
|
||||||
+ regulator-settling-time-down-us = <50000>;
|
|
||||||
+ };
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&cec_AO {
|
|
||||||
+ pinctrl-0 = <&ao_cec_pins>;
|
|
||||||
+ pinctrl-names = "default";
|
|
||||||
+ hdmi-phandle = <&hdmi_tx>;
|
|
||||||
+ status = "okay";
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&cvbs_vdac_port {
|
|
||||||
+ cvbs_vdac_out: endpoint {
|
|
||||||
+ remote-endpoint = <&cvbs_connector_in>;
|
|
||||||
+ };
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+ðmac {
|
|
||||||
+ pinctrl-0 = <ð_pins>, <ð_phy_irq_pins>;
|
|
||||||
+ pinctrl-names = "default";
|
|
||||||
+ phy-handle = <&external_phy>;
|
|
||||||
+ amlogic,tx-delay-ns = <2>;
|
|
||||||
+ phy-mode = "rgmii";
|
|
||||||
+ status = "okay";
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&external_mdio {
|
|
||||||
+ external_phy: ethernet-phy@0 {
|
|
||||||
+ reg = <0>;
|
|
||||||
+ max-speed = <1000>;
|
|
||||||
+ reset-assert-us = <10000>;
|
|
||||||
+ reset-deassert-us = <30000>;
|
|
||||||
+ reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
|
|
||||||
+ interrupt-parent = <&gpio_intc>;
|
|
||||||
+ interrupts = <25 IRQ_TYPE_LEVEL_LOW>;
|
|
||||||
+ };
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&pinctrl_periphs {
|
|
||||||
+ /*
|
|
||||||
+ * Make sure the reset pin of the usb HUB is driven high to take
|
|
||||||
+ * it out of reset.
|
|
||||||
+ */
|
|
||||||
+ usb1_rst_pins: usb1_rst_irq {
|
|
||||||
+ mux {
|
|
||||||
+ groups = "GPIODV_3";
|
|
||||||
+ function = "gpio_periphs";
|
|
||||||
+ bias-disable;
|
|
||||||
+ output-high;
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ /* Make sure the phy irq pin is properly configured as input */
|
|
||||||
+ eth_phy_irq_pins: eth_phy_irq {
|
|
||||||
+ mux {
|
|
||||||
+ groups = "GPIOZ_15";
|
|
||||||
+ function = "gpio_periphs";
|
|
||||||
+ bias-disable;
|
|
||||||
+ output-disable;
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&hdmi_tx {
|
|
||||||
+ pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
|
|
||||||
+ pinctrl-names = "default";
|
|
||||||
+ hdmi-supply = <&vcc5v>;
|
|
||||||
+ status = "okay";
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&hdmi_tx_tmds_port {
|
|
||||||
+ hdmi_tx_tmds_out: endpoint {
|
|
||||||
+ remote-endpoint = <&hdmi_connector_in>;
|
|
||||||
+ };
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&ir {
|
|
||||||
+ pinctrl-0 = <&remote_input_ao_pins>;
|
|
||||||
+ pinctrl-names = "default";
|
|
||||||
+ status = "okay";
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&i2c_C {
|
|
||||||
+ pinctrl-0 = <&i2c_c_dv18_pins>;
|
|
||||||
+ pinctrl-names = "default";
|
|
||||||
+ status = "okay";
|
|
||||||
+
|
|
||||||
+ rtc: rtc@51 {
|
|
||||||
+ reg = <0x51>;
|
|
||||||
+ compatible = "nxp,pcf8563";
|
|
||||||
+ #clock-cells = <0>;
|
|
||||||
+ clock-output-names = "rtc_clkout";
|
|
||||||
+ };
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&pwm_AO_ab {
|
|
||||||
+ pinctrl-0 = <&pwm_ao_a_3_pins>;
|
|
||||||
+ pinctrl-names = "default";
|
|
||||||
+ clocks = <&clkc CLKID_FCLK_DIV4>;
|
|
||||||
+ clock-names = "clkin0";
|
|
||||||
+ status = "okay";
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&pwm_ab {
|
|
||||||
+ pinctrl-0 = <&pwm_b_pins>;
|
|
||||||
+ pinctrl-names = "default";
|
|
||||||
+ clocks = <&clkc CLKID_FCLK_DIV4>;
|
|
||||||
+ clock-names = "clkin0";
|
|
||||||
+ status = "okay";
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&pwm_ef {
|
|
||||||
+ pinctrl-0 = <&pwm_e_pins>, <&pwm_f_clk_pins>;
|
|
||||||
+ pinctrl-names = "default";
|
|
||||||
+ clocks = <&clkc CLKID_FCLK_DIV4>;
|
|
||||||
+ clock-names = "clkin0";
|
|
||||||
+ status = "okay";
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&saradc {
|
|
||||||
+ vref-supply = <&vddio_ao18>;
|
|
||||||
+ status = "okay";
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+/* SD card */
|
|
||||||
+&sd_emmc_b {
|
|
||||||
+ pinctrl-0 = <&sdcard_pins>;
|
|
||||||
+ pinctrl-1 = <&sdcard_clk_gate_pins>;
|
|
||||||
+ pinctrl-names = "default", "clk-gate";
|
|
||||||
+
|
|
||||||
+ bus-width = <4>;
|
|
||||||
+ cap-sd-highspeed;
|
|
||||||
+ sd-uhs-sdr12;
|
|
||||||
+ sd-uhs-sdr25;
|
|
||||||
+ sd-uhs-sdr50;
|
|
||||||
+ sd-uhs-ddr50;
|
|
||||||
+ max-frequency = <200000000>;
|
|
||||||
+ disable-wp;
|
|
||||||
+
|
|
||||||
+ cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
|
|
||||||
+
|
|
||||||
+ vmmc-supply = <&vcc_card>;
|
|
||||||
+ vqmmc-supply = <&vddio_card>;
|
|
||||||
+
|
|
||||||
+ status = "okay";
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+/* eMMC */
|
|
||||||
+&sd_emmc_c {
|
|
||||||
+ pinctrl-0 = <&emmc_pins>;
|
|
||||||
+ pinctrl-1 = <&emmc_clk_gate_pins>;
|
|
||||||
+ pinctrl-names = "default", "clk-gate";
|
|
||||||
+
|
|
||||||
+ bus-width = <8>;
|
|
||||||
+ cap-mmc-highspeed;
|
|
||||||
+ mmc-ddr-1_8v;
|
|
||||||
+ mmc-hs200-1_8v;
|
|
||||||
+ max-frequency = <200000000>;
|
|
||||||
+ disable-wp;
|
|
||||||
+
|
|
||||||
+ mmc-pwrseq = <&emmc_pwrseq>;
|
|
||||||
+ vmmc-supply = <&vddio_ao3v3>;
|
|
||||||
+ vqmmc-supply = <&vddio_boot>;
|
|
||||||
+
|
|
||||||
+ status = "okay";
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&spifc {
|
|
||||||
+ pinctrl-0 = <&nor_pins>;
|
|
||||||
+ pinctrl-names = "default";
|
|
||||||
+ status = "okay";
|
|
||||||
+
|
|
||||||
+ gd25lq128: spi-flash@0 {
|
|
||||||
+ compatible = "jedec,spi-nor";
|
|
||||||
+ #address-cells = <1>;
|
|
||||||
+ #size-cells = <1>;
|
|
||||||
+ reg = <0>;
|
|
||||||
+ spi-max-frequency = <12000000>;
|
|
||||||
+ };
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&uart_AO {
|
|
||||||
+ pinctrl-0 = <&uart_ao_a_pins>;
|
|
||||||
+ pinctrl-names = "default";
|
|
||||||
+ status = "okay";
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&usb0 {
|
|
||||||
+ status = "okay";
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&usb2_phy0 {
|
|
||||||
+ pinctrl-0 = <&usb1_rst_pins>;
|
|
||||||
+ pinctrl-names = "default";
|
|
||||||
+ phy-supply = <&vcc5v>;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&usb2_phy1 {
|
|
||||||
+ phy-supply = <&vcc5v>;
|
|
||||||
+};
|
|
||||||
diff --git a/arch/arm/dts/meson-gxl-s905d-libretech-pc.dts b/arch/arm/dts/meson-gxl-s905d-libretech-pc.dts
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000000..100a1cfeea
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/arch/arm/dts/meson-gxl-s905d-libretech-pc.dts
|
|
||||||
@@ -0,0 +1,16 @@
|
|
||||||
+// SPDX-License-Identifier: GPL-2.0
|
|
||||||
+/*
|
|
||||||
+ * Copyright (c) 2019 BayLibre SAS. All rights reserved.
|
|
||||||
+ * Author: Jerome Brunet <jbrunet@baylibre.com>
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+/dts-v1/;
|
|
||||||
+
|
|
||||||
+#include "meson-gxl-s905d.dtsi"
|
|
||||||
+#include "meson-gx-libretech-pc.dtsi"
|
|
||||||
+
|
|
||||||
+/ {
|
|
||||||
+ compatible = "libretech,aml-s905d-pc", "amlogic,s905d",
|
|
||||||
+ "amlogic,meson-gxl";
|
|
||||||
+ model = "Libre Computer AML-S905D-PC";
|
|
||||||
+};
|
|
||||||
diff --git a/arch/arm/dts/meson-gxl-s905d.dtsi b/arch/arm/dts/meson-gxl-s905d.dtsi
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000000..4332191954
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/arch/arm/dts/meson-gxl-s905d.dtsi
|
|
||||||
@@ -0,0 +1,12 @@
|
|
||||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
|
||||||
+/*
|
|
||||||
+ * Copyright (c) 2016 Endless Computers, Inc.
|
|
||||||
+ * Author: Carlo Caione <carlo@endlessm.com>
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+#include "meson-gxl.dtsi"
|
|
||||||
+#include "meson-gxl-mali.dtsi"
|
|
||||||
+
|
|
||||||
+/ {
|
|
||||||
+ compatible = "amlogic,s905d", "amlogic,meson-gxl";
|
|
||||||
+};
|
|
||||||
diff --git a/arch/arm/dts/meson-gxm-s912-libretech-pc.dts b/arch/arm/dts/meson-gxm-s912-libretech-pc.dts
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000000..444c249863
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/arch/arm/dts/meson-gxm-s912-libretech-pc.dts
|
|
||||||
@@ -0,0 +1,62 @@
|
|
||||||
+// SPDX-License-Identifier: GPL-2.0
|
|
||||||
+/*
|
|
||||||
+ * Copyright (c) 2019 BayLibre SAS. All rights reserved.
|
|
||||||
+ * Author: Jerome Brunet <jbrunet@baylibre.com>
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+/dts-v1/;
|
|
||||||
+
|
|
||||||
+#include "meson-gxm.dtsi"
|
|
||||||
+#include "meson-gx-libretech-pc.dtsi"
|
|
||||||
+
|
|
||||||
+/ {
|
|
||||||
+ compatible = "libretech,aml-s912-pc", "amlogic,s912",
|
|
||||||
+ "amlogic,meson-gxm";
|
|
||||||
+ model = "Libre Computer AML-S912-PC";
|
|
||||||
+
|
|
||||||
+ typec2_vbus: regulator-typec2_vbus {
|
|
||||||
+ compatible = "regulator-fixed";
|
|
||||||
+ regulator-name = "TYPEC2_VBUS";
|
|
||||||
+ regulator-min-microvolt = <5000000>;
|
|
||||||
+ regulator-max-microvolt = <5000000>;
|
|
||||||
+ vin-supply = <&vcc5v>;
|
|
||||||
+
|
|
||||||
+ gpio = <&gpio GPIODV_1 GPIO_ACTIVE_HIGH>;
|
|
||||||
+ enable-active-high;
|
|
||||||
+ };
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&pinctrl_periphs {
|
|
||||||
+ /*
|
|
||||||
+ * Make sure the irq pin of the TYPE C controller is not driven
|
|
||||||
+ * by the SoC.
|
|
||||||
+ */
|
|
||||||
+ fusb302_irq_pins: fusb302_irq {
|
|
||||||
+ mux {
|
|
||||||
+ groups = "GPIODV_0";
|
|
||||||
+ function = "gpio_periphs";
|
|
||||||
+ bias-pull-up;
|
|
||||||
+ output-disable;
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&i2c_C {
|
|
||||||
+ fusb302@22 {
|
|
||||||
+ compatible = "fcs,fusb302";
|
|
||||||
+ reg = <0x22>;
|
|
||||||
+
|
|
||||||
+ pinctrl-0 = <&fusb302_irq_pins>;
|
|
||||||
+ pinctrl-names = "default";
|
|
||||||
+ interrupt-parent = <&gpio_intc>;
|
|
||||||
+ interrupts = <59 IRQ_TYPE_LEVEL_LOW>;
|
|
||||||
+
|
|
||||||
+ vbus-supply = <&typec2_vbus>;
|
|
||||||
+
|
|
||||||
+ status = "okay";
|
|
||||||
+ };
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&usb2_phy2 {
|
|
||||||
+ phy-supply = <&typec2_vbus>;
|
|
||||||
+};
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
@ -1,236 +0,0 @@
|
|||||||
From ccbac5c2b2e82ef217f87689aa86afd67993c7d4 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jerome Brunet <jbrunet@baylibre.com>
|
|
||||||
Date: Thu, 5 Mar 2020 12:12:40 +0100
|
|
||||||
Subject: [PATCH 06/33] FROMGIT: arm64: dts: meson: add libretech-pc support
|
|
||||||
|
|
||||||
Add support for the Amlogic based libretech-pc platform.
|
|
||||||
This platform comes with 2 variant, based on the s905d or s912 SoC.
|
|
||||||
|
|
||||||
Acked-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
|
|
||||||
[narmstrong: update board/amlogic/q200/MAINTAINERS]
|
|
||||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
---
|
|
||||||
arch/arm/dts/Makefile | 2 +
|
|
||||||
.../meson-gxl-s905d-libretech-pc-u-boot.dtsi | 7 ++
|
|
||||||
.../meson-gxm-s912-libretech-pc-u-boot.dtsi | 7 ++
|
|
||||||
board/amlogic/q200/MAINTAINERS | 2 +
|
|
||||||
configs/libretech-s905d-pc_defconfig | 73 +++++++++++++++++++
|
|
||||||
configs/libretech-s912-pc_defconfig | 73 +++++++++++++++++++
|
|
||||||
6 files changed, 164 insertions(+)
|
|
||||||
create mode 100644 arch/arm/dts/meson-gxl-s905d-libretech-pc-u-boot.dtsi
|
|
||||||
create mode 100644 arch/arm/dts/meson-gxm-s912-libretech-pc-u-boot.dtsi
|
|
||||||
create mode 100644 configs/libretech-s905d-pc_defconfig
|
|
||||||
create mode 100644 configs/libretech-s912-pc_defconfig
|
|
||||||
|
|
||||||
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
|
|
||||||
index 820ee9733a..a80ce9c791 100644
|
|
||||||
--- a/arch/arm/dts/Makefile
|
|
||||||
+++ b/arch/arm/dts/Makefile
|
|
||||||
@@ -147,7 +147,9 @@ dtb-$(CONFIG_ARCH_MESON) += \
|
|
||||||
meson-gxl-s805x-libretech-ac.dtb \
|
|
||||||
meson-gxl-s905x-libretech-cc.dtb \
|
|
||||||
meson-gxl-s905x-khadas-vim.dtb \
|
|
||||||
+ meson-gxl-s905d-libretech-pc.dtb \
|
|
||||||
meson-gxm-khadas-vim2.dtb \
|
|
||||||
+ meson-gxm-s912-libretech-pc.dtb \
|
|
||||||
meson-axg-s400.dtb \
|
|
||||||
meson-g12a-u200.dtb \
|
|
||||||
meson-g12a-sei510.dtb \
|
|
||||||
diff --git a/arch/arm/dts/meson-gxl-s905d-libretech-pc-u-boot.dtsi b/arch/arm/dts/meson-gxl-s905d-libretech-pc-u-boot.dtsi
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000000..c35158d7e9
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/arch/arm/dts/meson-gxl-s905d-libretech-pc-u-boot.dtsi
|
|
||||||
@@ -0,0 +1,7 @@
|
|
||||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
|
||||||
+/*
|
|
||||||
+ * Copyright (c) 2019 BayLibre, SAS.
|
|
||||||
+ * Author: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+#include "meson-gx-u-boot.dtsi"
|
|
||||||
diff --git a/arch/arm/dts/meson-gxm-s912-libretech-pc-u-boot.dtsi b/arch/arm/dts/meson-gxm-s912-libretech-pc-u-boot.dtsi
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000000..c35158d7e9
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/arch/arm/dts/meson-gxm-s912-libretech-pc-u-boot.dtsi
|
|
||||||
@@ -0,0 +1,7 @@
|
|
||||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
|
||||||
+/*
|
|
||||||
+ * Copyright (c) 2019 BayLibre, SAS.
|
|
||||||
+ * Author: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+#include "meson-gx-u-boot.dtsi"
|
|
||||||
diff --git a/board/amlogic/q200/MAINTAINERS b/board/amlogic/q200/MAINTAINERS
|
|
||||||
index d3c5a4617b..6f00f87386 100644
|
|
||||||
--- a/board/amlogic/q200/MAINTAINERS
|
|
||||||
+++ b/board/amlogic/q200/MAINTAINERS
|
|
||||||
@@ -5,3 +5,5 @@ L: u-boot-amlogic@groups.io
|
|
||||||
F: board/amlogic/q200/
|
|
||||||
F: include/configs/q200.h
|
|
||||||
F: configs/khadas-vim2_defconfig
|
|
||||||
+F: configs/libretech-s905d-pc_defconfig
|
|
||||||
+F: configs/libretech-s912-pc_defconfig
|
|
||||||
diff --git a/configs/libretech-s905d-pc_defconfig b/configs/libretech-s905d-pc_defconfig
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000000..7e0c95872a
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/configs/libretech-s905d-pc_defconfig
|
|
||||||
@@ -0,0 +1,73 @@
|
|
||||||
+CONFIG_ARM=y
|
|
||||||
+CONFIG_SYS_BOARD="q200"
|
|
||||||
+CONFIG_ARCH_MESON=y
|
|
||||||
+CONFIG_SYS_TEXT_BASE=0x01000000
|
|
||||||
+CONFIG_MESON_GXL=y
|
|
||||||
+CONFIG_ENV_SIZE=0x10000
|
|
||||||
+CONFIG_ENV_OFFSET=0xFFFF0000
|
|
||||||
+CONFIG_NR_DRAM_BANKS=1
|
|
||||||
+CONFIG_DEBUG_UART_BASE=0xc81004c0
|
|
||||||
+CONFIG_DEBUG_UART_CLOCK=24000000
|
|
||||||
+CONFIG_ENV_SECT_SIZE=0x10000
|
|
||||||
+CONFIG_IDENT_STRING=" libretech-s905d-pc"
|
|
||||||
+CONFIG_DEBUG_UART=y
|
|
||||||
+CONFIG_OF_BOARD_SETUP=y
|
|
||||||
+CONFIG_USE_PREBOOT=y
|
|
||||||
+CONFIG_PREBOOT="usb start"
|
|
||||||
+CONFIG_MISC_INIT_R=y
|
|
||||||
+# CONFIG_DISPLAY_CPUINFO is not set
|
|
||||||
+# 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_SF=y
|
|
||||||
+CONFIG_CMD_SF_TEST=y
|
|
||||||
+CONFIG_CMD_SPI=y
|
|
||||||
+CONFIG_CMD_USB=y
|
|
||||||
+# CONFIG_CMD_SETEXPR is not set
|
|
||||||
+CONFIG_CMD_REGULATOR=y
|
|
||||||
+CONFIG_OF_CONTROL=y
|
|
||||||
+CONFIG_DEFAULT_DEVICE_TREE="meson-gxl-s905d-libretech-pc"
|
|
||||||
+CONFIG_ENV_IS_IN_SPI_FLASH=y
|
|
||||||
+CONFIG_NET_RANDOM_ETHADDR=y
|
|
||||||
+CONFIG_SARADC_MESON=y
|
|
||||||
+CONFIG_DM_GPIO=y
|
|
||||||
+CONFIG_DM_KEYBOARD=y
|
|
||||||
+CONFIG_DM_MMC=y
|
|
||||||
+CONFIG_MMC_MESON_GX=y
|
|
||||||
+CONFIG_MTD=y
|
|
||||||
+CONFIG_DM_SPI_FLASH=y
|
|
||||||
+CONFIG_SPI_FLASH=y
|
|
||||||
+CONFIG_SPI_FLASH_GIGADEVICE=y
|
|
||||||
+CONFIG_PHY_REALTEK=y
|
|
||||||
+CONFIG_DM_ETH=y
|
|
||||||
+CONFIG_ETH_DESIGNWARE=y
|
|
||||||
+CONFIG_PHY=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_FIXED=y
|
|
||||||
+CONFIG_DM_RESET=y
|
|
||||||
+CONFIG_DEBUG_UART_MESON=y
|
|
||||||
+CONFIG_DEBUG_UART_ANNOUNCE=y
|
|
||||||
+CONFIG_DEBUG_UART_SKIP_INIT=y
|
|
||||||
+CONFIG_MESON_SERIAL=y
|
|
||||||
+CONFIG_SPI=y
|
|
||||||
+CONFIG_DM_SPI=y
|
|
||||||
+CONFIG_MESON_SPIFC=y
|
|
||||||
+CONFIG_USB=y
|
|
||||||
+CONFIG_DM_USB=y
|
|
||||||
+CONFIG_USB_XHCI_HCD=y
|
|
||||||
+CONFIG_USB_XHCI_DWC3=y
|
|
||||||
+CONFIG_USB_XHCI_DWC3_OF_SIMPLE=y
|
|
||||||
+CONFIG_USB_DWC3=y
|
|
||||||
+CONFIG_USB_KEYBOARD=y
|
|
||||||
+CONFIG_DM_VIDEO=y
|
|
||||||
+CONFIG_SYS_WHITE_ON_BLACK=y
|
|
||||||
+CONFIG_VIDEO_MESON=y
|
|
||||||
+CONFIG_VIDEO_DT_SIMPLEFB=y
|
|
||||||
+CONFIG_OF_LIBFDT_OVERLAY=y
|
|
||||||
diff --git a/configs/libretech-s912-pc_defconfig b/configs/libretech-s912-pc_defconfig
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000000..5f4ee329e2
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/configs/libretech-s912-pc_defconfig
|
|
||||||
@@ -0,0 +1,73 @@
|
|
||||||
+CONFIG_ARM=y
|
|
||||||
+CONFIG_SYS_BOARD="q200"
|
|
||||||
+CONFIG_ARCH_MESON=y
|
|
||||||
+CONFIG_SYS_TEXT_BASE=0x01000000
|
|
||||||
+CONFIG_MESON_GXM=y
|
|
||||||
+CONFIG_ENV_SIZE=0x10000
|
|
||||||
+CONFIG_ENV_OFFSET=0xFFFF0000
|
|
||||||
+CONFIG_NR_DRAM_BANKS=1
|
|
||||||
+CONFIG_DEBUG_UART_BASE=0xc81004c0
|
|
||||||
+CONFIG_DEBUG_UART_CLOCK=24000000
|
|
||||||
+CONFIG_ENV_SECT_SIZE=0x10000
|
|
||||||
+CONFIG_IDENT_STRING=" libretech-s912-pc"
|
|
||||||
+CONFIG_DEBUG_UART=y
|
|
||||||
+CONFIG_OF_BOARD_SETUP=y
|
|
||||||
+CONFIG_USE_PREBOOT=y
|
|
||||||
+CONFIG_PREBOOT="usb start"
|
|
||||||
+CONFIG_MISC_INIT_R=y
|
|
||||||
+# CONFIG_DISPLAY_CPUINFO is not set
|
|
||||||
+# 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_SF=y
|
|
||||||
+CONFIG_CMD_SF_TEST=y
|
|
||||||
+CONFIG_CMD_SPI=y
|
|
||||||
+CONFIG_CMD_USB=y
|
|
||||||
+# CONFIG_CMD_SETEXPR is not set
|
|
||||||
+CONFIG_CMD_REGULATOR=y
|
|
||||||
+CONFIG_OF_CONTROL=y
|
|
||||||
+CONFIG_DEFAULT_DEVICE_TREE="meson-gxm-s912-libretech-pc"
|
|
||||||
+CONFIG_ENV_IS_IN_SPI_FLASH=y
|
|
||||||
+CONFIG_NET_RANDOM_ETHADDR=y
|
|
||||||
+CONFIG_SARADC_MESON=y
|
|
||||||
+CONFIG_DM_GPIO=y
|
|
||||||
+CONFIG_DM_KEYBOARD=y
|
|
||||||
+CONFIG_DM_MMC=y
|
|
||||||
+CONFIG_MMC_MESON_GX=y
|
|
||||||
+CONFIG_MTD=y
|
|
||||||
+CONFIG_DM_SPI_FLASH=y
|
|
||||||
+CONFIG_SPI_FLASH=y
|
|
||||||
+CONFIG_SPI_FLASH_GIGADEVICE=y
|
|
||||||
+CONFIG_PHY_REALTEK=y
|
|
||||||
+CONFIG_DM_ETH=y
|
|
||||||
+CONFIG_ETH_DESIGNWARE=y
|
|
||||||
+CONFIG_PHY=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_FIXED=y
|
|
||||||
+CONFIG_DM_RESET=y
|
|
||||||
+CONFIG_DEBUG_UART_MESON=y
|
|
||||||
+CONFIG_DEBUG_UART_ANNOUNCE=y
|
|
||||||
+CONFIG_DEBUG_UART_SKIP_INIT=y
|
|
||||||
+CONFIG_MESON_SERIAL=y
|
|
||||||
+CONFIG_SPI=y
|
|
||||||
+CONFIG_DM_SPI=y
|
|
||||||
+CONFIG_MESON_SPIFC=y
|
|
||||||
+CONFIG_USB=y
|
|
||||||
+CONFIG_DM_USB=y
|
|
||||||
+CONFIG_USB_XHCI_HCD=y
|
|
||||||
+CONFIG_USB_XHCI_DWC3=y
|
|
||||||
+CONFIG_USB_XHCI_DWC3_OF_SIMPLE=y
|
|
||||||
+CONFIG_USB_DWC3=y
|
|
||||||
+CONFIG_USB_KEYBOARD=y
|
|
||||||
+CONFIG_DM_VIDEO=y
|
|
||||||
+CONFIG_SYS_WHITE_ON_BLACK=y
|
|
||||||
+CONFIG_VIDEO_MESON=y
|
|
||||||
+CONFIG_VIDEO_DT_SIMPLEFB=y
|
|
||||||
+CONFIG_OF_LIBFDT_OVERLAY=y
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
@ -1,34 +0,0 @@
|
|||||||
From 18e5ef0dc6d2368bfb6cd5736842ad895c1bfc73 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
Date: Wed, 15 Apr 2020 17:58:30 +0200
|
|
||||||
Subject: [PATCH 07/33] FROMGIT: ARM: dts: add missing
|
|
||||||
meson-gxl-s805x-libretech-ac-u-boot.dtsi file
|
|
||||||
|
|
||||||
The libretech-ac u-boot.dtsi file is missing to enabled DT nodes changes
|
|
||||||
to enable Video output on U-Boot.
|
|
||||||
|
|
||||||
Fixes: 671b1db8f8 ("arm64: dts: meson-gx: vpu should be probed before relocation")
|
|
||||||
Reported-by: Jerome Brunet <jbrunet@baylibre.com>
|
|
||||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
Tested-by: Jerome Brunet <jbrunet@baylibre.com>
|
|
||||||
---
|
|
||||||
arch/arm/dts/meson-gxl-s805x-libretech-ac-u-boot.dtsi | 7 +++++++
|
|
||||||
1 file changed, 7 insertions(+)
|
|
||||||
create mode 100644 arch/arm/dts/meson-gxl-s805x-libretech-ac-u-boot.dtsi
|
|
||||||
|
|
||||||
diff --git a/arch/arm/dts/meson-gxl-s805x-libretech-ac-u-boot.dtsi b/arch/arm/dts/meson-gxl-s805x-libretech-ac-u-boot.dtsi
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000000..c35158d7e9
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/arch/arm/dts/meson-gxl-s805x-libretech-ac-u-boot.dtsi
|
|
||||||
@@ -0,0 +1,7 @@
|
|
||||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
|
||||||
+/*
|
|
||||||
+ * Copyright (c) 2019 BayLibre, SAS.
|
|
||||||
+ * Author: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+#include "meson-gx-u-boot.dtsi"
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
@ -1,35 +0,0 @@
|
|||||||
From a630363ac19a63561c0acb4e7d66456a646e0d01 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
Date: Thu, 16 Apr 2020 10:39:41 +0200
|
|
||||||
Subject: [PATCH 08/33] FROMGIT: arm64: dts: meson-gx: add back dmc register
|
|
||||||
range until canvas driver is available
|
|
||||||
|
|
||||||
The Linux VPU bindings have changed and dropped the dmc register range.
|
|
||||||
|
|
||||||
Add it back in the meson-gx-u-boot.dtsi file until a proper canvas driver
|
|
||||||
is available.
|
|
||||||
|
|
||||||
Fixes: dd5f2351e9 ("arm64: dts: meson: sync dt and bindings from v5.6-rc2")
|
|
||||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
---
|
|
||||||
arch/arm/dts/meson-gx-u-boot.dtsi | 4 ++++
|
|
||||||
1 file changed, 4 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/arch/arm/dts/meson-gx-u-boot.dtsi b/arch/arm/dts/meson-gx-u-boot.dtsi
|
|
||||||
index b84e5edba4..17d2cb95c1 100644
|
|
||||||
--- a/arch/arm/dts/meson-gx-u-boot.dtsi
|
|
||||||
+++ b/arch/arm/dts/meson-gx-u-boot.dtsi
|
|
||||||
@@ -11,6 +11,10 @@
|
|
||||||
};
|
|
||||||
|
|
||||||
&vpu {
|
|
||||||
+ reg = <0x0 0xd0100000 0x0 0x100000>,
|
|
||||||
+ <0x0 0xc883c000 0x0 0x1000>,
|
|
||||||
+ <0x0 0xc8838000 0x0 0x1000>;
|
|
||||||
+ reg-names = "vpu", "hhi", "dmc";
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
@ -1,109 +0,0 @@
|
|||||||
From 9102eaa76d81c8465e995fe61297fad4c1791615 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
Date: Mon, 30 Mar 2020 11:27:23 +0200
|
|
||||||
Subject: [PATCH 09/33] FROMGIT: generic-phy: add generic_phy_get_by_node()
|
|
||||||
|
|
||||||
Add generic_phy_get_by_node() to get a PHY phandle from a node instead
|
|
||||||
of a udevice.
|
|
||||||
|
|
||||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
Reviewed-by: Tom Rini <trini@konsulko.com>
|
|
||||||
[narmstrong: fixed by including ofnode.h in generic-phy.h]
|
|
||||||
---
|
|
||||||
drivers/phy/phy-uclass.c | 16 +++++++++++-----
|
|
||||||
include/generic-phy.h | 29 +++++++++++++++++++++++++++++
|
|
||||||
2 files changed, 40 insertions(+), 5 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/drivers/phy/phy-uclass.c b/drivers/phy/phy-uclass.c
|
|
||||||
index e201a90c8c..e463b0b400 100644
|
|
||||||
--- a/drivers/phy/phy-uclass.c
|
|
||||||
+++ b/drivers/phy/phy-uclass.c
|
|
||||||
@@ -31,20 +31,20 @@ static int generic_phy_xlate_offs_flags(struct phy *phy,
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
-int generic_phy_get_by_index(struct udevice *dev, int index,
|
|
||||||
- struct phy *phy)
|
|
||||||
+int generic_phy_get_by_node(ofnode node, int index, struct phy *phy)
|
|
||||||
{
|
|
||||||
struct ofnode_phandle_args args;
|
|
||||||
struct phy_ops *ops;
|
|
||||||
struct udevice *phydev;
|
|
||||||
int i, ret;
|
|
||||||
|
|
||||||
- debug("%s(dev=%p, index=%d, phy=%p)\n", __func__, dev, index, phy);
|
|
||||||
+ debug("%s(node=%s, index=%d, phy=%p)\n",
|
|
||||||
+ __func__, ofnode_get_name(node), index, phy);
|
|
||||||
|
|
||||||
assert(phy);
|
|
||||||
phy->dev = NULL;
|
|
||||||
- ret = dev_read_phandle_with_args(dev, "phys", "#phy-cells", 0, index,
|
|
||||||
- &args);
|
|
||||||
+ ret = ofnode_parse_phandle_with_args(node, "phys", "#phy-cells", 0,
|
|
||||||
+ index, &args);
|
|
||||||
if (ret) {
|
|
||||||
debug("%s: dev_read_phandle_with_args failed: err=%d\n",
|
|
||||||
__func__, ret);
|
|
||||||
@@ -90,6 +90,12 @@ err:
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
+int generic_phy_get_by_index(struct udevice *dev, int index,
|
|
||||||
+ struct phy *phy)
|
|
||||||
+{
|
|
||||||
+ return generic_phy_get_by_node(dev_ofnode(dev), index, phy);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
int generic_phy_get_by_name(struct udevice *dev, const char *phy_name,
|
|
||||||
struct phy *phy)
|
|
||||||
{
|
|
||||||
diff --git a/include/generic-phy.h b/include/generic-phy.h
|
|
||||||
index 95caf58341..73537025c2 100644
|
|
||||||
--- a/include/generic-phy.h
|
|
||||||
+++ b/include/generic-phy.h
|
|
||||||
@@ -7,6 +7,8 @@
|
|
||||||
#ifndef __GENERIC_PHY_H
|
|
||||||
#define __GENERIC_PHY_H
|
|
||||||
|
|
||||||
+#include <dm/ofnode.h>
|
|
||||||
+
|
|
||||||
struct ofnode_phandle_args;
|
|
||||||
|
|
||||||
/**
|
|
||||||
@@ -193,6 +195,33 @@ int generic_phy_power_off(struct phy *phy);
|
|
||||||
int generic_phy_get_by_index(struct udevice *user, int index,
|
|
||||||
struct phy *phy);
|
|
||||||
|
|
||||||
+/**
|
|
||||||
+ * generic_phy_get_by_node() - Get a PHY device by integer index on ofnode
|
|
||||||
+ *
|
|
||||||
+ * @node: the device node
|
|
||||||
+ * @index: The index in the list of available PHYs
|
|
||||||
+ * @phy: A pointer to the PHY port
|
|
||||||
+ *
|
|
||||||
+ * This looks up a PHY device for a client device based on its ofnode and on
|
|
||||||
+ * its position in the list of the possible PHYs.
|
|
||||||
+ *
|
|
||||||
+ * example:
|
|
||||||
+ * usb1: usb_otg_ss@xxx {
|
|
||||||
+ * compatible = "xxx";
|
|
||||||
+ * reg = <xxx>;
|
|
||||||
+ * .
|
|
||||||
+ * .
|
|
||||||
+ * phys = <&usb2_phy>, <&usb3_phy>;
|
|
||||||
+ * .
|
|
||||||
+ * .
|
|
||||||
+ * };
|
|
||||||
+ * the USB2 phy can be accessed by passing index '0' and the USB3 phy can
|
|
||||||
+ * be accessed by passing index '1'
|
|
||||||
+ *
|
|
||||||
+ * @return 0 if OK, or a negative error code
|
|
||||||
+ */
|
|
||||||
+int generic_phy_get_by_node(ofnode node, int index, struct phy *phy);
|
|
||||||
+
|
|
||||||
/**
|
|
||||||
* generic_phy_get_by_name() - Get a PHY device by its name.
|
|
||||||
*
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
@ -1,173 +0,0 @@
|
|||||||
From 5d52ec98996401176465a16408862393fcc83fc7 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
Date: Mon, 30 Mar 2020 11:27:24 +0200
|
|
||||||
Subject: [PATCH 10/33] FROMGIT: phy: meson-gxl-usb: add set_mode call to force
|
|
||||||
switch to peripheral mode
|
|
||||||
|
|
||||||
Add set_mode function in the Amlogic GXL PHYs that will be called by
|
|
||||||
the arch code to switch PHYs from/to gadget mode.
|
|
||||||
|
|
||||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
---
|
|
||||||
arch/arm/include/asm/arch-meson/usb-gx.h | 16 +++++++++
|
|
||||||
drivers/phy/meson-gxl-usb2.c | 30 ++++++++++++----
|
|
||||||
drivers/phy/meson-gxl-usb3.c | 44 +++++++++++++++++-------
|
|
||||||
3 files changed, 72 insertions(+), 18 deletions(-)
|
|
||||||
create mode 100644 arch/arm/include/asm/arch-meson/usb-gx.h
|
|
||||||
|
|
||||||
diff --git a/arch/arm/include/asm/arch-meson/usb-gx.h b/arch/arm/include/asm/arch-meson/usb-gx.h
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000000..aeb8e0c673
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/arch/arm/include/asm/arch-meson/usb-gx.h
|
|
||||||
@@ -0,0 +1,16 @@
|
|
||||||
+/* SPDX-License-Identifier: GPL-2.0+ */
|
|
||||||
+/*
|
|
||||||
+ * Copyright 2019 BayLibre SAS
|
|
||||||
+ * Author: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
+ */
|
|
||||||
+#ifndef _ARCH_MESON_USB_GX_H_
|
|
||||||
+#define _ARCH_MESON_USB_GX_H_
|
|
||||||
+
|
|
||||||
+#include <generic-phy.h>
|
|
||||||
+#include <linux/usb/otg.h>
|
|
||||||
+
|
|
||||||
+/* TOFIX add set_mode to struct phy_ops */
|
|
||||||
+void phy_meson_gxl_usb2_set_mode(struct phy *phy, enum usb_dr_mode mode);
|
|
||||||
+void phy_meson_gxl_usb3_set_mode(struct phy *phy, enum usb_dr_mode mode);
|
|
||||||
+
|
|
||||||
+#endif
|
|
||||||
diff --git a/drivers/phy/meson-gxl-usb2.c b/drivers/phy/meson-gxl-usb2.c
|
|
||||||
index c98d12b627..b4f4c3c76b 100644
|
|
||||||
--- a/drivers/phy/meson-gxl-usb2.c
|
|
||||||
+++ b/drivers/phy/meson-gxl-usb2.c
|
|
||||||
@@ -17,6 +17,9 @@
|
|
||||||
#include <regmap.h>
|
|
||||||
#include <power/regulator.h>
|
|
||||||
#include <clk.h>
|
|
||||||
+#include <linux/usb/otg.h>
|
|
||||||
+
|
|
||||||
+#include <asm/arch/usb-gx.h>
|
|
||||||
|
|
||||||
#include <linux/bitops.h>
|
|
||||||
#include <linux/compat.h>
|
|
||||||
@@ -121,15 +124,30 @@ static void phy_meson_gxl_usb2_reset(struct phy_meson_gxl_usb2_priv *priv)
|
|
||||||
udelay(RESET_COMPLETE_TIME);
|
|
||||||
}
|
|
||||||
|
|
||||||
-static void
|
|
||||||
-phy_meson_gxl_usb2_set_host_mode(struct phy_meson_gxl_usb2_priv *priv)
|
|
||||||
+void phy_meson_gxl_usb2_set_mode(struct phy *phy, enum usb_dr_mode mode)
|
|
||||||
{
|
|
||||||
+ struct udevice *dev = phy->dev;
|
|
||||||
+ struct phy_meson_gxl_usb2_priv *priv = dev_get_priv(dev);
|
|
||||||
uint val;
|
|
||||||
|
|
||||||
regmap_read(priv->regmap, U2P_R0, &val);
|
|
||||||
- val |= U2P_R0_DM_PULLDOWN;
|
|
||||||
- val |= U2P_R0_DP_PULLDOWN;
|
|
||||||
- val &= ~U2P_R0_ID_PULLUP;
|
|
||||||
+
|
|
||||||
+ switch (mode) {
|
|
||||||
+ case USB_DR_MODE_UNKNOWN:
|
|
||||||
+ case USB_DR_MODE_HOST:
|
|
||||||
+ case USB_DR_MODE_OTG:
|
|
||||||
+ val |= U2P_R0_DM_PULLDOWN;
|
|
||||||
+ val |= U2P_R0_DP_PULLDOWN;
|
|
||||||
+ val &= ~U2P_R0_ID_PULLUP;
|
|
||||||
+ break;
|
|
||||||
+
|
|
||||||
+ case USB_DR_MODE_PERIPHERAL:
|
|
||||||
+ val &= ~U2P_R0_DM_PULLDOWN;
|
|
||||||
+ val &= ~U2P_R0_DP_PULLDOWN;
|
|
||||||
+ val |= U2P_R0_ID_PULLUP;
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
regmap_write(priv->regmap, U2P_R0, val);
|
|
||||||
|
|
||||||
phy_meson_gxl_usb2_reset(priv);
|
|
||||||
@@ -146,7 +164,7 @@ static int phy_meson_gxl_usb2_power_on(struct phy *phy)
|
|
||||||
val &= ~U2P_R0_POWER_ON_RESET;
|
|
||||||
regmap_write(priv->regmap, U2P_R0, val);
|
|
||||||
|
|
||||||
- phy_meson_gxl_usb2_set_host_mode(priv);
|
|
||||||
+ phy_meson_gxl_usb2_set_mode(phy, USB_DR_MODE_HOST);
|
|
||||||
|
|
||||||
#if CONFIG_IS_ENABLED(DM_REGULATOR)
|
|
||||||
if (priv->phy_supply) {
|
|
||||||
diff --git a/drivers/phy/meson-gxl-usb3.c b/drivers/phy/meson-gxl-usb3.c
|
|
||||||
index c2a8593b39..9de55bb5df 100644
|
|
||||||
--- a/drivers/phy/meson-gxl-usb3.c
|
|
||||||
+++ b/drivers/phy/meson-gxl-usb3.c
|
|
||||||
@@ -16,6 +16,9 @@
|
|
||||||
#include <generic-phy.h>
|
|
||||||
#include <regmap.h>
|
|
||||||
#include <clk.h>
|
|
||||||
+#include <linux/usb/otg.h>
|
|
||||||
+
|
|
||||||
+#include <asm/arch/usb-gx.h>
|
|
||||||
|
|
||||||
#include <linux/bitops.h>
|
|
||||||
#include <linux/compat.h>
|
|
||||||
@@ -93,20 +96,35 @@ struct phy_meson_gxl_usb3_priv {
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
-static int
|
|
||||||
-phy_meson_gxl_usb3_set_host_mode(struct phy_meson_gxl_usb3_priv *priv)
|
|
||||||
+void phy_meson_gxl_usb3_set_mode(struct phy *phy, enum usb_dr_mode mode)
|
|
||||||
{
|
|
||||||
+ struct udevice *dev = phy->dev;
|
|
||||||
+ struct phy_meson_gxl_usb3_priv *priv = dev_get_priv(dev);
|
|
||||||
uint val;
|
|
||||||
|
|
||||||
- regmap_read(priv->regmap, USB_R0, &val);
|
|
||||||
- val &= ~USB_R0_U2D_ACT;
|
|
||||||
- regmap_write(priv->regmap, USB_R0, val);
|
|
||||||
-
|
|
||||||
- regmap_read(priv->regmap, USB_R4, &val);
|
|
||||||
- val &= ~USB_R4_P21_SLEEP_M0;
|
|
||||||
- regmap_write(priv->regmap, USB_R4, val);
|
|
||||||
-
|
|
||||||
- return 0;
|
|
||||||
+ switch (mode) {
|
|
||||||
+ case USB_DR_MODE_UNKNOWN:
|
|
||||||
+ case USB_DR_MODE_HOST:
|
|
||||||
+ case USB_DR_MODE_OTG:
|
|
||||||
+ regmap_read(priv->regmap, USB_R0, &val);
|
|
||||||
+ val &= ~USB_R0_U2D_ACT;
|
|
||||||
+ regmap_write(priv->regmap, USB_R0, val);
|
|
||||||
+
|
|
||||||
+ regmap_read(priv->regmap, USB_R4, &val);
|
|
||||||
+ val &= ~USB_R4_P21_SLEEP_M0;
|
|
||||||
+ regmap_write(priv->regmap, USB_R4, val);
|
|
||||||
+ break;
|
|
||||||
+
|
|
||||||
+ case USB_DR_MODE_PERIPHERAL:
|
|
||||||
+ regmap_read(priv->regmap, USB_R0, &val);
|
|
||||||
+ val |= USB_R0_U2D_ACT;
|
|
||||||
+ regmap_write(priv->regmap, USB_R0, val);
|
|
||||||
+
|
|
||||||
+ regmap_read(priv->regmap, USB_R4, &val);
|
|
||||||
+ val |= USB_R4_P21_SLEEP_M0;
|
|
||||||
+ regmap_write(priv->regmap, USB_R4, val);
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
static int phy_meson_gxl_usb3_power_on(struct phy *phy)
|
|
||||||
@@ -122,7 +140,9 @@ static int phy_meson_gxl_usb3_power_on(struct phy *phy)
|
|
||||||
val |= FIELD_PREP(USB_R5_ID_DIG_TH_MASK, 0xff);
|
|
||||||
regmap_write(priv->regmap, USB_R5, val);
|
|
||||||
|
|
||||||
- return phy_meson_gxl_usb3_set_host_mode(priv);
|
|
||||||
+ phy_meson_gxl_usb3_set_mode(phy, USB_DR_MODE_HOST);
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int phy_meson_gxl_usb3_power_off(struct phy *phy)
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
@ -1,151 +0,0 @@
|
|||||||
From 250936e89ab2a704a78aa8e8648094ee5de8702f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
Date: Mon, 30 Mar 2020 11:27:25 +0200
|
|
||||||
Subject: [PATCH 11/33] FROMGIT: arm: meson-gx: add board_usb_init()/cleanup()
|
|
||||||
for USB gadget
|
|
||||||
|
|
||||||
Add arch code to initialize USB Gadget mode using the DWC2 controller,
|
|
||||||
and using the previously added set_mode() phy functions.
|
|
||||||
|
|
||||||
[narmstrong: fixup board_usb_cleanup call to phy_meson_gxl_usb2_set_mode]
|
|
||||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
---
|
|
||||||
arch/arm/mach-meson/board-gx.c | 118 +++++++++++++++++++++++++++++++++
|
|
||||||
1 file changed, 118 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/arch/arm/mach-meson/board-gx.c b/arch/arm/mach-meson/board-gx.c
|
|
||||||
index 191fd49005..3da99017a5 100644
|
|
||||||
--- a/arch/arm/mach-meson/board-gx.c
|
|
||||||
+++ b/arch/arm/mach-meson/board-gx.c
|
|
||||||
@@ -14,6 +14,11 @@
|
|
||||||
#include <asm/io.h>
|
|
||||||
#include <asm/armv8/mmu.h>
|
|
||||||
#include <linux/sizes.h>
|
|
||||||
+#include <usb.h>
|
|
||||||
+#include <linux/usb/otg.h>
|
|
||||||
+#include <asm/arch/usb-gx.h>
|
|
||||||
+#include <usb/dwc2_udc.h>
|
|
||||||
+#include <clk.h>
|
|
||||||
#include <phy.h>
|
|
||||||
|
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
|
||||||
@@ -149,3 +154,116 @@ void meson_eth_init(phy_interface_t mode, unsigned int flags)
|
|
||||||
/* Enable power gate */
|
|
||||||
clrbits_le32(GX_MEM_PD_REG_0, GX_MEM_PD_REG_0_ETH_MASK);
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+#if CONFIG_IS_ENABLED(USB_XHCI_DWC3_OF_SIMPLE) && \
|
|
||||||
+ CONFIG_IS_ENABLED(USB_GADGET_DWC2_OTG)
|
|
||||||
+static struct dwc2_plat_otg_data meson_gx_dwc2_data;
|
|
||||||
+static struct phy usb_phys[2];
|
|
||||||
+
|
|
||||||
+int board_usb_init(int index, enum usb_init_type init)
|
|
||||||
+{
|
|
||||||
+ struct ofnode_phandle_args args;
|
|
||||||
+ struct udevice *clk_dev;
|
|
||||||
+ ofnode dwc2_node;
|
|
||||||
+ struct clk clk;
|
|
||||||
+ int ret, i;
|
|
||||||
+ u32 val;
|
|
||||||
+
|
|
||||||
+ /* find the dwc2 node */
|
|
||||||
+ dwc2_node = ofnode_by_compatible(ofnode_null(), "snps,dwc2");
|
|
||||||
+ if (!ofnode_valid(dwc2_node)) {
|
|
||||||
+ debug("Not found dwc2 node\n");
|
|
||||||
+ return -ENODEV;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (!ofnode_is_available(dwc2_node)) {
|
|
||||||
+ debug("dwc2 is disabled in the device tree\n");
|
|
||||||
+ return -ENODEV;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* get the PHYs */
|
|
||||||
+ for (i = 0; i < 2; i++) {
|
|
||||||
+ ret = generic_phy_get_by_node(dwc2_node, i, &usb_phys[i]);
|
|
||||||
+ if (ret && ret != -ENOENT) {
|
|
||||||
+ pr_err("Failed to get USB PHY%d for %s\n",
|
|
||||||
+ i, ofnode_get_name(dwc2_node));
|
|
||||||
+ return ret;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ for (i = 0; i < 2; i++) {
|
|
||||||
+ ret = generic_phy_init(&usb_phys[i]);
|
|
||||||
+ if (ret) {
|
|
||||||
+ pr_err("Can't init USB PHY%d for %s\n",
|
|
||||||
+ i, ofnode_get_name(dwc2_node));
|
|
||||||
+ return ret;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ for (i = 0; i < 2; i++) {
|
|
||||||
+ ret = generic_phy_power_on(&usb_phys[i]);
|
|
||||||
+ if (ret) {
|
|
||||||
+ pr_err("Can't power USB PHY%d for %s\n",
|
|
||||||
+ i, ofnode_get_name(dwc2_node));
|
|
||||||
+ return ret;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ phy_meson_gxl_usb3_set_mode(&usb_phys[0], USB_DR_MODE_PERIPHERAL);
|
|
||||||
+ phy_meson_gxl_usb2_set_mode(&usb_phys[1], USB_DR_MODE_PERIPHERAL);
|
|
||||||
+
|
|
||||||
+ meson_gx_dwc2_data.regs_otg = ofnode_get_addr(dwc2_node);
|
|
||||||
+ if (meson_gx_dwc2_data.regs_otg == FDT_ADDR_T_NONE) {
|
|
||||||
+ debug("usbotg: can't get base address\n");
|
|
||||||
+ return -ENODATA;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* Enable clock */
|
|
||||||
+ ret = ofnode_parse_phandle_with_args(dwc2_node, "clocks",
|
|
||||||
+ "#clock-cells", 0, 0, &args);
|
|
||||||
+ if (ret) {
|
|
||||||
+ debug("usbotg has no clocks defined in the device tree\n");
|
|
||||||
+ return ret;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ ret = uclass_get_device_by_ofnode(UCLASS_CLK, args.node, &clk_dev);
|
|
||||||
+ if (ret)
|
|
||||||
+ return ret;
|
|
||||||
+
|
|
||||||
+ if (args.args_count != 1) {
|
|
||||||
+ debug("Can't find clock ID in the device tree\n");
|
|
||||||
+ return -ENODATA;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ clk.dev = clk_dev;
|
|
||||||
+ clk.id = args.args[0];
|
|
||||||
+
|
|
||||||
+ ret = clk_enable(&clk);
|
|
||||||
+ if (ret) {
|
|
||||||
+ debug("Failed to enable usbotg clock\n");
|
|
||||||
+ return ret;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ ofnode_read_u32(dwc2_node, "g-rx-fifo-size", &val);
|
|
||||||
+ meson_gx_dwc2_data.rx_fifo_sz = val;
|
|
||||||
+ ofnode_read_u32(dwc2_node, "g-np-tx-fifo-size", &val);
|
|
||||||
+ meson_gx_dwc2_data.np_tx_fifo_sz = val;
|
|
||||||
+ ofnode_read_u32(dwc2_node, "g-tx-fifo-size", &val);
|
|
||||||
+ meson_gx_dwc2_data.tx_fifo_sz = val;
|
|
||||||
+
|
|
||||||
+ return dwc2_udc_probe(&meson_gx_dwc2_data);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+int board_usb_cleanup(int index, enum usb_init_type init)
|
|
||||||
+{
|
|
||||||
+ int i;
|
|
||||||
+
|
|
||||||
+ phy_meson_gxl_usb3_set_mode(&usb_phys[0], USB_DR_MODE_HOST);
|
|
||||||
+ phy_meson_gxl_usb2_set_mode(&usb_phys[1], USB_DR_MODE_HOST);
|
|
||||||
+
|
|
||||||
+ for (i = 0; i < 2; i++)
|
|
||||||
+ usb_phys[i].dev = NULL;
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+#endif
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
@ -1,84 +0,0 @@
|
|||||||
From da97f35bad96e2748744968b35f823dde27dc001 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
Date: Mon, 30 Mar 2020 11:27:26 +0200
|
|
||||||
Subject: [PATCH 12/33] FROMGIT: arm: dts: meson-gxl: Add USB Gadget nodes for
|
|
||||||
U-Boot
|
|
||||||
|
|
||||||
Add the USB DWC2 node to u-boot specific dtsi files since Gadget
|
|
||||||
support is not (yet) available in upstream Linux yet.
|
|
||||||
|
|
||||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
---
|
|
||||||
.../meson-gxl-s905x-khadas-vim-u-boot.dtsi | 2 +-
|
|
||||||
.../meson-gxl-s905x-libretech-cc-u-boot.dtsi | 6 ++++-
|
|
||||||
arch/arm/dts/meson-gxl-s905x-p212-u-boot.dtsi | 2 +-
|
|
||||||
arch/arm/dts/meson-gxl-u-boot.dtsi | 23 +++++++++++++++++++
|
|
||||||
4 files changed, 30 insertions(+), 3 deletions(-)
|
|
||||||
create mode 100644 arch/arm/dts/meson-gxl-u-boot.dtsi
|
|
||||||
|
|
||||||
diff --git a/arch/arm/dts/meson-gxl-s905x-khadas-vim-u-boot.dtsi b/arch/arm/dts/meson-gxl-s905x-khadas-vim-u-boot.dtsi
|
|
||||||
index c35158d7e9..39270ea71c 100644
|
|
||||||
--- a/arch/arm/dts/meson-gxl-s905x-khadas-vim-u-boot.dtsi
|
|
||||||
+++ b/arch/arm/dts/meson-gxl-s905x-khadas-vim-u-boot.dtsi
|
|
||||||
@@ -4,4 +4,4 @@
|
|
||||||
* Author: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
*/
|
|
||||||
|
|
||||||
-#include "meson-gx-u-boot.dtsi"
|
|
||||||
+#include "meson-gxl-u-boot.dtsi"
|
|
||||||
diff --git a/arch/arm/dts/meson-gxl-s905x-libretech-cc-u-boot.dtsi b/arch/arm/dts/meson-gxl-s905x-libretech-cc-u-boot.dtsi
|
|
||||||
index c35158d7e9..474a3e1604 100644
|
|
||||||
--- a/arch/arm/dts/meson-gxl-s905x-libretech-cc-u-boot.dtsi
|
|
||||||
+++ b/arch/arm/dts/meson-gxl-s905x-libretech-cc-u-boot.dtsi
|
|
||||||
@@ -4,4 +4,8 @@
|
|
||||||
* Author: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
*/
|
|
||||||
|
|
||||||
-#include "meson-gx-u-boot.dtsi"
|
|
||||||
+#include "meson-gxl-u-boot.dtsi"
|
|
||||||
+
|
|
||||||
+&dwc2 {
|
|
||||||
+ status = "okay";
|
|
||||||
+};
|
|
||||||
diff --git a/arch/arm/dts/meson-gxl-s905x-p212-u-boot.dtsi b/arch/arm/dts/meson-gxl-s905x-p212-u-boot.dtsi
|
|
||||||
index c35158d7e9..39270ea71c 100644
|
|
||||||
--- a/arch/arm/dts/meson-gxl-s905x-p212-u-boot.dtsi
|
|
||||||
+++ b/arch/arm/dts/meson-gxl-s905x-p212-u-boot.dtsi
|
|
||||||
@@ -4,4 +4,4 @@
|
|
||||||
* Author: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
*/
|
|
||||||
|
|
||||||
-#include "meson-gx-u-boot.dtsi"
|
|
||||||
+#include "meson-gxl-u-boot.dtsi"
|
|
||||||
diff --git a/arch/arm/dts/meson-gxl-u-boot.dtsi b/arch/arm/dts/meson-gxl-u-boot.dtsi
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000000..9e88afd30e
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/arch/arm/dts/meson-gxl-u-boot.dtsi
|
|
||||||
@@ -0,0 +1,23 @@
|
|
||||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
|
||||||
+/*
|
|
||||||
+ * Copyright (c) 2019 BayLibre, SAS.
|
|
||||||
+ * Author: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+#include "meson-gx-u-boot.dtsi"
|
|
||||||
+
|
|
||||||
+&usb0 {
|
|
||||||
+ dwc2: usb@c9100000 {
|
|
||||||
+ compatible = "snps,dwc2";
|
|
||||||
+ reg = <0x0 0xc9100000 0x0 0x40000>;
|
|
||||||
+ interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
|
|
||||||
+ clocks = <&clkc CLKID_USB1_DDR_BRIDGE>;
|
|
||||||
+ clock-names = "ddr";
|
|
||||||
+ phys = <&usb3_phy>, <&usb2_phy1>;
|
|
||||||
+ dr_mode = "peripheral";
|
|
||||||
+ g-rx-fifo-size = <192>;
|
|
||||||
+ g-np-tx-fifo-size = <128>;
|
|
||||||
+ g-tx-fifo-size = <128 128 16 16 16>;
|
|
||||||
+ status = "disabled";
|
|
||||||
+ };
|
|
||||||
+};
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
@ -1,41 +0,0 @@
|
|||||||
From c0a978fcba484af5a0c643a4a7c3b69276a3c0ea Mon Sep 17 00:00:00 2001
|
|
||||||
From: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
Date: Mon, 30 Mar 2020 11:27:27 +0200
|
|
||||||
Subject: [PATCH 13/33] FROMGIT: configs: libretech-cc: Enable USB gadget with
|
|
||||||
Mass Storage function
|
|
||||||
|
|
||||||
Enable configs to support USB gadget and Mass Storage
|
|
||||||
|
|
||||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
---
|
|
||||||
configs/libretech-cc_defconfig | 7 +++++++
|
|
||||||
1 file changed, 7 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/configs/libretech-cc_defconfig b/configs/libretech-cc_defconfig
|
|
||||||
index 7c257b33b3..2c512ebc1e 100644
|
|
||||||
--- a/configs/libretech-cc_defconfig
|
|
||||||
+++ b/configs/libretech-cc_defconfig
|
|
||||||
@@ -19,6 +19,7 @@ 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
|
|
||||||
@@ -51,6 +52,12 @@ CONFIG_USB_XHCI_HCD=y
|
|
||||||
CONFIG_USB_XHCI_DWC3=y
|
|
||||||
CONFIG_USB_XHCI_DWC3_OF_SIMPLE=y
|
|
||||||
CONFIG_USB_DWC3=y
|
|
||||||
+# CONFIG_USB_DWC3_GADGET is not set
|
|
||||||
+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_DM_VIDEO=y
|
|
||||||
# CONFIG_VIDEO_BPP8 is not set
|
|
||||||
# CONFIG_VIDEO_BPP16 is not set
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
@ -1,41 +0,0 @@
|
|||||||
From a1657ae3f2b3101d12994b8936bbcecf899979b8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
Date: Mon, 30 Mar 2020 11:27:28 +0200
|
|
||||||
Subject: [PATCH 14/33] FROMGIT: configs: libretech-ac: Enable USB gadget with
|
|
||||||
Mass Storage function
|
|
||||||
|
|
||||||
Enable configs to support USB gadget and Mass Storage
|
|
||||||
|
|
||||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
---
|
|
||||||
configs/libretech-ac_defconfig | 7 +++++++
|
|
||||||
1 file changed, 7 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/configs/libretech-ac_defconfig b/configs/libretech-ac_defconfig
|
|
||||||
index 09b87c54d5..7e486757a2 100644
|
|
||||||
--- a/configs/libretech-ac_defconfig
|
|
||||||
+++ b/configs/libretech-ac_defconfig
|
|
||||||
@@ -27,6 +27,7 @@ CONFIG_CMD_MMC=y
|
|
||||||
CONFIG_CMD_SF_TEST=y
|
|
||||||
CONFIG_CMD_SPI=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
|
|
||||||
@@ -69,6 +70,12 @@ CONFIG_USB_XHCI_DWC3=y
|
|
||||||
CONFIG_USB_XHCI_DWC3_OF_SIMPLE=y
|
|
||||||
CONFIG_USB_DWC3=y
|
|
||||||
CONFIG_USB_KEYBOARD=y
|
|
||||||
+# CONFIG_USB_DWC3_GADGET is not set
|
|
||||||
+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_DM_VIDEO=y
|
|
||||||
# CONFIG_VIDEO_BPP8 is not set
|
|
||||||
# CONFIG_VIDEO_BPP16 is not set
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
@ -1,39 +0,0 @@
|
|||||||
From c91bbf06c3b7489bc90a10c2bcaf20e84a251cd9 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
Date: Mon, 30 Mar 2020 11:27:29 +0200
|
|
||||||
Subject: [PATCH 15/33] FROMGIT: configs: khadas-vim2: Enable USB gadget with
|
|
||||||
Mass Storage function
|
|
||||||
|
|
||||||
Enable configs to support USB gadget and Mass Storage
|
|
||||||
|
|
||||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
---
|
|
||||||
configs/khadas-vim2_defconfig | 7 +++++++
|
|
||||||
1 file changed, 7 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/configs/khadas-vim2_defconfig b/configs/khadas-vim2_defconfig
|
|
||||||
index 9cb377e55e..a533566410 100644
|
|
||||||
--- a/configs/khadas-vim2_defconfig
|
|
||||||
+++ b/configs/khadas-vim2_defconfig
|
|
||||||
@@ -20,6 +20,7 @@ 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
|
|
||||||
@@ -49,4 +50,10 @@ CONFIG_USB_XHCI_HCD=y
|
|
||||||
CONFIG_USB_XHCI_DWC3=y
|
|
||||||
CONFIG_USB_XHCI_DWC3_OF_SIMPLE=y
|
|
||||||
CONFIG_USB_DWC3=y
|
|
||||||
+# CONFIG_USB_DWC3_GADGET is not set
|
|
||||||
+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_OF_LIBFDT_OVERLAY=y
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
@ -1,39 +0,0 @@
|
|||||||
From 742693fe45c96a7033a861b78527b63f0847a368 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
Date: Mon, 30 Mar 2020 11:27:30 +0200
|
|
||||||
Subject: [PATCH 16/33] FROMGIT: configs: khadas-vim: Enable USB gadget with
|
|
||||||
Mass Storage function
|
|
||||||
|
|
||||||
Enable configs to support USB gadget and Mass Storage
|
|
||||||
|
|
||||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
---
|
|
||||||
configs/khadas-vim_defconfig | 7 +++++++
|
|
||||||
1 file changed, 7 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/configs/khadas-vim_defconfig b/configs/khadas-vim_defconfig
|
|
||||||
index e18a5e62bb..8a0af5cebb 100644
|
|
||||||
--- a/configs/khadas-vim_defconfig
|
|
||||||
+++ b/configs/khadas-vim_defconfig
|
|
||||||
@@ -20,6 +20,7 @@ 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
|
|
||||||
@@ -50,4 +51,10 @@ CONFIG_USB_XHCI_HCD=y
|
|
||||||
CONFIG_USB_XHCI_DWC3=y
|
|
||||||
CONFIG_USB_XHCI_DWC3_OF_SIMPLE=y
|
|
||||||
CONFIG_USB_DWC3=y
|
|
||||||
+# CONFIG_USB_DWC3_GADGET is not set
|
|
||||||
+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_OF_LIBFDT_OVERLAY=y
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
@ -1,41 +0,0 @@
|
|||||||
From d404f6bfbb231b38b0248f79c0b2491324b7a8a7 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
Date: Mon, 30 Mar 2020 11:27:31 +0200
|
|
||||||
Subject: [PATCH 17/33] FROMGIT: configs: libretech-s905d-pc: Enable USB gadget
|
|
||||||
with Mass Storage function
|
|
||||||
|
|
||||||
Enable configs to support USB gadget and Mass Storage
|
|
||||||
|
|
||||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
---
|
|
||||||
configs/libretech-s905d-pc_defconfig | 7 +++++++
|
|
||||||
1 file changed, 7 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/configs/libretech-s905d-pc_defconfig b/configs/libretech-s905d-pc_defconfig
|
|
||||||
index 7e0c95872a..531d519a7c 100644
|
|
||||||
--- a/configs/libretech-s905d-pc_defconfig
|
|
||||||
+++ b/configs/libretech-s905d-pc_defconfig
|
|
||||||
@@ -26,6 +26,7 @@ CONFIG_CMD_SF=y
|
|
||||||
CONFIG_CMD_SF_TEST=y
|
|
||||||
CONFIG_CMD_SPI=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
|
|
||||||
@@ -65,6 +66,12 @@ CONFIG_USB_XHCI_HCD=y
|
|
||||||
CONFIG_USB_XHCI_DWC3=y
|
|
||||||
CONFIG_USB_XHCI_DWC3_OF_SIMPLE=y
|
|
||||||
CONFIG_USB_DWC3=y
|
|
||||||
+# CONFIG_USB_DWC3_GADGET is not set
|
|
||||||
+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_USB_KEYBOARD=y
|
|
||||||
CONFIG_DM_VIDEO=y
|
|
||||||
CONFIG_SYS_WHITE_ON_BLACK=y
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
@ -1,41 +0,0 @@
|
|||||||
From 86650226bce789960a7fd8d36d2e7f57f2d0d9b1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
Date: Mon, 30 Mar 2020 11:27:32 +0200
|
|
||||||
Subject: [PATCH 18/33] FROMGIT: configs: libretech-s912-pc: Enable USB gadget
|
|
||||||
with Mass Storage function
|
|
||||||
|
|
||||||
Enable configs to support USB gadget and Mass Storage
|
|
||||||
|
|
||||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
---
|
|
||||||
configs/libretech-s912-pc_defconfig | 7 +++++++
|
|
||||||
1 file changed, 7 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/configs/libretech-s912-pc_defconfig b/configs/libretech-s912-pc_defconfig
|
|
||||||
index 5f4ee329e2..595ec21da7 100644
|
|
||||||
--- a/configs/libretech-s912-pc_defconfig
|
|
||||||
+++ b/configs/libretech-s912-pc_defconfig
|
|
||||||
@@ -26,6 +26,7 @@ CONFIG_CMD_SF=y
|
|
||||||
CONFIG_CMD_SF_TEST=y
|
|
||||||
CONFIG_CMD_SPI=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
|
|
||||||
@@ -65,6 +66,12 @@ CONFIG_USB_XHCI_HCD=y
|
|
||||||
CONFIG_USB_XHCI_DWC3=y
|
|
||||||
CONFIG_USB_XHCI_DWC3_OF_SIMPLE=y
|
|
||||||
CONFIG_USB_DWC3=y
|
|
||||||
+# CONFIG_USB_DWC3_GADGET is not set
|
|
||||||
+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_USB_KEYBOARD=y
|
|
||||||
CONFIG_DM_VIDEO=y
|
|
||||||
CONFIG_SYS_WHITE_ON_BLACK=y
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
@ -1,38 +0,0 @@
|
|||||||
From 885bb5a00c3d58123a8f4efa8ef03acf27b45301 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
Date: Mon, 20 Apr 2020 15:46:30 +0200
|
|
||||||
Subject: [PATCH 19/33] FROMGIT: clk: meson: g12a: add missing SD_EMMC_A
|
|
||||||
controller gates
|
|
||||||
|
|
||||||
Add missing SD_EMMC_A controller gates needed for probe of the A
|
|
||||||
controller, otherwise leading to a freeze of the SoC after b3d69aa596.
|
|
||||||
|
|
||||||
Fixes: b3d69aa596 ("clk: meson: reset mmc clock on probe")
|
|
||||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
---
|
|
||||||
drivers/clk/meson/g12a.c | 2 ++
|
|
||||||
1 file changed, 2 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/drivers/clk/meson/g12a.c b/drivers/clk/meson/g12a.c
|
|
||||||
index 9e6beca94a..5a94e5560f 100644
|
|
||||||
--- a/drivers/clk/meson/g12a.c
|
|
||||||
+++ b/drivers/clk/meson/g12a.c
|
|
||||||
@@ -112,6 +112,7 @@ static struct meson_gate gates[NUM_CLKS] = {
|
|
||||||
MESON_GATE(CLKID_I2C, HHI_GCLK_MPEG0, 9),
|
|
||||||
MESON_GATE(CLKID_UART0, HHI_GCLK_MPEG0, 13),
|
|
||||||
MESON_GATE(CLKID_SPICC1, HHI_GCLK_MPEG0, 14),
|
|
||||||
+ MESON_GATE(CLKID_SD_EMMC_A, HHI_GCLK_MPEG0, 4),
|
|
||||||
MESON_GATE(CLKID_SD_EMMC_B, HHI_GCLK_MPEG0, 25),
|
|
||||||
MESON_GATE(CLKID_SD_EMMC_C, HHI_GCLK_MPEG0, 26),
|
|
||||||
MESON_GATE(CLKID_ETH, HHI_GCLK_MPEG1, 3),
|
|
||||||
@@ -127,6 +128,7 @@ static struct meson_gate gates[NUM_CLKS] = {
|
|
||||||
MESON_GATE(CLKID_FCLK_DIV4, HHI_FIX_PLL_CNTL1, 21),
|
|
||||||
MESON_GATE(CLKID_FCLK_DIV5, HHI_FIX_PLL_CNTL1, 22),
|
|
||||||
MESON_GATE(CLKID_FCLK_DIV7, HHI_FIX_PLL_CNTL1, 23),
|
|
||||||
+ MESON_GATE(CLKID_SD_EMMC_A_CLK0, HHI_SD_EMMC_CLK_CNTL, 7),
|
|
||||||
MESON_GATE(CLKID_SD_EMMC_B_CLK0, HHI_SD_EMMC_CLK_CNTL, 23),
|
|
||||||
MESON_GATE(CLKID_SD_EMMC_C_CLK0, HHI_NAND_CLK_CNTL, 7),
|
|
||||||
MESON_GATE(CLKID_VPU_0, HHI_VPU_CLK_CNTL, 8),
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
@ -1,292 +0,0 @@
|
|||||||
From 60502f9c7098cc48fe332b7c596aecf4e995e2c8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Beniamino Galvani <b.galvani@gmail.com>
|
|
||||||
Date: Sun, 18 Aug 2019 15:42:54 +0200
|
|
||||||
Subject: [PATCH 20/33] FROMGIT: phy: meson: add GXBB PHY driver
|
|
||||||
|
|
||||||
This adds support for the USB PHY found on Amlogic GXBB SoCs.
|
|
||||||
|
|
||||||
Signed-off-by: Beniamino Galvani <b.galvani@gmail.com>
|
|
||||||
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
---
|
|
||||||
drivers/phy/Kconfig | 8 ++
|
|
||||||
drivers/phy/Makefile | 1 +
|
|
||||||
drivers/phy/meson-gxbb-usb2.c | 235 ++++++++++++++++++++++++++++++++++
|
|
||||||
3 files changed, 244 insertions(+)
|
|
||||||
create mode 100644 drivers/phy/meson-gxbb-usb2.c
|
|
||||||
|
|
||||||
diff --git a/drivers/phy/Kconfig b/drivers/phy/Kconfig
|
|
||||||
index a72f34f0d4..1e38c8741f 100644
|
|
||||||
--- a/drivers/phy/Kconfig
|
|
||||||
+++ b/drivers/phy/Kconfig
|
|
||||||
@@ -154,6 +154,14 @@ config PHY_STM32_USBPHYC
|
|
||||||
between an HS USB OTG controller and an HS USB Host controller,
|
|
||||||
selected by an USB switch.
|
|
||||||
|
|
||||||
+config MESON_GXBB_USB_PHY
|
|
||||||
+ bool "Amlogic Meson GXBB USB PHY"
|
|
||||||
+ depends on PHY && ARCH_MESON && MESON_GXBB
|
|
||||||
+ imply REGMAP
|
|
||||||
+ help
|
|
||||||
+ This is the generic phy driver for the Amlogic Meson GXBB
|
|
||||||
+ USB2 PHY.
|
|
||||||
+
|
|
||||||
config MESON_GXL_USB_PHY
|
|
||||||
bool "Amlogic Meson GXL USB PHYs"
|
|
||||||
depends on PHY && ARCH_MESON && (MESON_GXL || MESON_GXM)
|
|
||||||
diff --git a/drivers/phy/Makefile b/drivers/phy/Makefile
|
|
||||||
index 43ce62e08c..74e8d931d3 100644
|
|
||||||
--- a/drivers/phy/Makefile
|
|
||||||
+++ b/drivers/phy/Makefile
|
|
||||||
@@ -16,6 +16,7 @@ obj-$(CONFIG_STI_USB_PHY) += sti_usb_phy.o
|
|
||||||
obj-$(CONFIG_PHY_RCAR_GEN2) += phy-rcar-gen2.o
|
|
||||||
obj-$(CONFIG_PHY_RCAR_GEN3) += phy-rcar-gen3.o
|
|
||||||
obj-$(CONFIG_PHY_STM32_USBPHYC) += phy-stm32-usbphyc.o
|
|
||||||
+obj-$(CONFIG_MESON_GXBB_USB_PHY) += meson-gxbb-usb2.o
|
|
||||||
obj-$(CONFIG_MESON_GXL_USB_PHY) += meson-gxl-usb2.o meson-gxl-usb3.o
|
|
||||||
obj-$(CONFIG_MESON_G12A_USB_PHY) += meson-g12a-usb2.o meson-g12a-usb3-pcie.o
|
|
||||||
obj-$(CONFIG_MSM8916_USB_PHY) += msm8916-usbh-phy.o
|
|
||||||
diff --git a/drivers/phy/meson-gxbb-usb2.c b/drivers/phy/meson-gxbb-usb2.c
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000000..88c2ec69b2
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/drivers/phy/meson-gxbb-usb2.c
|
|
||||||
@@ -0,0 +1,235 @@
|
|
||||||
+// SPDX-License-Identifier: GPL-2.0+
|
|
||||||
+/*
|
|
||||||
+ * Meson8, Meson8b and GXBB USB2 PHY driver
|
|
||||||
+ *
|
|
||||||
+ * Copyright (C) 2016 Martin Blumenstingl <martin.blumenstingl@googlemail.com>
|
|
||||||
+ * Copyright (C) 2018 BayLibre, SAS
|
|
||||||
+ *
|
|
||||||
+ * Author: Beniamino Galvani <b.galvani@gmail.com>
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+#include <common.h>
|
|
||||||
+#include <clk.h>
|
|
||||||
+#include <dm.h>
|
|
||||||
+#include <generic-phy.h>
|
|
||||||
+#include <power/regulator.h>
|
|
||||||
+#include <regmap.h>
|
|
||||||
+#include <reset.h>
|
|
||||||
+
|
|
||||||
+#define REG_CONFIG 0x00
|
|
||||||
+ #define REG_CONFIG_CLK_EN BIT(0)
|
|
||||||
+ #define REG_CONFIG_CLK_SEL_MASK GENMASK(3, 1)
|
|
||||||
+ #define REG_CONFIG_CLK_DIV_MASK GENMASK(10, 4)
|
|
||||||
+ #define REG_CONFIG_CLK_32k_ALTSEL BIT(15)
|
|
||||||
+ #define REG_CONFIG_TEST_TRIG BIT(31)
|
|
||||||
+
|
|
||||||
+#define REG_CTRL 0x04
|
|
||||||
+ #define REG_CTRL_SOFT_PRST BIT(0)
|
|
||||||
+ #define REG_CTRL_SOFT_HRESET BIT(1)
|
|
||||||
+ #define REG_CTRL_SS_SCALEDOWN_MODE_MASK GENMASK(3, 2)
|
|
||||||
+ #define REG_CTRL_CLK_DET_RST BIT(4)
|
|
||||||
+ #define REG_CTRL_INTR_SEL BIT(5)
|
|
||||||
+ #define REG_CTRL_CLK_DETECTED BIT(8)
|
|
||||||
+ #define REG_CTRL_SOF_SENT_RCVD_TGL BIT(9)
|
|
||||||
+ #define REG_CTRL_SOF_TOGGLE_OUT BIT(10)
|
|
||||||
+ #define REG_CTRL_POWER_ON_RESET BIT(15)
|
|
||||||
+ #define REG_CTRL_SLEEPM BIT(16)
|
|
||||||
+ #define REG_CTRL_TX_BITSTUFF_ENN_H BIT(17)
|
|
||||||
+ #define REG_CTRL_TX_BITSTUFF_ENN BIT(18)
|
|
||||||
+ #define REG_CTRL_COMMON_ON BIT(19)
|
|
||||||
+ #define REG_CTRL_REF_CLK_SEL_MASK GENMASK(21, 20)
|
|
||||||
+ #define REG_CTRL_REF_CLK_SEL_SHIFT 20
|
|
||||||
+ #define REG_CTRL_FSEL_MASK GENMASK(24, 22)
|
|
||||||
+ #define REG_CTRL_FSEL_SHIFT 22
|
|
||||||
+ #define REG_CTRL_PORT_RESET BIT(25)
|
|
||||||
+ #define REG_CTRL_THREAD_ID_MASK GENMASK(31, 26)
|
|
||||||
+
|
|
||||||
+/* bits [31:26], [24:21] and [15:3] seem to be read-only */
|
|
||||||
+#define REG_ADP_BC 0x0c
|
|
||||||
+ #define REG_ADP_BC_VBUS_VLD_EXT_SEL BIT(0)
|
|
||||||
+ #define REG_ADP_BC_VBUS_VLD_EXT BIT(1)
|
|
||||||
+ #define REG_ADP_BC_OTG_DISABLE BIT(2)
|
|
||||||
+ #define REG_ADP_BC_ID_PULLUP BIT(3)
|
|
||||||
+ #define REG_ADP_BC_DRV_VBUS BIT(4)
|
|
||||||
+ #define REG_ADP_BC_ADP_PRB_EN BIT(5)
|
|
||||||
+ #define REG_ADP_BC_ADP_DISCHARGE BIT(6)
|
|
||||||
+ #define REG_ADP_BC_ADP_CHARGE BIT(7)
|
|
||||||
+ #define REG_ADP_BC_SESS_END BIT(8)
|
|
||||||
+ #define REG_ADP_BC_DEVICE_SESS_VLD BIT(9)
|
|
||||||
+ #define REG_ADP_BC_B_VALID BIT(10)
|
|
||||||
+ #define REG_ADP_BC_A_VALID BIT(11)
|
|
||||||
+ #define REG_ADP_BC_ID_DIG BIT(12)
|
|
||||||
+ #define REG_ADP_BC_VBUS_VALID BIT(13)
|
|
||||||
+ #define REG_ADP_BC_ADP_PROBE BIT(14)
|
|
||||||
+ #define REG_ADP_BC_ADP_SENSE BIT(15)
|
|
||||||
+ #define REG_ADP_BC_ACA_ENABLE BIT(16)
|
|
||||||
+ #define REG_ADP_BC_DCD_ENABLE BIT(17)
|
|
||||||
+ #define REG_ADP_BC_VDAT_DET_EN_B BIT(18)
|
|
||||||
+ #define REG_ADP_BC_VDAT_SRC_EN_B BIT(19)
|
|
||||||
+ #define REG_ADP_BC_CHARGE_SEL BIT(20)
|
|
||||||
+ #define REG_ADP_BC_CHARGE_DETECT BIT(21)
|
|
||||||
+ #define REG_ADP_BC_ACA_PIN_RANGE_C BIT(22)
|
|
||||||
+ #define REG_ADP_BC_ACA_PIN_RANGE_B BIT(23)
|
|
||||||
+ #define REG_ADP_BC_ACA_PIN_RANGE_A BIT(24)
|
|
||||||
+ #define REG_ADP_BC_ACA_PIN_GND BIT(25)
|
|
||||||
+ #define REG_ADP_BC_ACA_PIN_FLOAT BIT(26)
|
|
||||||
+
|
|
||||||
+#define RESET_COMPLETE_TIME 500
|
|
||||||
+#define ACA_ENABLE_COMPLETE_TIME 50
|
|
||||||
+
|
|
||||||
+struct phy_meson_gxbb_usb2_priv {
|
|
||||||
+ struct regmap *regmap;
|
|
||||||
+ struct reset_ctl_bulk resets;
|
|
||||||
+#if CONFIG_IS_ENABLED(DM_REGULATOR)
|
|
||||||
+ struct udevice *phy_supply;
|
|
||||||
+#endif
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+static int phy_meson_gxbb_usb2_power_on(struct phy *phy)
|
|
||||||
+{
|
|
||||||
+ struct udevice *dev = phy->dev;
|
|
||||||
+ struct phy_meson_gxbb_usb2_priv *priv = dev_get_priv(dev);
|
|
||||||
+ uint val;
|
|
||||||
+
|
|
||||||
+#if CONFIG_IS_ENABLED(DM_REGULATOR)
|
|
||||||
+ if (priv->phy_supply) {
|
|
||||||
+ int ret = regulator_set_enable(priv->phy_supply, true);
|
|
||||||
+
|
|
||||||
+ if (ret)
|
|
||||||
+ return ret;
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+ regmap_update_bits(priv->regmap, REG_CONFIG,
|
|
||||||
+ REG_CONFIG_CLK_32k_ALTSEL,
|
|
||||||
+ REG_CONFIG_CLK_32k_ALTSEL);
|
|
||||||
+ regmap_update_bits(priv->regmap, REG_CTRL,
|
|
||||||
+ REG_CTRL_REF_CLK_SEL_MASK,
|
|
||||||
+ 0x2 << REG_CTRL_REF_CLK_SEL_SHIFT);
|
|
||||||
+ regmap_update_bits(priv->regmap, REG_CTRL,
|
|
||||||
+ REG_CTRL_FSEL_MASK,
|
|
||||||
+ 0x5 << REG_CTRL_FSEL_SHIFT);
|
|
||||||
+
|
|
||||||
+ /* reset the PHY */
|
|
||||||
+ regmap_update_bits(priv->regmap, REG_CTRL,
|
|
||||||
+ REG_CTRL_POWER_ON_RESET,
|
|
||||||
+ REG_CTRL_POWER_ON_RESET);
|
|
||||||
+ udelay(RESET_COMPLETE_TIME);
|
|
||||||
+ regmap_update_bits(priv->regmap, REG_CTRL,
|
|
||||||
+ REG_CTRL_POWER_ON_RESET,
|
|
||||||
+ 0);
|
|
||||||
+ udelay(RESET_COMPLETE_TIME);
|
|
||||||
+
|
|
||||||
+ regmap_update_bits(priv->regmap, REG_CTRL,
|
|
||||||
+ REG_CTRL_SOF_TOGGLE_OUT,
|
|
||||||
+ REG_CTRL_SOF_TOGGLE_OUT);
|
|
||||||
+
|
|
||||||
+ /* Set host mode */
|
|
||||||
+ regmap_update_bits(priv->regmap, REG_ADP_BC,
|
|
||||||
+ REG_ADP_BC_ACA_ENABLE,
|
|
||||||
+ REG_ADP_BC_ACA_ENABLE);
|
|
||||||
+ udelay(ACA_ENABLE_COMPLETE_TIME);
|
|
||||||
+
|
|
||||||
+ regmap_read(priv->regmap, REG_ADP_BC, &val);
|
|
||||||
+ if (val & REG_ADP_BC_ACA_PIN_FLOAT) {
|
|
||||||
+ pr_err("Error powering on GXBB USB PHY\n");
|
|
||||||
+ return -EINVAL;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int phy_meson_gxbb_usb2_power_off(struct phy *phy)
|
|
||||||
+{
|
|
||||||
+#if CONFIG_IS_ENABLED(DM_REGULATOR)
|
|
||||||
+ struct udevice *dev = phy->dev;
|
|
||||||
+ struct phy_meson_gxbb_usb2_priv *priv = dev_get_priv(dev);
|
|
||||||
+
|
|
||||||
+ if (priv->phy_supply) {
|
|
||||||
+ int ret = regulator_set_enable(priv->phy_supply, false);
|
|
||||||
+
|
|
||||||
+ if (ret)
|
|
||||||
+ return ret;
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static struct phy_ops meson_gxbb_usb2_phy_ops = {
|
|
||||||
+ .power_on = phy_meson_gxbb_usb2_power_on,
|
|
||||||
+ .power_off = phy_meson_gxbb_usb2_power_off,
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+static int meson_gxbb_usb2_phy_probe(struct udevice *dev)
|
|
||||||
+{
|
|
||||||
+ struct phy_meson_gxbb_usb2_priv *priv = dev_get_priv(dev);
|
|
||||||
+ struct clk clk_usb_general, clk_usb;
|
|
||||||
+ int ret;
|
|
||||||
+
|
|
||||||
+ ret = regmap_init_mem(dev_ofnode(dev), &priv->regmap);
|
|
||||||
+ if (ret)
|
|
||||||
+ return ret;
|
|
||||||
+
|
|
||||||
+ ret = clk_get_by_name(dev, "usb_general", &clk_usb_general);
|
|
||||||
+ if (ret)
|
|
||||||
+ return ret;
|
|
||||||
+
|
|
||||||
+ ret = clk_enable(&clk_usb_general);
|
|
||||||
+ if (ret && ret != -ENOSYS && ret != -ENOTSUPP) {
|
|
||||||
+ pr_err("Failed to enable PHY general clock\n");
|
|
||||||
+ return ret;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ ret = clk_get_by_name(dev, "usb", &clk_usb);
|
|
||||||
+ if (ret)
|
|
||||||
+ return ret;
|
|
||||||
+
|
|
||||||
+ ret = clk_enable(&clk_usb);
|
|
||||||
+ if (ret && ret != -ENOSYS && ret != -ENOTSUPP) {
|
|
||||||
+ pr_err("Failed to enable PHY clock\n");
|
|
||||||
+ return ret;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+#if CONFIG_IS_ENABLED(DM_REGULATOR)
|
|
||||||
+ ret = device_get_supply_regulator(dev, "phy-supply", &priv->phy_supply);
|
|
||||||
+ if (ret && ret != -ENOENT) {
|
|
||||||
+ pr_err("Failed to get PHY regulator\n");
|
|
||||||
+ return ret;
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
+ ret = reset_get_bulk(dev, &priv->resets);
|
|
||||||
+ if (!ret) {
|
|
||||||
+ ret = reset_deassert_bulk(&priv->resets);
|
|
||||||
+ if (ret) {
|
|
||||||
+ pr_err("Failed to deassert reset\n");
|
|
||||||
+ return ret;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int meson_gxbb_usb2_phy_remove(struct udevice *dev)
|
|
||||||
+{
|
|
||||||
+ struct phy_meson_gxbb_usb2_priv *priv = dev_get_priv(dev);
|
|
||||||
+
|
|
||||||
+ return reset_release_bulk(&priv->resets);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static const struct udevice_id meson_gxbb_usb2_phy_ids[] = {
|
|
||||||
+ { .compatible = "amlogic,meson8-usb2-phy" },
|
|
||||||
+ { .compatible = "amlogic,meson8b-usb2-phy" },
|
|
||||||
+ { .compatible = "amlogic,meson-gxbb-usb2-phy" },
|
|
||||||
+ { }
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+U_BOOT_DRIVER(meson_gxbb_usb2_phy) = {
|
|
||||||
+ .name = "meson_gxbb_usb2_phy",
|
|
||||||
+ .id = UCLASS_PHY,
|
|
||||||
+ .of_match = meson_gxbb_usb2_phy_ids,
|
|
||||||
+ .probe = meson_gxbb_usb2_phy_probe,
|
|
||||||
+ .remove = meson_gxbb_usb2_phy_remove,
|
|
||||||
+ .ops = &meson_gxbb_usb2_phy_ops,
|
|
||||||
+ .priv_auto_alloc_size = sizeof(struct phy_meson_gxbb_usb2_priv),
|
|
||||||
+};
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
@ -1,817 +0,0 @@
|
|||||||
From ba4630b67a7cdd15921b4a11b99c0c38ab1f63d4 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
Date: Mon, 20 Apr 2020 15:44:41 +0200
|
|
||||||
Subject: [PATCH 21/33] FROMGIT: arm64: dts: meson: sync dt and bindings from
|
|
||||||
v5.7-rc1
|
|
||||||
|
|
||||||
Sync the device tree and dt-bindings from Linux v5.7-rc1 8f3d9f354286
|
|
||||||
("Linux 5.7-rc1").
|
|
||||||
|
|
||||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
---
|
|
||||||
arch/arm/dts/meson-axg-s400.dts | 6 +-
|
|
||||||
arch/arm/dts/meson-g12-common.dtsi | 136 +++++++++++++++++++++--
|
|
||||||
arch/arm/dts/meson-g12.dtsi | 1 +
|
|
||||||
arch/arm/dts/meson-g12a-sei510.dts | 4 +-
|
|
||||||
arch/arm/dts/meson-g12a-u200.dts | 2 +-
|
|
||||||
arch/arm/dts/meson-g12b-khadas-vim3.dtsi | 4 +-
|
|
||||||
arch/arm/dts/meson-g12b-odroid-n2.dts | 25 ++++-
|
|
||||||
arch/arm/dts/meson-gx.dtsi | 52 +++++++++
|
|
||||||
arch/arm/dts/meson-gxbb-odroidc2.dts | 1 +
|
|
||||||
arch/arm/dts/meson-gxl-s905x-p212.dtsi | 9 +-
|
|
||||||
arch/arm/dts/meson-gxm-khadas-vim2.dts | 89 +++------------
|
|
||||||
arch/arm/dts/meson-gxm.dtsi | 28 +++++
|
|
||||||
arch/arm/dts/meson-khadas-vim3.dtsi | 24 +++-
|
|
||||||
arch/arm/dts/meson-sm1-khadas-vim3l.dts | 8 +-
|
|
||||||
arch/arm/dts/meson-sm1-sei610.dts | 3 +-
|
|
||||||
arch/arm/dts/meson-sm1.dtsi | 1 +
|
|
||||||
include/dt-bindings/clock/g12a-clkc.h | 2 +
|
|
||||||
include/dt-bindings/clock/gxbb-clkc.h | 1 +
|
|
||||||
18 files changed, 295 insertions(+), 101 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/arch/arm/dts/meson-axg-s400.dts b/arch/arm/dts/meson-axg-s400.dts
|
|
||||||
index 4cd2d59518..cb1360ae12 100644
|
|
||||||
--- a/arch/arm/dts/meson-axg-s400.dts
|
|
||||||
+++ b/arch/arm/dts/meson-axg-s400.dts
|
|
||||||
@@ -313,15 +313,15 @@
|
|
||||||
dai-tdm-slot-rx-mask-1 = <1 1>;
|
|
||||||
mclk-fs = <256>;
|
|
||||||
|
|
||||||
- codec@0 {
|
|
||||||
+ codec-0 {
|
|
||||||
sound-dai = <&lineout>;
|
|
||||||
};
|
|
||||||
|
|
||||||
- codec@1 {
|
|
||||||
+ codec-1 {
|
|
||||||
sound-dai = <&speaker_amp1>;
|
|
||||||
};
|
|
||||||
|
|
||||||
- codec@2 {
|
|
||||||
+ codec-2 {
|
|
||||||
sound-dai = <&linein>;
|
|
||||||
};
|
|
||||||
|
|
||||||
diff --git a/arch/arm/dts/meson-g12-common.dtsi b/arch/arm/dts/meson-g12-common.dtsi
|
|
||||||
index abe04f4ad7..0882ea215b 100644
|
|
||||||
--- a/arch/arm/dts/meson-g12-common.dtsi
|
|
||||||
+++ b/arch/arm/dts/meson-g12-common.dtsi
|
|
||||||
@@ -295,17 +295,9 @@
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
- emmc_pins: emmc {
|
|
||||||
+ emmc_ctrl_pins: emmc-ctrl {
|
|
||||||
mux-0 {
|
|
||||||
- groups = "emmc_nand_d0",
|
|
||||||
- "emmc_nand_d1",
|
|
||||||
- "emmc_nand_d2",
|
|
||||||
- "emmc_nand_d3",
|
|
||||||
- "emmc_nand_d4",
|
|
||||||
- "emmc_nand_d5",
|
|
||||||
- "emmc_nand_d6",
|
|
||||||
- "emmc_nand_d7",
|
|
||||||
- "emmc_cmd";
|
|
||||||
+ groups = "emmc_cmd";
|
|
||||||
function = "emmc";
|
|
||||||
bias-pull-up;
|
|
||||||
drive-strength-microamp = <4000>;
|
|
||||||
@@ -319,6 +311,34 @@
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
+ emmc_data_4b_pins: emmc-data-4b {
|
|
||||||
+ mux-0 {
|
|
||||||
+ groups = "emmc_nand_d0",
|
|
||||||
+ "emmc_nand_d1",
|
|
||||||
+ "emmc_nand_d2",
|
|
||||||
+ "emmc_nand_d3";
|
|
||||||
+ function = "emmc";
|
|
||||||
+ bias-pull-up;
|
|
||||||
+ drive-strength-microamp = <4000>;
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ emmc_data_8b_pins: emmc-data-8b {
|
|
||||||
+ mux-0 {
|
|
||||||
+ groups = "emmc_nand_d0",
|
|
||||||
+ "emmc_nand_d1",
|
|
||||||
+ "emmc_nand_d2",
|
|
||||||
+ "emmc_nand_d3",
|
|
||||||
+ "emmc_nand_d4",
|
|
||||||
+ "emmc_nand_d5",
|
|
||||||
+ "emmc_nand_d6",
|
|
||||||
+ "emmc_nand_d7";
|
|
||||||
+ function = "emmc";
|
|
||||||
+ bias-pull-up;
|
|
||||||
+ drive-strength-microamp = <4000>;
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
emmc_ds_pins: emmc-ds {
|
|
||||||
mux {
|
|
||||||
groups = "emmc_nand_ds";
|
|
||||||
@@ -573,6 +593,17 @@
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
+ nor_pins: nor {
|
|
||||||
+ mux {
|
|
||||||
+ groups = "nor_d",
|
|
||||||
+ "nor_q",
|
|
||||||
+ "nor_c",
|
|
||||||
+ "nor_cs";
|
|
||||||
+ function = "nor";
|
|
||||||
+ bias-disable;
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
pdm_din0_a_pins: pdm-din0-a {
|
|
||||||
mux {
|
|
||||||
groups = "pdm_din0_a";
|
|
||||||
@@ -957,6 +988,57 @@
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
+ spicc0_x_pins: spicc0-x {
|
|
||||||
+ mux {
|
|
||||||
+ groups = "spi0_mosi_x",
|
|
||||||
+ "spi0_miso_x",
|
|
||||||
+ "spi0_clk_x";
|
|
||||||
+ function = "spi0";
|
|
||||||
+ drive-strength-microamp = <4000>;
|
|
||||||
+ bias-disable;
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ spicc0_ss0_x_pins: spicc0-ss0-x {
|
|
||||||
+ mux {
|
|
||||||
+ groups = "spi0_ss0_x";
|
|
||||||
+ function = "spi0";
|
|
||||||
+ drive-strength-microamp = <4000>;
|
|
||||||
+ bias-disable;
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ spicc0_c_pins: spicc0-c {
|
|
||||||
+ mux {
|
|
||||||
+ groups = "spi0_mosi_c",
|
|
||||||
+ "spi0_miso_c",
|
|
||||||
+ "spi0_ss0_c",
|
|
||||||
+ "spi0_clk_c";
|
|
||||||
+ function = "spi0";
|
|
||||||
+ drive-strength-microamp = <4000>;
|
|
||||||
+ bias-disable;
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ spicc1_pins: spicc1 {
|
|
||||||
+ mux {
|
|
||||||
+ groups = "spi1_mosi",
|
|
||||||
+ "spi1_miso",
|
|
||||||
+ "spi1_clk";
|
|
||||||
+ function = "spi1";
|
|
||||||
+ drive-strength-microamp = <4000>;
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ spicc1_ss0_pins: spicc1-ss0 {
|
|
||||||
+ mux {
|
|
||||||
+ groups = "spi1_ss0";
|
|
||||||
+ function = "spi1";
|
|
||||||
+ drive-strength-microamp = <4000>;
|
|
||||||
+ bias-disable;
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
tdm_a_din0_pins: tdm-a-din0 {
|
|
||||||
mux {
|
|
||||||
groups = "tdm_a_din0";
|
|
||||||
@@ -2051,6 +2133,39 @@
|
|
||||||
amlogic,channel-interrupts = <64 65 66 67 68 69 70 71>;
|
|
||||||
};
|
|
||||||
|
|
||||||
+ spicc0: spi@13000 {
|
|
||||||
+ compatible = "amlogic,meson-g12a-spicc";
|
|
||||||
+ reg = <0x0 0x13000 0x0 0x44>;
|
|
||||||
+ interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
|
|
||||||
+ clocks = <&clkc CLKID_SPICC0>,
|
|
||||||
+ <&clkc CLKID_SPICC0_SCLK>;
|
|
||||||
+ clock-names = "core", "pclk";
|
|
||||||
+ #address-cells = <1>;
|
|
||||||
+ #size-cells = <0>;
|
|
||||||
+ status = "disabled";
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ spicc1: spi@15000 {
|
|
||||||
+ compatible = "amlogic,meson-g12a-spicc";
|
|
||||||
+ reg = <0x0 0x15000 0x0 0x44>;
|
|
||||||
+ interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
|
|
||||||
+ clocks = <&clkc CLKID_SPICC1>,
|
|
||||||
+ <&clkc CLKID_SPICC1_SCLK>;
|
|
||||||
+ clock-names = "core", "pclk";
|
|
||||||
+ #address-cells = <1>;
|
|
||||||
+ #size-cells = <0>;
|
|
||||||
+ status = "disabled";
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ spifc: spi@14000 {
|
|
||||||
+ compatible = "amlogic,meson-gxbb-spifc";
|
|
||||||
+ status = "disabled";
|
|
||||||
+ reg = <0x0 0x14000 0x0 0x80>;
|
|
||||||
+ #address-cells = <1>;
|
|
||||||
+ #size-cells = <0>;
|
|
||||||
+ clocks = <&clkc CLKID_CLK81>;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
pwm_ef: pwm@19000 {
|
|
||||||
compatible = "amlogic,meson-g12a-ee-pwm";
|
|
||||||
reg = <0x0 0x19000 0x0 0x20>;
|
|
||||||
@@ -2220,6 +2335,7 @@
|
|
||||||
dr_mode = "host";
|
|
||||||
snps,dis_u2_susphy_quirk;
|
|
||||||
snps,quirk-frame-length-adjustment;
|
|
||||||
+ snps,parkmode-disable-ss-quirk;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
diff --git a/arch/arm/dts/meson-g12.dtsi b/arch/arm/dts/meson-g12.dtsi
|
|
||||||
index 03054c4788..55d39020ec 100644
|
|
||||||
--- a/arch/arm/dts/meson-g12.dtsi
|
|
||||||
+++ b/arch/arm/dts/meson-g12.dtsi
|
|
||||||
@@ -56,6 +56,7 @@
|
|
||||||
<&clkc_audio AUD_CLKID_PDM_DCLK>,
|
|
||||||
<&clkc_audio AUD_CLKID_PDM_SYSCLK>;
|
|
||||||
clock-names = "pclk", "dclk", "sysclk";
|
|
||||||
+ resets = <&clkc_audio AUD_RESET_PDM>;
|
|
||||||
status = "disabled";
|
|
||||||
};
|
|
||||||
|
|
||||||
diff --git a/arch/arm/dts/meson-g12a-sei510.dts b/arch/arm/dts/meson-g12a-sei510.dts
|
|
||||||
index 2ac9e3a43b..b00d0468c7 100644
|
|
||||||
--- a/arch/arm/dts/meson-g12a-sei510.dts
|
|
||||||
+++ b/arch/arm/dts/meson-g12a-sei510.dts
|
|
||||||
@@ -269,7 +269,7 @@
|
|
||||||
dai-tdm-slot-tx-mask-3 = <1 1>;
|
|
||||||
mclk-fs = <256>;
|
|
||||||
|
|
||||||
- codec@0 {
|
|
||||||
+ codec {
|
|
||||||
sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
@@ -472,7 +472,7 @@
|
|
||||||
/* eMMC */
|
|
||||||
&sd_emmc_c {
|
|
||||||
status = "okay";
|
|
||||||
- pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
|
|
||||||
+ pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>;
|
|
||||||
pinctrl-1 = <&emmc_clk_gate_pins>;
|
|
||||||
pinctrl-names = "default", "clk-gate";
|
|
||||||
|
|
||||||
diff --git a/arch/arm/dts/meson-g12a-u200.dts b/arch/arm/dts/meson-g12a-u200.dts
|
|
||||||
index 2a324f0136..a26bfe7255 100644
|
|
||||||
--- a/arch/arm/dts/meson-g12a-u200.dts
|
|
||||||
+++ b/arch/arm/dts/meson-g12a-u200.dts
|
|
||||||
@@ -271,7 +271,7 @@
|
|
||||||
/* eMMC */
|
|
||||||
&sd_emmc_c {
|
|
||||||
status = "okay";
|
|
||||||
- pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
|
|
||||||
+ pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>;
|
|
||||||
pinctrl-1 = <&emmc_clk_gate_pins>;
|
|
||||||
pinctrl-names = "default", "clk-gate";
|
|
||||||
|
|
||||||
diff --git a/arch/arm/dts/meson-g12b-khadas-vim3.dtsi b/arch/arm/dts/meson-g12b-khadas-vim3.dtsi
|
|
||||||
index 554863429a..c33e85fbda 100644
|
|
||||||
--- a/arch/arm/dts/meson-g12b-khadas-vim3.dtsi
|
|
||||||
+++ b/arch/arm/dts/meson-g12b-khadas-vim3.dtsi
|
|
||||||
@@ -8,6 +8,8 @@
|
|
||||||
#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
|
|
||||||
|
|
||||||
/ {
|
|
||||||
+ model = "Khadas VIM3";
|
|
||||||
+
|
|
||||||
vddcpu_a: regulator-vddcpu-a {
|
|
||||||
/*
|
|
||||||
* MP8756GD Regulator.
|
|
||||||
@@ -48,7 +50,7 @@
|
|
||||||
|
|
||||||
sound {
|
|
||||||
compatible = "amlogic,axg-sound-card";
|
|
||||||
- model = "G12A-KHADAS-VIM3";
|
|
||||||
+ model = "G12B-KHADAS-VIM3";
|
|
||||||
audio-aux-devs = <&tdmout_b>;
|
|
||||||
audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
|
|
||||||
"TDMOUT_B IN 1", "FRDDR_B OUT 1",
|
|
||||||
diff --git a/arch/arm/dts/meson-g12b-odroid-n2.dts b/arch/arm/dts/meson-g12b-odroid-n2.dts
|
|
||||||
index 0e54c1dc28..169ea283d4 100644
|
|
||||||
--- a/arch/arm/dts/meson-g12b-odroid-n2.dts
|
|
||||||
+++ b/arch/arm/dts/meson-g12b-odroid-n2.dts
|
|
||||||
@@ -208,7 +208,7 @@
|
|
||||||
|
|
||||||
sound {
|
|
||||||
compatible = "amlogic,axg-sound-card";
|
|
||||||
- model = "G12A-ODROIDN2";
|
|
||||||
+ model = "G12B-ODROID-N2";
|
|
||||||
audio-aux-devs = <&tdmout_b>;
|
|
||||||
audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
|
|
||||||
"TDMOUT_B IN 1", "FRDDR_B OUT 1",
|
|
||||||
@@ -435,7 +435,7 @@
|
|
||||||
/* eMMC */
|
|
||||||
&sd_emmc_c {
|
|
||||||
status = "okay";
|
|
||||||
- pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
|
|
||||||
+ pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>;
|
|
||||||
pinctrl-1 = <&emmc_clk_gate_pins>;
|
|
||||||
pinctrl-names = "default", "clk-gate";
|
|
||||||
|
|
||||||
@@ -451,6 +451,27 @@
|
|
||||||
vqmmc-supply = <&flash_1v8>;
|
|
||||||
};
|
|
||||||
|
|
||||||
+/*
|
|
||||||
+ * EMMC_D4, EMMC_D5, EMMC_D6 and EMMC_D7 pins are shared between SPI NOR pins
|
|
||||||
+ * and eMMC Data 4 to 7 pins.
|
|
||||||
+ * Replace emmc_data_8b_pins to emmc_data_4b_pins from sd_emmc_c pinctrl-0,
|
|
||||||
+ * and change bus-width to 4 then spifc can be enabled.
|
|
||||||
+ * The SW1 slide should also be set to the correct position.
|
|
||||||
+ */
|
|
||||||
+&spifc {
|
|
||||||
+ status = "disabled";
|
|
||||||
+ pinctrl-0 = <&nor_pins>;
|
|
||||||
+ pinctrl-names = "default";
|
|
||||||
+
|
|
||||||
+ mx25u64: spi-flash@0 {
|
|
||||||
+ #address-cells = <1>;
|
|
||||||
+ #size-cells = <1>;
|
|
||||||
+ compatible = "mxicy,mx25u6435f", "jedec,spi-nor";
|
|
||||||
+ reg = <0>;
|
|
||||||
+ spi-max-frequency = <104000000>;
|
|
||||||
+ };
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
&tdmif_b {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
diff --git a/arch/arm/dts/meson-gx.dtsi b/arch/arm/dts/meson-gx.dtsi
|
|
||||||
index 40db06e28b..03f79fe045 100644
|
|
||||||
--- a/arch/arm/dts/meson-gx.dtsi
|
|
||||||
+++ b/arch/arm/dts/meson-gx.dtsi
|
|
||||||
@@ -12,6 +12,7 @@
|
|
||||||
#include <dt-bindings/gpio/gpio.h>
|
|
||||||
#include <dt-bindings/interrupt-controller/irq.h>
|
|
||||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
||||||
+#include <dt-bindings/thermal/thermal.h>
|
|
||||||
|
|
||||||
/ {
|
|
||||||
interrupt-parent = <&gic>;
|
|
||||||
@@ -83,6 +84,7 @@
|
|
||||||
enable-method = "psci";
|
|
||||||
next-level-cache = <&l2>;
|
|
||||||
clocks = <&scpi_dvfs 0>;
|
|
||||||
+ #cooling-cells = <2>;
|
|
||||||
};
|
|
||||||
|
|
||||||
cpu1: cpu@1 {
|
|
||||||
@@ -92,6 +94,7 @@
|
|
||||||
enable-method = "psci";
|
|
||||||
next-level-cache = <&l2>;
|
|
||||||
clocks = <&scpi_dvfs 0>;
|
|
||||||
+ #cooling-cells = <2>;
|
|
||||||
};
|
|
||||||
|
|
||||||
cpu2: cpu@2 {
|
|
||||||
@@ -101,6 +104,7 @@
|
|
||||||
enable-method = "psci";
|
|
||||||
next-level-cache = <&l2>;
|
|
||||||
clocks = <&scpi_dvfs 0>;
|
|
||||||
+ #cooling-cells = <2>;
|
|
||||||
};
|
|
||||||
|
|
||||||
cpu3: cpu@3 {
|
|
||||||
@@ -110,6 +114,7 @@
|
|
||||||
enable-method = "psci";
|
|
||||||
next-level-cache = <&l2>;
|
|
||||||
clocks = <&scpi_dvfs 0>;
|
|
||||||
+ #cooling-cells = <2>;
|
|
||||||
};
|
|
||||||
|
|
||||||
l2: l2-cache0 {
|
|
||||||
@@ -117,6 +122,53 @@
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
+ thermal-zones {
|
|
||||||
+ cpu-thermal {
|
|
||||||
+ polling-delay-passive = <250>; /* milliseconds */
|
|
||||||
+ polling-delay = <1000>; /* milliseconds */
|
|
||||||
+
|
|
||||||
+ thermal-sensors = <&scpi_sensors 0>;
|
|
||||||
+
|
|
||||||
+ trips {
|
|
||||||
+ cpu_passive: cpu-passive {
|
|
||||||
+ temperature = <80000>; /* millicelsius */
|
|
||||||
+ hysteresis = <2000>; /* millicelsius */
|
|
||||||
+ type = "passive";
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ cpu_hot: cpu-hot {
|
|
||||||
+ temperature = <90000>; /* millicelsius */
|
|
||||||
+ hysteresis = <2000>; /* millicelsius */
|
|
||||||
+ type = "hot";
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ cpu_critical: cpu-critical {
|
|
||||||
+ temperature = <110000>; /* millicelsius */
|
|
||||||
+ hysteresis = <2000>; /* millicelsius */
|
|
||||||
+ type = "critical";
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ cpu_cooling_maps: cooling-maps {
|
|
||||||
+ map0 {
|
|
||||||
+ trip = <&cpu_passive>;
|
|
||||||
+ cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
|
||||||
+ <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
|
||||||
+ <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
|
||||||
+ <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ map1 {
|
|
||||||
+ trip = <&cpu_hot>;
|
|
||||||
+ cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
|
||||||
+ <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
|
||||||
+ <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
|
||||||
+ <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
arm-pmu {
|
|
||||||
compatible = "arm,cortex-a53-pmu";
|
|
||||||
interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
|
|
||||||
diff --git a/arch/arm/dts/meson-gxbb-odroidc2.dts b/arch/arm/dts/meson-gxbb-odroidc2.dts
|
|
||||||
index 6ded279c40..b46ef985bb 100644
|
|
||||||
--- a/arch/arm/dts/meson-gxbb-odroidc2.dts
|
|
||||||
+++ b/arch/arm/dts/meson-gxbb-odroidc2.dts
|
|
||||||
@@ -248,6 +248,7 @@
|
|
||||||
status = "okay";
|
|
||||||
pinctrl-0 = <&remote_input_ao_pins>;
|
|
||||||
pinctrl-names = "default";
|
|
||||||
+ linux,rc-map-name = "rc-odroid";
|
|
||||||
};
|
|
||||||
|
|
||||||
&gpio_ao {
|
|
||||||
diff --git a/arch/arm/dts/meson-gxl-s905x-p212.dtsi b/arch/arm/dts/meson-gxl-s905x-p212.dtsi
|
|
||||||
index 43eb7d149e..6ac678f88b 100644
|
|
||||||
--- a/arch/arm/dts/meson-gxl-s905x-p212.dtsi
|
|
||||||
+++ b/arch/arm/dts/meson-gxl-s905x-p212.dtsi
|
|
||||||
@@ -15,7 +15,6 @@
|
|
||||||
/ {
|
|
||||||
aliases {
|
|
||||||
serial0 = &uart_AO;
|
|
||||||
- serial1 = &uart_A;
|
|
||||||
ethernet0 = ðmac;
|
|
||||||
};
|
|
||||||
|
|
||||||
@@ -180,6 +179,14 @@
|
|
||||||
pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
|
|
||||||
pinctrl-names = "default";
|
|
||||||
uart-has-rtscts;
|
|
||||||
+
|
|
||||||
+ bluetooth {
|
|
||||||
+ compatible = "brcm,bcm43438-bt";
|
|
||||||
+ shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
|
|
||||||
+ max-speed = <2000000>;
|
|
||||||
+ clocks = <&wifi32k>;
|
|
||||||
+ clock-names = "lpo";
|
|
||||||
+ };
|
|
||||||
};
|
|
||||||
|
|
||||||
&uart_AO {
|
|
||||||
diff --git a/arch/arm/dts/meson-gxm-khadas-vim2.dts b/arch/arm/dts/meson-gxm-khadas-vim2.dts
|
|
||||||
index f82f25c1a5..27eeab71ec 100644
|
|
||||||
--- a/arch/arm/dts/meson-gxm-khadas-vim2.dts
|
|
||||||
+++ b/arch/arm/dts/meson-gxm-khadas-vim2.dts
|
|
||||||
@@ -8,7 +8,6 @@
|
|
||||||
/dts-v1/;
|
|
||||||
|
|
||||||
#include <dt-bindings/input/input.h>
|
|
||||||
-#include <dt-bindings/thermal/thermal.h>
|
|
||||||
|
|
||||||
#include "meson-gxm.dtsi"
|
|
||||||
|
|
||||||
@@ -100,49 +99,6 @@
|
|
||||||
clock-names = "ext_clock";
|
|
||||||
};
|
|
||||||
|
|
||||||
- thermal-zones {
|
|
||||||
- cpu-thermal {
|
|
||||||
- polling-delay-passive = <250>; /* milliseconds */
|
|
||||||
- polling-delay = <1000>; /* milliseconds */
|
|
||||||
-
|
|
||||||
- thermal-sensors = <&scpi_sensors 0>;
|
|
||||||
-
|
|
||||||
- trips {
|
|
||||||
- cpu_alert0: cpu-alert0 {
|
|
||||||
- temperature = <70000>; /* millicelsius */
|
|
||||||
- hysteresis = <2000>; /* millicelsius */
|
|
||||||
- type = "active";
|
|
||||||
- };
|
|
||||||
-
|
|
||||||
- cpu_alert1: cpu-alert1 {
|
|
||||||
- temperature = <80000>; /* millicelsius */
|
|
||||||
- hysteresis = <2000>; /* millicelsius */
|
|
||||||
- type = "passive";
|
|
||||||
- };
|
|
||||||
- };
|
|
||||||
-
|
|
||||||
- cooling-maps {
|
|
||||||
- map0 {
|
|
||||||
- trip = <&cpu_alert0>;
|
|
||||||
- cooling-device = <&gpio_fan THERMAL_NO_LIMIT 1>;
|
|
||||||
- };
|
|
||||||
-
|
|
||||||
- map1 {
|
|
||||||
- trip = <&cpu_alert1>;
|
|
||||||
- cooling-device = <&gpio_fan 2 THERMAL_NO_LIMIT>,
|
|
||||||
- <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
|
||||||
- <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
|
||||||
- <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
|
||||||
- <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
|
||||||
- <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
|
||||||
- <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
|
||||||
- <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
|
||||||
- <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
|
||||||
- };
|
|
||||||
- };
|
|
||||||
- };
|
|
||||||
- };
|
|
||||||
-
|
|
||||||
hdmi_5v: regulator-hdmi-5v {
|
|
||||||
compatible = "regulator-fixed";
|
|
||||||
|
|
||||||
@@ -198,36 +154,23 @@
|
|
||||||
hdmi-phandle = <&hdmi_tx>;
|
|
||||||
};
|
|
||||||
|
|
||||||
-&cpu0 {
|
|
||||||
- #cooling-cells = <2>;
|
|
||||||
-};
|
|
||||||
-
|
|
||||||
-&cpu1 {
|
|
||||||
- #cooling-cells = <2>;
|
|
||||||
-};
|
|
||||||
-
|
|
||||||
-&cpu2 {
|
|
||||||
- #cooling-cells = <2>;
|
|
||||||
-};
|
|
||||||
|
|
||||||
-&cpu3 {
|
|
||||||
- #cooling-cells = <2>;
|
|
||||||
-};
|
|
||||||
-
|
|
||||||
-&cpu4 {
|
|
||||||
- #cooling-cells = <2>;
|
|
||||||
-};
|
|
||||||
-
|
|
||||||
-&cpu5 {
|
|
||||||
- #cooling-cells = <2>;
|
|
||||||
-};
|
|
||||||
-
|
|
||||||
-&cpu6 {
|
|
||||||
- #cooling-cells = <2>;
|
|
||||||
-};
|
|
||||||
+&cpu_cooling_maps {
|
|
||||||
+ map0 {
|
|
||||||
+ cooling-device = <&gpio_fan THERMAL_NO_LIMIT 1>;
|
|
||||||
+ };
|
|
||||||
|
|
||||||
-&cpu7 {
|
|
||||||
- #cooling-cells = <2>;
|
|
||||||
+ map1 {
|
|
||||||
+ cooling-device = <&gpio_fan 2 THERMAL_NO_LIMIT>,
|
|
||||||
+ <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
|
||||||
+ <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
|
||||||
+ <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
|
||||||
+ <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
|
||||||
+ <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
|
||||||
+ <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
|
||||||
+ <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
|
||||||
+ <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
|
||||||
+ };
|
|
||||||
};
|
|
||||||
|
|
||||||
ðmac {
|
|
||||||
@@ -327,7 +270,7 @@
|
|
||||||
#size-cells = <0>;
|
|
||||||
|
|
||||||
bus-width = <4>;
|
|
||||||
- max-frequency = <50000000>;
|
|
||||||
+ max-frequency = <60000000>;
|
|
||||||
|
|
||||||
non-removable;
|
|
||||||
disable-wp;
|
|
||||||
diff --git a/arch/arm/dts/meson-gxm.dtsi b/arch/arm/dts/meson-gxm.dtsi
|
|
||||||
index 5ff64a0d2d..b6f89f108e 100644
|
|
||||||
--- a/arch/arm/dts/meson-gxm.dtsi
|
|
||||||
+++ b/arch/arm/dts/meson-gxm.dtsi
|
|
||||||
@@ -49,6 +49,7 @@
|
|
||||||
enable-method = "psci";
|
|
||||||
next-level-cache = <&l2>;
|
|
||||||
clocks = <&scpi_dvfs 1>;
|
|
||||||
+ #cooling-cells = <2>;
|
|
||||||
};
|
|
||||||
|
|
||||||
cpu5: cpu@101 {
|
|
||||||
@@ -58,6 +59,7 @@
|
|
||||||
enable-method = "psci";
|
|
||||||
next-level-cache = <&l2>;
|
|
||||||
clocks = <&scpi_dvfs 1>;
|
|
||||||
+ #cooling-cells = <2>;
|
|
||||||
};
|
|
||||||
|
|
||||||
cpu6: cpu@102 {
|
|
||||||
@@ -67,6 +69,7 @@
|
|
||||||
enable-method = "psci";
|
|
||||||
next-level-cache = <&l2>;
|
|
||||||
clocks = <&scpi_dvfs 1>;
|
|
||||||
+ #cooling-cells = <2>;
|
|
||||||
};
|
|
||||||
|
|
||||||
cpu7: cpu@103 {
|
|
||||||
@@ -76,6 +79,7 @@
|
|
||||||
enable-method = "psci";
|
|
||||||
next-level-cache = <&l2>;
|
|
||||||
clocks = <&scpi_dvfs 1>;
|
|
||||||
+ #cooling-cells = <2>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
@@ -124,6 +128,30 @@
|
|
||||||
compatible = "amlogic,meson-gxm-aoclkc", "amlogic,meson-gx-aoclkc";
|
|
||||||
};
|
|
||||||
|
|
||||||
+&cpu_cooling_maps {
|
|
||||||
+ map0 {
|
|
||||||
+ cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
|
||||||
+ <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
|
||||||
+ <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
|
||||||
+ <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
|
||||||
+ <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
|
||||||
+ <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
|
||||||
+ <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
|
||||||
+ <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ map1 {
|
|
||||||
+ cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
|
||||||
+ <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
|
||||||
+ <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
|
||||||
+ <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
|
||||||
+ <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
|
||||||
+ <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
|
||||||
+ <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
|
||||||
+ <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
|
||||||
+ };
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
&saradc {
|
|
||||||
compatible = "amlogic,meson-gxm-saradc", "amlogic,meson-saradc";
|
|
||||||
};
|
|
||||||
diff --git a/arch/arm/dts/meson-khadas-vim3.dtsi b/arch/arm/dts/meson-khadas-vim3.dtsi
|
|
||||||
index 90815fa25e..094ecf2222 100644
|
|
||||||
--- a/arch/arm/dts/meson-khadas-vim3.dtsi
|
|
||||||
+++ b/arch/arm/dts/meson-khadas-vim3.dtsi
|
|
||||||
@@ -9,8 +9,6 @@
|
|
||||||
#include <dt-bindings/gpio/meson-g12a-gpio.h>
|
|
||||||
|
|
||||||
/ {
|
|
||||||
- model = "Khadas VIM3";
|
|
||||||
-
|
|
||||||
aliases {
|
|
||||||
serial0 = &uart_AO;
|
|
||||||
ethernet0 = ðmac;
|
|
||||||
@@ -312,7 +310,7 @@
|
|
||||||
/* eMMC */
|
|
||||||
&sd_emmc_c {
|
|
||||||
status = "okay";
|
|
||||||
- pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
|
|
||||||
+ pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>;
|
|
||||||
pinctrl-1 = <&emmc_clk_gate_pins>;
|
|
||||||
pinctrl-names = "default", "clk-gate";
|
|
||||||
|
|
||||||
@@ -328,6 +326,26 @@
|
|
||||||
vqmmc-supply = <&emmc_1v8>;
|
|
||||||
};
|
|
||||||
|
|
||||||
+/*
|
|
||||||
+ * EMMC_D4, EMMC_D5, EMMC_D6 and EMMC_D7 pins are shared between SPI NOR CS
|
|
||||||
+ * and eMMC Data 4 to 7 pins.
|
|
||||||
+ * Replace emmc_data_8b_pins to emmc_data_4b_pins from sd_emmc_c pinctrl-0,
|
|
||||||
+ * and change bus-width to 4 then spifc can be enabled.
|
|
||||||
+ */
|
|
||||||
+&spifc {
|
|
||||||
+ status = "disabled";
|
|
||||||
+ pinctrl-0 = <&nor_pins>;
|
|
||||||
+ pinctrl-names = "default";
|
|
||||||
+
|
|
||||||
+ w25q32: spi-flash@0 {
|
|
||||||
+ #address-cells = <1>;
|
|
||||||
+ #size-cells = <1>;
|
|
||||||
+ compatible = "winbond,w25q128fw", "jedec,spi-nor";
|
|
||||||
+ reg = <0>;
|
|
||||||
+ spi-max-frequency = <104000000>;
|
|
||||||
+ };
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
&uart_A {
|
|
||||||
status = "okay";
|
|
||||||
pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
|
|
||||||
diff --git a/arch/arm/dts/meson-sm1-khadas-vim3l.dts b/arch/arm/dts/meson-sm1-khadas-vim3l.dts
|
|
||||||
index 1001b376ca..dbbf29a0db 100644
|
|
||||||
--- a/arch/arm/dts/meson-sm1-khadas-vim3l.dts
|
|
||||||
+++ b/arch/arm/dts/meson-sm1-khadas-vim3l.dts
|
|
||||||
@@ -72,9 +72,10 @@
|
|
||||||
/*
|
|
||||||
* The VIM3 on-board MCU can mux the PCIe/USB3.0 shared differential
|
|
||||||
* lines using a FUSB340TMX USB 3.1 SuperSpeed Data Switch between
|
|
||||||
- * an USB3.0 Type A connector and a M.2 Key M slot. The PHY driving
|
|
||||||
- * these differential lines is shared between the USB3.0 controller
|
|
||||||
- * and the PCIe Controller, thus only a single controller can use it.
|
|
||||||
+ * an USB3.0 Type A connector and a M.2 Key M slot.
|
|
||||||
+ * The PHY driving these differential lines is shared between
|
|
||||||
+ * the USB3.0 controller and the PCIe Controller, thus only
|
|
||||||
+ * a single controller can use it.
|
|
||||||
* If the MCU is configured to mux the PCIe/USB3.0 differential lines
|
|
||||||
* to the M.2 Key M slot, uncomment the following block to disable
|
|
||||||
* USB3.0 from the USB Complex and enable the PCIe controller.
|
|
||||||
@@ -82,7 +83,6 @@
|
|
||||||
* testing purposes, but instead rely on the firmware/bootloader to
|
|
||||||
* update these nodes accordingly if PCIe mode is selected by the MCU.
|
|
||||||
*/
|
|
||||||
-
|
|
||||||
/*
|
|
||||||
&pcie {
|
|
||||||
status = "okay";
|
|
||||||
diff --git a/arch/arm/dts/meson-sm1-sei610.dts b/arch/arm/dts/meson-sm1-sei610.dts
|
|
||||||
index a8bb3fa9fe..dfb2438851 100644
|
|
||||||
--- a/arch/arm/dts/meson-sm1-sei610.dts
|
|
||||||
+++ b/arch/arm/dts/meson-sm1-sei610.dts
|
|
||||||
@@ -518,7 +518,7 @@
|
|
||||||
/* eMMC */
|
|
||||||
&sd_emmc_c {
|
|
||||||
status = "okay";
|
|
||||||
- pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
|
|
||||||
+ pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>;
|
|
||||||
pinctrl-1 = <&emmc_clk_gate_pins>;
|
|
||||||
pinctrl-names = "default", "clk-gate";
|
|
||||||
|
|
||||||
@@ -593,6 +593,7 @@
|
|
||||||
compatible = "brcm,bcm43438-bt";
|
|
||||||
interrupt-parent = <&gpio_intc>;
|
|
||||||
interrupts = <95 IRQ_TYPE_LEVEL_HIGH>;
|
|
||||||
+ interrupt-names = "host-wakeup";
|
|
||||||
shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
|
|
||||||
max-speed = <2000000>;
|
|
||||||
clocks = <&wifi32k>;
|
|
||||||
diff --git a/arch/arm/dts/meson-sm1.dtsi b/arch/arm/dts/meson-sm1.dtsi
|
|
||||||
index d847a3fcbc..d4ec735fb1 100644
|
|
||||||
--- a/arch/arm/dts/meson-sm1.dtsi
|
|
||||||
+++ b/arch/arm/dts/meson-sm1.dtsi
|
|
||||||
@@ -448,6 +448,7 @@
|
|
||||||
<&clkc_audio AUD_CLKID_PDM_DCLK>,
|
|
||||||
<&clkc_audio AUD_CLKID_PDM_SYSCLK>;
|
|
||||||
clock-names = "pclk", "dclk", "sysclk";
|
|
||||||
+ resets = <&clkc_audio AUD_RESET_PDM>;
|
|
||||||
status = "disabled";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
diff --git a/include/dt-bindings/clock/g12a-clkc.h b/include/dt-bindings/clock/g12a-clkc.h
|
|
||||||
index 0837c1a7ae..b0d65d73db 100644
|
|
||||||
--- a/include/dt-bindings/clock/g12a-clkc.h
|
|
||||||
+++ b/include/dt-bindings/clock/g12a-clkc.h
|
|
||||||
@@ -143,5 +143,7 @@
|
|
||||||
#define CLKID_CPU1_CLK 253
|
|
||||||
#define CLKID_CPU2_CLK 254
|
|
||||||
#define CLKID_CPU3_CLK 255
|
|
||||||
+#define CLKID_SPICC0_SCLK 258
|
|
||||||
+#define CLKID_SPICC1_SCLK 261
|
|
||||||
|
|
||||||
#endif /* __G12A_CLKC_H */
|
|
||||||
diff --git a/include/dt-bindings/clock/gxbb-clkc.h b/include/dt-bindings/clock/gxbb-clkc.h
|
|
||||||
index db0763e961..4073eb7a9d 100644
|
|
||||||
--- a/include/dt-bindings/clock/gxbb-clkc.h
|
|
||||||
+++ b/include/dt-bindings/clock/gxbb-clkc.h
|
|
||||||
@@ -146,5 +146,6 @@
|
|
||||||
#define CLKID_CTS_VDAC 201
|
|
||||||
#define CLKID_HDMI_TX 202
|
|
||||||
#define CLKID_HDMI 205
|
|
||||||
+#define CLKID_ACODEC 206
|
|
||||||
|
|
||||||
#endif /* __GXBB_CLKC_H */
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
@ -1,40 +0,0 @@
|
|||||||
From 708e5bd515cbc44e0fbf30f538788870efc7b78f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
Date: Mon, 20 Apr 2020 15:44:42 +0200
|
|
||||||
Subject: [PATCH 22/33] FROMGIT: arm: dts: meson-gxm-khadas-vim2-u-boot: enable
|
|
||||||
SPI NOR flash
|
|
||||||
|
|
||||||
Activate the on-board SPI NOR Flash by enabling the SPI controller and
|
|
||||||
disabling the DS eMMC pin in the VIM2 u-boot.dtsi file.
|
|
||||||
|
|
||||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
---
|
|
||||||
arch/arm/dts/meson-gxm-khadas-vim2-u-boot.dtsi | 15 +++++++++++++++
|
|
||||||
1 file changed, 15 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/arch/arm/dts/meson-gxm-khadas-vim2-u-boot.dtsi b/arch/arm/dts/meson-gxm-khadas-vim2-u-boot.dtsi
|
|
||||||
index c35158d7e9..bec9e05b09 100644
|
|
||||||
--- a/arch/arm/dts/meson-gxm-khadas-vim2-u-boot.dtsi
|
|
||||||
+++ b/arch/arm/dts/meson-gxm-khadas-vim2-u-boot.dtsi
|
|
||||||
@@ -5,3 +5,18 @@
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "meson-gx-u-boot.dtsi"
|
|
||||||
+
|
|
||||||
+/ {
|
|
||||||
+ aliases {
|
|
||||||
+ spi0 = &spifc;
|
|
||||||
+ };
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&sd_emmc_c {
|
|
||||||
+ status = "okay";
|
|
||||||
+ pinctrl-0 = <&emmc_pins>;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&spifc {
|
|
||||||
+ status = "okay";
|
|
||||||
+};
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
@ -1,50 +0,0 @@
|
|||||||
From 31c3732a736db4c2a9fa7606d9f587ebca3c62e0 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
Date: Mon, 20 Apr 2020 15:44:43 +0200
|
|
||||||
Subject: [PATCH 23/33] FROMGIT: configs: khadas-vim2: enable support for SPI
|
|
||||||
NOR flash
|
|
||||||
|
|
||||||
Add the necessary configs to use the SPI NOR flash.
|
|
||||||
|
|
||||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
---
|
|
||||||
configs/khadas-vim2_defconfig | 8 ++++++++
|
|
||||||
1 file changed, 8 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/configs/khadas-vim2_defconfig b/configs/khadas-vim2_defconfig
|
|
||||||
index a533566410..5633f6da9c 100644
|
|
||||||
--- a/configs/khadas-vim2_defconfig
|
|
||||||
+++ b/configs/khadas-vim2_defconfig
|
|
||||||
@@ -19,6 +19,8 @@ CONFIG_CMD_ADC=y
|
|
||||||
CONFIG_CMD_GPIO=y
|
|
||||||
# CONFIG_CMD_LOADS is not set
|
|
||||||
CONFIG_CMD_MMC=y
|
|
||||||
+CONFIG_CMD_SF_TEST=y
|
|
||||||
+CONFIG_CMD_SPI=y
|
|
||||||
CONFIG_CMD_USB=y
|
|
||||||
CONFIG_CMD_USB_MASS_STORAGE=y
|
|
||||||
# CONFIG_CMD_SETEXPR is not set
|
|
||||||
@@ -30,7 +32,10 @@ CONFIG_NET_RANDOM_ETHADDR=y
|
|
||||||
CONFIG_SARADC_MESON=y
|
|
||||||
CONFIG_DM_MMC=y
|
|
||||||
CONFIG_MMC_MESON_GX=y
|
|
||||||
+CONFIG_MTD=y
|
|
||||||
CONFIG_DM_MTD=y
|
|
||||||
+CONFIG_DM_SPI_FLASH=y
|
|
||||||
+CONFIG_SPI_FLASH_WINBOND=y
|
|
||||||
CONFIG_PHY_REALTEK=y
|
|
||||||
CONFIG_DM_ETH=y
|
|
||||||
CONFIG_ETH_DESIGNWARE=y
|
|
||||||
@@ -44,6 +49,9 @@ CONFIG_DEBUG_UART_MESON=y
|
|
||||||
CONFIG_DEBUG_UART_ANNOUNCE=y
|
|
||||||
CONFIG_DEBUG_UART_SKIP_INIT=y
|
|
||||||
CONFIG_MESON_SERIAL=y
|
|
||||||
+CONFIG_SPI=y
|
|
||||||
+CONFIG_DM_SPI=y
|
|
||||||
+CONFIG_MESON_SPIFC=y
|
|
||||||
CONFIG_USB=y
|
|
||||||
CONFIG_DM_USB=y
|
|
||||||
CONFIG_USB_XHCI_HCD=y
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
@ -1,75 +0,0 @@
|
|||||||
From 26f693a99848613acb1493fce40c72279830a5a5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
Date: Mon, 20 Apr 2020 15:44:44 +0200
|
|
||||||
Subject: [PATCH 24/33] FROMGIT: arm: dts: meson-khadas-vim3: enable SPI NOR
|
|
||||||
flash
|
|
||||||
|
|
||||||
Enable the SPI flash controller and reduce the usable eMMC data pins to 4
|
|
||||||
to permit using the on-board SPI NOR Flash.
|
|
||||||
|
|
||||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
---
|
|
||||||
.../meson-g12b-a311d-khadas-vim3-u-boot.dtsi | 7 +++++++
|
|
||||||
arch/arm/dts/meson-khadas-vim3-u-boot.dtsi | 21 +++++++++++++++++++
|
|
||||||
.../dts/meson-sm1-khadas-vim3l-u-boot.dtsi | 7 +++++++
|
|
||||||
3 files changed, 35 insertions(+)
|
|
||||||
create mode 100644 arch/arm/dts/meson-g12b-a311d-khadas-vim3-u-boot.dtsi
|
|
||||||
create mode 100644 arch/arm/dts/meson-khadas-vim3-u-boot.dtsi
|
|
||||||
create mode 100644 arch/arm/dts/meson-sm1-khadas-vim3l-u-boot.dtsi
|
|
||||||
|
|
||||||
diff --git a/arch/arm/dts/meson-g12b-a311d-khadas-vim3-u-boot.dtsi b/arch/arm/dts/meson-g12b-a311d-khadas-vim3-u-boot.dtsi
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000000..f66eca14b1
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/arch/arm/dts/meson-g12b-a311d-khadas-vim3-u-boot.dtsi
|
|
||||||
@@ -0,0 +1,7 @@
|
|
||||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
|
||||||
+/*
|
|
||||||
+ * Copyright (c) 2020 BayLibre, SAS
|
|
||||||
+ * Author: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+#include "meson-khadas-vim3-u-boot.dtsi"
|
|
||||||
diff --git a/arch/arm/dts/meson-khadas-vim3-u-boot.dtsi b/arch/arm/dts/meson-khadas-vim3-u-boot.dtsi
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000000..81fd5be378
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/arch/arm/dts/meson-khadas-vim3-u-boot.dtsi
|
|
||||||
@@ -0,0 +1,21 @@
|
|
||||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
|
||||||
+/*
|
|
||||||
+ * Copyright (c) 2020 BayLibre, SAS
|
|
||||||
+ * Author: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+/ {
|
|
||||||
+ aliases {
|
|
||||||
+ spi0 = &spifc;
|
|
||||||
+ };
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&sd_emmc_c {
|
|
||||||
+ status = "okay";
|
|
||||||
+ pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_4b_pins>, <&emmc_ds_pins>;
|
|
||||||
+ bus-width = <4>;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&spifc {
|
|
||||||
+ status = "okay";
|
|
||||||
+};
|
|
||||||
diff --git a/arch/arm/dts/meson-sm1-khadas-vim3l-u-boot.dtsi b/arch/arm/dts/meson-sm1-khadas-vim3l-u-boot.dtsi
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000000..f66eca14b1
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/arch/arm/dts/meson-sm1-khadas-vim3l-u-boot.dtsi
|
|
||||||
@@ -0,0 +1,7 @@
|
|
||||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
|
||||||
+/*
|
|
||||||
+ * Copyright (c) 2020 BayLibre, SAS
|
|
||||||
+ * Author: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+#include "meson-khadas-vim3-u-boot.dtsi"
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
@ -1,85 +0,0 @@
|
|||||||
From 9527f3aa3d4d3acd7793137c34b2c86e7d83b8d5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
Date: Mon, 20 Apr 2020 15:44:45 +0200
|
|
||||||
Subject: [PATCH 25/33] FROMGIT: configs: khadas-vim3: enable support for SPI
|
|
||||||
NOR flash
|
|
||||||
|
|
||||||
Enable the necessary configs to make usage of the SPI NOR Flash.
|
|
||||||
|
|
||||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
---
|
|
||||||
configs/khadas-vim3_defconfig | 9 +++++++++
|
|
||||||
configs/khadas-vim3l_defconfig | 9 +++++++++
|
|
||||||
2 files changed, 18 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/configs/khadas-vim3_defconfig b/configs/khadas-vim3_defconfig
|
|
||||||
index 72987d9523..692138eb11 100644
|
|
||||||
--- a/configs/khadas-vim3_defconfig
|
|
||||||
+++ b/configs/khadas-vim3_defconfig
|
|
||||||
@@ -18,6 +18,8 @@ CONFIG_MISC_INIT_R=y
|
|
||||||
CONFIG_CMD_GPIO=y
|
|
||||||
# CONFIG_CMD_LOADS is not set
|
|
||||||
CONFIG_CMD_MMC=y
|
|
||||||
+CONFIG_CMD_SF_TEST=y
|
|
||||||
+CONFIG_CMD_SPI=y
|
|
||||||
CONFIG_CMD_USB=y
|
|
||||||
CONFIG_CMD_USB_MASS_STORAGE=y
|
|
||||||
# CONFIG_CMD_SETEXPR is not set
|
|
||||||
@@ -28,6 +30,10 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
|
||||||
CONFIG_NET_RANDOM_ETHADDR=y
|
|
||||||
CONFIG_DM_MMC=y
|
|
||||||
CONFIG_MMC_MESON_GX=y
|
|
||||||
+CONFIG_MTD=y
|
|
||||||
+CONFIG_DM_MTD=y
|
|
||||||
+CONFIG_DM_SPI_FLASH=y
|
|
||||||
+CONFIG_SPI_FLASH_WINBOND=y
|
|
||||||
CONFIG_PHY_REALTEK=y
|
|
||||||
CONFIG_DM_ETH=y
|
|
||||||
CONFIG_ETH_DESIGNWARE=y
|
|
||||||
@@ -41,6 +47,9 @@ CONFIG_DEBUG_UART_MESON=y
|
|
||||||
CONFIG_DEBUG_UART_ANNOUNCE=y
|
|
||||||
CONFIG_DEBUG_UART_SKIP_INIT=y
|
|
||||||
CONFIG_MESON_SERIAL=y
|
|
||||||
+CONFIG_SPI=y
|
|
||||||
+CONFIG_DM_SPI=y
|
|
||||||
+CONFIG_MESON_SPIFC=y
|
|
||||||
CONFIG_USB=y
|
|
||||||
CONFIG_DM_USB=y
|
|
||||||
CONFIG_USB_XHCI_HCD=y
|
|
||||||
diff --git a/configs/khadas-vim3l_defconfig b/configs/khadas-vim3l_defconfig
|
|
||||||
index 7e2ad41bca..28c20c0d6d 100644
|
|
||||||
--- a/configs/khadas-vim3l_defconfig
|
|
||||||
+++ b/configs/khadas-vim3l_defconfig
|
|
||||||
@@ -18,6 +18,8 @@ CONFIG_MISC_INIT_R=y
|
|
||||||
CONFIG_CMD_GPIO=y
|
|
||||||
# CONFIG_CMD_LOADS is not set
|
|
||||||
CONFIG_CMD_MMC=y
|
|
||||||
+CONFIG_CMD_SF_TEST=y
|
|
||||||
+CONFIG_CMD_SPI=y
|
|
||||||
CONFIG_CMD_USB=y
|
|
||||||
CONFIG_CMD_USB_MASS_STORAGE=y
|
|
||||||
# CONFIG_CMD_SETEXPR is not set
|
|
||||||
@@ -28,6 +30,10 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
|
||||||
CONFIG_NET_RANDOM_ETHADDR=y
|
|
||||||
CONFIG_DM_MMC=y
|
|
||||||
CONFIG_MMC_MESON_GX=y
|
|
||||||
+CONFIG_MTD=y
|
|
||||||
+CONFIG_DM_MTD=y
|
|
||||||
+CONFIG_DM_SPI_FLASH=y
|
|
||||||
+CONFIG_SPI_FLASH_WINBOND=y
|
|
||||||
CONFIG_PHY_REALTEK=y
|
|
||||||
CONFIG_DM_ETH=y
|
|
||||||
CONFIG_ETH_DESIGNWARE=y
|
|
||||||
@@ -43,6 +49,9 @@ CONFIG_DEBUG_UART_MESON=y
|
|
||||||
CONFIG_DEBUG_UART_ANNOUNCE=y
|
|
||||||
CONFIG_DEBUG_UART_SKIP_INIT=y
|
|
||||||
CONFIG_MESON_SERIAL=y
|
|
||||||
+CONFIG_SPI=y
|
|
||||||
+CONFIG_DM_SPI=y
|
|
||||||
+CONFIG_MESON_SPIFC=y
|
|
||||||
CONFIG_USB=y
|
|
||||||
CONFIG_DM_USB=y
|
|
||||||
CONFIG_USB_XHCI_HCD=y
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
@ -1,63 +0,0 @@
|
|||||||
From ef9479b0c9873bec6acd31b24db176e71d6e7624 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
Date: Tue, 21 Apr 2020 10:17:42 +0200
|
|
||||||
Subject: [PATCH 26/33] FROMGIT: usb: dwc3-meson-g12a: add power-on/off of the
|
|
||||||
PHYs
|
|
||||||
|
|
||||||
Power on/off the PHYs to enable power to the USB ports, fixing USB support
|
|
||||||
on Khadas VIM3/VIM3L boards.
|
|
||||||
|
|
||||||
The G12A USB complex has at least 2 USB2 PHYs, but one is muxed between the
|
|
||||||
DWC2 and DWC3 controller and the other one directly connected to the DWC3
|
|
||||||
controller. The USB3+PCIe combo PHY is muxed between the DWC3 controller
|
|
||||||
and a DW-PCIE controller.
|
|
||||||
All PHYs are optional, but it's type (usb2/usb3) and position are important
|
|
||||||
to determine it's capabilities, thus they are stored in a fixed size
|
|
||||||
array and the phy-name determines it's position, it's position determining
|
|
||||||
it's type and functionnalities.
|
|
||||||
This is why we need to loop over the array to power on all the DT provided
|
|
||||||
PHYs.
|
|
||||||
|
|
||||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
Reviewed-by: Marek Vasut <marex@denx.de>
|
|
||||||
---
|
|
||||||
drivers/usb/dwc3/dwc3-meson-g12a.c | 16 ++++++++++++++++
|
|
||||||
1 file changed, 16 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/drivers/usb/dwc3/dwc3-meson-g12a.c b/drivers/usb/dwc3/dwc3-meson-g12a.c
|
|
||||||
index 832bcd70ff..b0e3c96616 100644
|
|
||||||
--- a/drivers/usb/dwc3/dwc3-meson-g12a.c
|
|
||||||
+++ b/drivers/usb/dwc3/dwc3-meson-g12a.c
|
|
||||||
@@ -408,6 +408,15 @@ static int dwc3_meson_g12a_probe(struct udevice *dev)
|
|
||||||
goto err_phy_init;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ for (i = 0; i < PHY_COUNT; ++i) {
|
|
||||||
+ if (!priv->phys[i].dev)
|
|
||||||
+ continue;
|
|
||||||
+
|
|
||||||
+ ret = generic_phy_power_on(&priv->phys[i]);
|
|
||||||
+ if (ret)
|
|
||||||
+ goto err_phy_init;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
err_phy_init:
|
|
||||||
@@ -430,6 +439,13 @@ static int dwc3_meson_g12a_remove(struct udevice *dev)
|
|
||||||
|
|
||||||
clk_release_all(&priv->clk, 1);
|
|
||||||
|
|
||||||
+ for (i = 0; i < PHY_COUNT; ++i) {
|
|
||||||
+ if (!priv->phys[i].dev)
|
|
||||||
+ continue;
|
|
||||||
+
|
|
||||||
+ generic_phy_power_off(&priv->phys[i]);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
for (i = 0 ; i < PHY_COUNT ; ++i) {
|
|
||||||
if (!priv->phys[i].dev)
|
|
||||||
continue;
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
@ -1,84 +0,0 @@
|
|||||||
From 6aab17c13bb48f505f8d45c727238945a254ca3c Mon Sep 17 00:00:00 2001
|
|
||||||
From: Beniamino Galvani <b.galvani@gmail.com>
|
|
||||||
Date: Sun, 18 Aug 2019 15:42:55 +0200
|
|
||||||
Subject: [PATCH 27/33] FROMGIT: odroid-c2: enable USB host controller
|
|
||||||
|
|
||||||
Enable the second USB controller, which is connected to a hub with 4
|
|
||||||
ports. The first controller is for the OTG port and is currently not
|
|
||||||
supported.
|
|
||||||
|
|
||||||
Signed-off-by: Beniamino Galvani <b.galvani@gmail.com>
|
|
||||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
---
|
|
||||||
arch/arm/dts/meson-gxbb-odroidc2-u-boot.dtsi | 8 ++++++++
|
|
||||||
configs/odroid-c2_defconfig | 7 +++++++
|
|
||||||
include/configs/meson64.h | 5 +++++
|
|
||||||
3 files changed, 20 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/arch/arm/dts/meson-gxbb-odroidc2-u-boot.dtsi b/arch/arm/dts/meson-gxbb-odroidc2-u-boot.dtsi
|
|
||||||
index c35158d7e9..484b40504d 100644
|
|
||||||
--- a/arch/arm/dts/meson-gxbb-odroidc2-u-boot.dtsi
|
|
||||||
+++ b/arch/arm/dts/meson-gxbb-odroidc2-u-boot.dtsi
|
|
||||||
@@ -5,3 +5,11 @@
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "meson-gx-u-boot.dtsi"
|
|
||||||
+
|
|
||||||
+&usb0 {
|
|
||||||
+ status = "disabled";
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&usb1 {
|
|
||||||
+ hnp-srp-disable;
|
|
||||||
+};
|
|
||||||
diff --git a/configs/odroid-c2_defconfig b/configs/odroid-c2_defconfig
|
|
||||||
index 64fbfdf064..82620f4452 100644
|
|
||||||
--- a/configs/odroid-c2_defconfig
|
|
||||||
+++ b/configs/odroid-c2_defconfig
|
|
||||||
@@ -18,6 +18,7 @@ CONFIG_CMD_GPIO=y
|
|
||||||
CONFIG_CMD_I2C=y
|
|
||||||
# CONFIG_CMD_LOADS is not set
|
|
||||||
CONFIG_CMD_MMC=y
|
|
||||||
+CONFIG_CMD_USB=y
|
|
||||||
# CONFIG_CMD_SETEXPR is not set
|
|
||||||
CONFIG_CMD_REGULATOR=y
|
|
||||||
CONFIG_OF_CONTROL=y
|
|
||||||
@@ -31,13 +32,19 @@ CONFIG_MMC_MESON_GX=y
|
|
||||||
CONFIG_PHY_REALTEK=y
|
|
||||||
CONFIG_DM_ETH=y
|
|
||||||
CONFIG_ETH_DESIGNWARE=y
|
|
||||||
+CONFIG_PHY=y
|
|
||||||
+CONFIG_MESON_GXBB_USB_PHY=y
|
|
||||||
CONFIG_PINCTRL=y
|
|
||||||
CONFIG_PINCTRL_MESON_GXBB=y
|
|
||||||
CONFIG_DM_REGULATOR=y
|
|
||||||
CONFIG_DM_REGULATOR_FIXED=y
|
|
||||||
+CONFIG_DM_REGULATOR_GPIO=y
|
|
||||||
CONFIG_DM_RESET=y
|
|
||||||
CONFIG_DEBUG_UART_MESON=y
|
|
||||||
CONFIG_DEBUG_UART_ANNOUNCE=y
|
|
||||||
CONFIG_DEBUG_UART_SKIP_INIT=y
|
|
||||||
CONFIG_MESON_SERIAL=y
|
|
||||||
+CONFIG_USB=y
|
|
||||||
+CONFIG_DM_USB=y
|
|
||||||
+CONFIG_USB_DWC2=y
|
|
||||||
CONFIG_OF_LIBFDT_OVERLAY=y
|
|
||||||
diff --git a/include/configs/meson64.h b/include/configs/meson64.h
|
|
||||||
index 50707a3197..851cba807f 100644
|
|
||||||
--- a/include/configs/meson64.h
|
|
||||||
+++ b/include/configs/meson64.h
|
|
||||||
@@ -16,6 +16,11 @@
|
|
||||||
#define GICC_BASE 0xc4302000
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+/* USB */
|
|
||||||
+#if defined(CONFIG_MESON_GXBB)
|
|
||||||
+#define CONFIG_DWC2_UTMI_WIDTH 16
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
/* For splashscreen */
|
|
||||||
#ifdef CONFIG_DM_VIDEO
|
|
||||||
#define CONFIG_VIDEO_BMP_RLE8
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
@ -1,432 +0,0 @@
|
|||||||
From 9a5818bd7e3812f8fe5c45fb7342e241c878a2db Mon Sep 17 00:00:00 2001
|
|
||||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
|
||||||
Date: Fri, 24 Apr 2020 02:58:30 +0000
|
|
||||||
Subject: [PATCH 28/33] FROMGIT: ARM: dts: Import Odroid C4 DT from Linux 5.X
|
|
||||||
|
|
||||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
---
|
|
||||||
arch/arm/dts/Makefile | 1 +
|
|
||||||
arch/arm/dts/meson-sm1-odroid-c4.dts | 399 +++++++++++++++++++++++++++
|
|
||||||
2 files changed, 400 insertions(+)
|
|
||||||
create mode 100644 arch/arm/dts/meson-sm1-odroid-c4.dts
|
|
||||||
|
|
||||||
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
|
|
||||||
index a80ce9c791..8f9828b63a 100644
|
|
||||||
--- a/arch/arm/dts/Makefile
|
|
||||||
+++ b/arch/arm/dts/Makefile
|
|
||||||
@@ -156,6 +156,7 @@ dtb-$(CONFIG_ARCH_MESON) += \
|
|
||||||
meson-g12b-odroid-n2.dtb \
|
|
||||||
meson-g12b-a311d-khadas-vim3.dtb \
|
|
||||||
meson-sm1-khadas-vim3l.dtb \
|
|
||||||
+ meson-sm1-odroid-c4.dtb \
|
|
||||||
meson-sm1-sei610.dtb
|
|
||||||
dtb-$(CONFIG_TEGRA) += tegra20-harmony.dtb \
|
|
||||||
tegra20-medcom-wide.dtb \
|
|
||||||
diff --git a/arch/arm/dts/meson-sm1-odroid-c4.dts b/arch/arm/dts/meson-sm1-odroid-c4.dts
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000000..4882c604a7
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/arch/arm/dts/meson-sm1-odroid-c4.dts
|
|
||||||
@@ -0,0 +1,399 @@
|
|
||||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
|
||||||
+/*
|
|
||||||
+ * Copyright (c) 2020 Dongjin Kim <tobetter@gmail.com>
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+/dts-v1/;
|
|
||||||
+
|
|
||||||
+#include "meson-sm1.dtsi"
|
|
||||||
+#include <dt-bindings/gpio/meson-g12a-gpio.h>
|
|
||||||
+#include <dt-bindings/leds/common.h>
|
|
||||||
+
|
|
||||||
+/ {
|
|
||||||
+ compatible = "hardkernel,odroid-c4", "amlogic,sm1";
|
|
||||||
+ model = "Hardkernel ODROID-C4";
|
|
||||||
+
|
|
||||||
+ aliases {
|
|
||||||
+ serial0 = &uart_AO;
|
|
||||||
+ ethernet0 = ðmac;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ chosen {
|
|
||||||
+ stdout-path = "serial0:115200n8";
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ memory@0 {
|
|
||||||
+ device_type = "memory";
|
|
||||||
+ reg = <0x0 0x0 0x0 0x40000000>;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ emmc_pwrseq: emmc-pwrseq {
|
|
||||||
+ compatible = "mmc-pwrseq-emmc";
|
|
||||||
+ reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ leds {
|
|
||||||
+ compatible = "gpio-leds";
|
|
||||||
+
|
|
||||||
+ led-blue {
|
|
||||||
+ color = <LED_COLOR_ID_BLUE>;
|
|
||||||
+ function = LED_FUNCTION_STATUS;
|
|
||||||
+ gpios = <&gpio_ao GPIOAO_11 GPIO_ACTIVE_HIGH>;
|
|
||||||
+ linux,default-trigger = "heartbeat";
|
|
||||||
+ panic-indicator;
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ tflash_vdd: regulator-tflash_vdd {
|
|
||||||
+ compatible = "regulator-fixed";
|
|
||||||
+
|
|
||||||
+ regulator-name = "TFLASH_VDD";
|
|
||||||
+ regulator-min-microvolt = <3300000>;
|
|
||||||
+ regulator-max-microvolt = <3300000>;
|
|
||||||
+
|
|
||||||
+ gpio = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>;
|
|
||||||
+ enable-active-high;
|
|
||||||
+ regulator-always-on;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ tf_io: gpio-regulator-tf_io {
|
|
||||||
+ compatible = "regulator-gpio";
|
|
||||||
+
|
|
||||||
+ regulator-name = "TF_IO";
|
|
||||||
+ regulator-min-microvolt = <1800000>;
|
|
||||||
+ regulator-max-microvolt = <3300000>;
|
|
||||||
+
|
|
||||||
+ gpios = <&gpio_ao GPIOAO_6 GPIO_ACTIVE_HIGH>;
|
|
||||||
+ gpios-states = <0>;
|
|
||||||
+
|
|
||||||
+ states = <3300000 0>,
|
|
||||||
+ <1800000 1>;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ flash_1v8: regulator-flash_1v8 {
|
|
||||||
+ compatible = "regulator-fixed";
|
|
||||||
+ regulator-name = "FLASH_1V8";
|
|
||||||
+ regulator-min-microvolt = <1800000>;
|
|
||||||
+ regulator-max-microvolt = <1800000>;
|
|
||||||
+ vin-supply = <&vcc_3v3>;
|
|
||||||
+ regulator-always-on;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ main_12v: regulator-main_12v {
|
|
||||||
+ compatible = "regulator-fixed";
|
|
||||||
+ regulator-name = "12V";
|
|
||||||
+ regulator-min-microvolt = <12000000>;
|
|
||||||
+ regulator-max-microvolt = <12000000>;
|
|
||||||
+ regulator-always-on;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ vcc_5v: regulator-vcc_5v {
|
|
||||||
+ compatible = "regulator-fixed";
|
|
||||||
+ regulator-name = "5V";
|
|
||||||
+ regulator-min-microvolt = <5000000>;
|
|
||||||
+ regulator-max-microvolt = <5000000>;
|
|
||||||
+ regulator-always-on;
|
|
||||||
+ vin-supply = <&main_12v>;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ vcc_1v8: regulator-vcc_1v8 {
|
|
||||||
+ compatible = "regulator-fixed";
|
|
||||||
+ regulator-name = "VCC_1V8";
|
|
||||||
+ regulator-min-microvolt = <1800000>;
|
|
||||||
+ regulator-max-microvolt = <1800000>;
|
|
||||||
+ vin-supply = <&vcc_3v3>;
|
|
||||||
+ regulator-always-on;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ vcc_3v3: regulator-vcc_3v3 {
|
|
||||||
+ compatible = "regulator-fixed";
|
|
||||||
+ regulator-name = "VCC_3V3";
|
|
||||||
+ regulator-min-microvolt = <3300000>;
|
|
||||||
+ regulator-max-microvolt = <3300000>;
|
|
||||||
+ vin-supply = <&vddao_3v3>;
|
|
||||||
+ regulator-always-on;
|
|
||||||
+ /* FIXME: actually controlled by VDDCPU_B_EN */
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ vddcpu: regulator-vddcpu {
|
|
||||||
+ /*
|
|
||||||
+ * MP8756GD Regulator.
|
|
||||||
+ */
|
|
||||||
+ compatible = "pwm-regulator";
|
|
||||||
+
|
|
||||||
+ regulator-name = "VDDCPU";
|
|
||||||
+ regulator-min-microvolt = <721000>;
|
|
||||||
+ regulator-max-microvolt = <1022000>;
|
|
||||||
+
|
|
||||||
+ vin-supply = <&main_12v>;
|
|
||||||
+
|
|
||||||
+ pwms = <&pwm_AO_cd 1 1250 0>;
|
|
||||||
+ pwm-dutycycle-range = <100 0>;
|
|
||||||
+
|
|
||||||
+ regulator-boot-on;
|
|
||||||
+ regulator-always-on;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ hub_5v: regulator-hub_5v {
|
|
||||||
+ compatible = "regulator-fixed";
|
|
||||||
+ regulator-name = "HUB_5V";
|
|
||||||
+ regulator-min-microvolt = <5000000>;
|
|
||||||
+ regulator-max-microvolt = <5000000>;
|
|
||||||
+ vin-supply = <&vcc_5v>;
|
|
||||||
+
|
|
||||||
+ /* Connected to the Hub CHIPENABLE, LOW sets low power state */
|
|
||||||
+ gpio = <&gpio GPIOH_4 GPIO_ACTIVE_HIGH>;
|
|
||||||
+ enable-active-high;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ usb_pwr_en: regulator-usb_pwr_en {
|
|
||||||
+ compatible = "regulator-fixed";
|
|
||||||
+ regulator-name = "USB_PWR_EN";
|
|
||||||
+ regulator-min-microvolt = <5000000>;
|
|
||||||
+ regulator-max-microvolt = <5000000>;
|
|
||||||
+ vin-supply = <&vcc_5v>;
|
|
||||||
+
|
|
||||||
+ /* Connected to the microUSB port power enable */
|
|
||||||
+ gpio = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>;
|
|
||||||
+ enable-active-high;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ vddao_1v8: regulator-vddao_1v8 {
|
|
||||||
+ compatible = "regulator-fixed";
|
|
||||||
+ regulator-name = "VDDAO_1V8";
|
|
||||||
+ regulator-min-microvolt = <1800000>;
|
|
||||||
+ regulator-max-microvolt = <1800000>;
|
|
||||||
+ vin-supply = <&vddao_3v3>;
|
|
||||||
+ regulator-always-on;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ vddao_3v3: regulator-vddao_3v3 {
|
|
||||||
+ compatible = "regulator-fixed";
|
|
||||||
+ regulator-name = "VDDAO_3V3";
|
|
||||||
+ regulator-min-microvolt = <3300000>;
|
|
||||||
+ regulator-max-microvolt = <3300000>;
|
|
||||||
+ vin-supply = <&main_12v>;
|
|
||||||
+ regulator-always-on;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ hdmi-connector {
|
|
||||||
+ compatible = "hdmi-connector";
|
|
||||||
+ type = "a";
|
|
||||||
+
|
|
||||||
+ port {
|
|
||||||
+ hdmi_connector_in: endpoint {
|
|
||||||
+ remote-endpoint = <&hdmi_tx_tmds_out>;
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&cpu0 {
|
|
||||||
+ cpu-supply = <&vddcpu>;
|
|
||||||
+ operating-points-v2 = <&cpu_opp_table>;
|
|
||||||
+ clocks = <&clkc CLKID_CPU_CLK>;
|
|
||||||
+ clock-latency = <50000>;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&cpu1 {
|
|
||||||
+ cpu-supply = <&vddcpu>;
|
|
||||||
+ operating-points-v2 = <&cpu_opp_table>;
|
|
||||||
+ clocks = <&clkc CLKID_CPU1_CLK>;
|
|
||||||
+ clock-latency = <50000>;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&cpu2 {
|
|
||||||
+ cpu-supply = <&vddcpu>;
|
|
||||||
+ operating-points-v2 = <&cpu_opp_table>;
|
|
||||||
+ clocks = <&clkc CLKID_CPU2_CLK>;
|
|
||||||
+ clock-latency = <50000>;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&cpu3 {
|
|
||||||
+ cpu-supply = <&vddcpu>;
|
|
||||||
+ operating-points-v2 = <&cpu_opp_table>;
|
|
||||||
+ clocks = <&clkc CLKID_CPU3_CLK>;
|
|
||||||
+ clock-latency = <50000>;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&ext_mdio {
|
|
||||||
+ external_phy: ethernet-phy@0 {
|
|
||||||
+ /* Realtek RTL8211F (0x001cc916) */
|
|
||||||
+ reg = <0>;
|
|
||||||
+ max-speed = <1000>;
|
|
||||||
+
|
|
||||||
+ reset-assert-us = <10000>;
|
|
||||||
+ reset-deassert-us = <30000>;
|
|
||||||
+ reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
|
|
||||||
+
|
|
||||||
+ interrupt-parent = <&gpio_intc>;
|
|
||||||
+ /* MAC_INTR on GPIOZ_14 */
|
|
||||||
+ interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
|
|
||||||
+ };
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+ðmac {
|
|
||||||
+ pinctrl-0 = <ð_pins>, <ð_rgmii_pins>;
|
|
||||||
+ pinctrl-names = "default";
|
|
||||||
+ status = "okay";
|
|
||||||
+ phy-mode = "rgmii";
|
|
||||||
+ phy-handle = <&external_phy>;
|
|
||||||
+ amlogic,tx-delay-ns = <2>;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&gpio {
|
|
||||||
+ gpio-line-names =
|
|
||||||
+ /* GPIOZ */
|
|
||||||
+ "", "", "", "", "", "", "", "",
|
|
||||||
+ "", "", "", "", "", "", "", "",
|
|
||||||
+ /* GPIOH */
|
|
||||||
+ "", "", "", "", "",
|
|
||||||
+ "PIN_36", /* GPIOH_5 */
|
|
||||||
+ "PIN_26", /* GPIOH_6 */
|
|
||||||
+ "PIN_32", /* GPIOH_7 */
|
|
||||||
+ "",
|
|
||||||
+ /* BOOT */
|
|
||||||
+ "", "", "", "", "", "", "", "",
|
|
||||||
+ "", "", "", "", "", "", "", "",
|
|
||||||
+ /* GPIOC */
|
|
||||||
+ "", "", "", "", "", "", "", "",
|
|
||||||
+ /* GPIOA */
|
|
||||||
+ "", "", "", "", "", "", "", "",
|
|
||||||
+ "", "", "", "", "", "",
|
|
||||||
+ "PIN_27", /* GPIOA_14 */
|
|
||||||
+ "PIN_28", /* GPIOA_15 */
|
|
||||||
+ /* GPIOX */
|
|
||||||
+ "PIN_16", /* GPIOX_0 */
|
|
||||||
+ "PIN_18", /* GPIOX_1 */
|
|
||||||
+ "PIN_22", /* GPIOX_2 */
|
|
||||||
+ "PIN_11", /* GPIOX_3 */
|
|
||||||
+ "PIN_13", /* GPIOX_4 */
|
|
||||||
+ "PIN_7", /* GPIOX_5 */
|
|
||||||
+ "PIN_33", /* GPIOX_6 */
|
|
||||||
+ "PIN_15", /* GPIOX_7 */
|
|
||||||
+ "PIN_19", /* GPIOX_8 */
|
|
||||||
+ "PIN_21", /* GPIOX_9 */
|
|
||||||
+ "PIN_24", /* GPIOX_10 */
|
|
||||||
+ "PIN_23", /* GPIOX_11 */
|
|
||||||
+ "PIN_8", /* GPIOX_12 */
|
|
||||||
+ "PIN_10", /* GPIOX_13 */
|
|
||||||
+ "PIN_29", /* GPIOX_14 */
|
|
||||||
+ "PIN_31", /* GPIOX_15 */
|
|
||||||
+ "PIN_12", /* GPIOX_16 */
|
|
||||||
+ "PIN_3", /* GPIOX_17 */
|
|
||||||
+ "PIN_5", /* GPIOX_18 */
|
|
||||||
+ "PIN_35"; /* GPIOX_19 */
|
|
||||||
+
|
|
||||||
+ /*
|
|
||||||
+ * WARNING: The USB Hub on the Odroid-C4 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.
|
|
||||||
+ */
|
|
||||||
+ usb-hub {
|
|
||||||
+ gpio-hog;
|
|
||||||
+ gpios = <GPIOH_4 GPIO_ACTIVE_HIGH>;
|
|
||||||
+ output-high;
|
|
||||||
+ line-name = "usb-hub-reset";
|
|
||||||
+ };
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&gpio_ao {
|
|
||||||
+ gpio-line-names =
|
|
||||||
+ /* GPIOAO */
|
|
||||||
+ "", "", "", "",
|
|
||||||
+ "PIN_47", /* GPIOAO_4 */
|
|
||||||
+ "", "",
|
|
||||||
+ "PIN_45", /* GPIOAO_7 */
|
|
||||||
+ "PIN_46", /* GPIOAO_8 */
|
|
||||||
+ "PIN_44", /* GPIOAO_9 */
|
|
||||||
+ "PIN_42", /* GPIOAO_10 */
|
|
||||||
+ "",
|
|
||||||
+ /* GPIOE */
|
|
||||||
+ "", "", "";
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&hdmi_tx {
|
|
||||||
+ status = "okay";
|
|
||||||
+ pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
|
|
||||||
+ pinctrl-names = "default";
|
|
||||||
+ hdmi-supply = <&vcc_5v>;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&hdmi_tx_tmds_port {
|
|
||||||
+ hdmi_tx_tmds_out: endpoint {
|
|
||||||
+ remote-endpoint = <&hdmi_connector_in>;
|
|
||||||
+ };
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&pwm_AO_cd {
|
|
||||||
+ pinctrl-0 = <&pwm_ao_d_e_pins>;
|
|
||||||
+ pinctrl-names = "default";
|
|
||||||
+ clocks = <&xtal>;
|
|
||||||
+ clock-names = "clkin1";
|
|
||||||
+ status = "okay";
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&saradc {
|
|
||||||
+ status = "okay";
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+/* SD card */
|
|
||||||
+&sd_emmc_b {
|
|
||||||
+ status = "okay";
|
|
||||||
+ pinctrl-0 = <&sdcard_c_pins>;
|
|
||||||
+ pinctrl-1 = <&sdcard_clk_gate_c_pins>;
|
|
||||||
+ pinctrl-names = "default", "clk-gate";
|
|
||||||
+
|
|
||||||
+ bus-width = <4>;
|
|
||||||
+ cap-sd-highspeed;
|
|
||||||
+ max-frequency = <200000000>;
|
|
||||||
+ sd-uhs-sdr12;
|
|
||||||
+ sd-uhs-sdr25;
|
|
||||||
+ sd-uhs-sdr50;
|
|
||||||
+ sd-uhs-sdr104;
|
|
||||||
+ disable-wp;
|
|
||||||
+
|
|
||||||
+ cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
|
|
||||||
+ vmmc-supply = <&tflash_vdd>;
|
|
||||||
+ vqmmc-supply = <&tf_io>;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+/* eMMC */
|
|
||||||
+&sd_emmc_c {
|
|
||||||
+ status = "okay";
|
|
||||||
+ pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>;
|
|
||||||
+ pinctrl-1 = <&emmc_clk_gate_pins>;
|
|
||||||
+ pinctrl-names = "default", "clk-gate";
|
|
||||||
+
|
|
||||||
+ bus-width = <8>;
|
|
||||||
+ cap-mmc-highspeed;
|
|
||||||
+ mmc-ddr-1_8v;
|
|
||||||
+ mmc-hs200-1_8v;
|
|
||||||
+ max-frequency = <200000000>;
|
|
||||||
+ disable-wp;
|
|
||||||
+
|
|
||||||
+ mmc-pwrseq = <&emmc_pwrseq>;
|
|
||||||
+ vmmc-supply = <&vcc_3v3>;
|
|
||||||
+ vqmmc-supply = <&flash_1v8>;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&uart_AO {
|
|
||||||
+ status = "okay";
|
|
||||||
+ pinctrl-0 = <&uart_ao_a_pins>;
|
|
||||||
+ pinctrl-names = "default";
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&usb {
|
|
||||||
+ status = "okay";
|
|
||||||
+ vbus-supply = <&usb_pwr_en>;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&usb2_phy0 {
|
|
||||||
+ phy-supply = <&vcc_5v>;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&usb2_phy1 {
|
|
||||||
+ /* Enable the hub which is connected to this port */
|
|
||||||
+ phy-supply = <&hub_5v>;
|
|
||||||
+};
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
@ -1,237 +0,0 @@
|
|||||||
From 5936436f1ea848ea045708ed7d86d326d3508101 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
|
||||||
Date: Fri, 24 Apr 2020 03:09:12 +0000
|
|
||||||
Subject: [PATCH 29/33] FROMGIT: boards: amlogic: add Odroid C4 support
|
|
||||||
|
|
||||||
Odroid C4 is an SM1 device, the board config is adapted from VIM3L and
|
|
||||||
README is based on the README.odroid-n2 from the same vendor.
|
|
||||||
|
|
||||||
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
|
||||||
---
|
|
||||||
board/amlogic/w400/MAINTAINERS | 1 +
|
|
||||||
board/amlogic/w400/README.odroid-c4 | 134 ++++++++++++++++++++++++++++
|
|
||||||
configs/odroid-c4_defconfig | 62 +++++++++++++
|
|
||||||
3 files changed, 197 insertions(+)
|
|
||||||
create mode 100644 board/amlogic/w400/README.odroid-c4
|
|
||||||
create mode 100644 configs/odroid-c4_defconfig
|
|
||||||
|
|
||||||
diff --git a/board/amlogic/w400/MAINTAINERS b/board/amlogic/w400/MAINTAINERS
|
|
||||||
index 2ff90039ca..b28dd7f0e4 100644
|
|
||||||
--- a/board/amlogic/w400/MAINTAINERS
|
|
||||||
+++ b/board/amlogic/w400/MAINTAINERS
|
|
||||||
@@ -6,3 +6,4 @@ F: board/amlogic/w400/
|
|
||||||
F: configs/khadas-vim3_defconfig
|
|
||||||
F: configs/khadas-vim3l_defconfig
|
|
||||||
F: configs/odroid-n2_defconfig
|
|
||||||
+F: configs/odroid-c4_defconfig
|
|
||||||
diff --git a/board/amlogic/w400/README.odroid-c4 b/board/amlogic/w400/README.odroid-c4
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000000..b1bca75891
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/board/amlogic/w400/README.odroid-c4
|
|
||||||
@@ -0,0 +1,134 @@
|
|
||||||
+U-Boot for ODROID-C4
|
|
||||||
+====================
|
|
||||||
+
|
|
||||||
+ODROID-N2 is a single board computer manufactured by Hardkernel
|
|
||||||
+Co. Ltd with the following specifications:
|
|
||||||
+
|
|
||||||
+ - Amlogic S905X3 Arm Cortex-A55 quad-core SoC
|
|
||||||
+ - 2GB or 4GB LPDDR4 SDRAM
|
|
||||||
+ - Gigabit Ethernet
|
|
||||||
+ - HDMI 2.1 display
|
|
||||||
+ - 40-pin GPIO header
|
|
||||||
+ - 7-pin GPIO expansion header
|
|
||||||
+ - 4x USB 3.0 Host
|
|
||||||
+ - 1x USB 2.0 Host/OTG (micro)
|
|
||||||
+ - eMMC, microSD
|
|
||||||
+ - UART serial
|
|
||||||
+ - Infrared receiver
|
|
||||||
+
|
|
||||||
+Schematics are available on the manufacturer website.
|
|
||||||
+
|
|
||||||
+Currently the U-Boot port supports the following devices:
|
|
||||||
+ - serial
|
|
||||||
+ - eMMC, microSD
|
|
||||||
+ - Ethernet
|
|
||||||
+ - I2C
|
|
||||||
+ - Regulators
|
|
||||||
+ - Reset controller
|
|
||||||
+ - Clock controller
|
|
||||||
+ - ADC
|
|
||||||
+
|
|
||||||
+u-boot compilation
|
|
||||||
+==================
|
|
||||||
+
|
|
||||||
+ > export ARCH=arm
|
|
||||||
+ > export CROSS_COMPILE=aarch64-none-elf-
|
|
||||||
+ > make odroid-c4_defconfig
|
|
||||||
+ > make
|
|
||||||
+
|
|
||||||
+Image creation
|
|
||||||
+==============
|
|
||||||
+
|
|
||||||
+Amlogic doesn't provide sources for the firmware and for tools needed
|
|
||||||
+to create the bootloader image, so it is necessary to obtain them from
|
|
||||||
+the git tree published by the board vendor:
|
|
||||||
+
|
|
||||||
+ > wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
+ > wget https://releases.linaro.org/archive/14.04/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2014.04_linux.tar.xz
|
|
||||||
+ > tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
|
|
||||||
+ > tar xvf gcc-linaro-arm-none-eabi-4.8-2014.04_linux.tar.xz
|
|
||||||
+ > export PATH=$PWD/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin:$PWD/gcc-linaro-arm-none-eabi-4.8-2014.04_linux/bin:$PATH
|
|
||||||
+
|
|
||||||
+ > DIR=odroidc4-u-boot
|
|
||||||
+ > git clone --depth 1 \
|
|
||||||
+ https://github.com/hardkernel/u-boot.git -b odroidg12-v2015.01 \
|
|
||||||
+ $DIR
|
|
||||||
+
|
|
||||||
+ > cd odroidc4-u-boot
|
|
||||||
+ > make odroidc4_defconfig
|
|
||||||
+ > make
|
|
||||||
+ > export UBOOTDIR=$PWD
|
|
||||||
+
|
|
||||||
+ Go back to mainline U-Boot source tree then :
|
|
||||||
+ > mkdir fip
|
|
||||||
+
|
|
||||||
+ > cp $UBOOTDIR/build/scp_task/bl301.bin fip/
|
|
||||||
+ > cp $UBOOTDIR/build/board/hardkernel/odroidc4/firmware/acs.bin fip/
|
|
||||||
+ > cp $UBOOTDIR/fip/g12a/bl2.bin fip/
|
|
||||||
+ > cp $UBOOTDIR/fip/g12a/bl30.bin fip/
|
|
||||||
+ > cp $UBOOTDIR/fip/g12a/bl31.img fip/
|
|
||||||
+ > cp $UBOOTDIR/fip/g12a/ddr3_1d.fw fip/
|
|
||||||
+ > cp $UBOOTDIR/fip/g12a/ddr4_1d.fw fip/
|
|
||||||
+ > cp $UBOOTDIR/fip/g12a/ddr4_2d.fw fip/
|
|
||||||
+ > cp $UBOOTDIR/fip/g12a/diag_lpddr4.fw fip/
|
|
||||||
+ > cp $UBOOTDIR/fip/g12a/lpddr3_1d.fw fip/
|
|
||||||
+ > cp $UBOOTDIR/fip/g12a/lpddr4_1d.fw fip/
|
|
||||||
+ > cp $UBOOTDIR/fip/g12a/lpddr4_2d.fw fip/
|
|
||||||
+ > cp $UBOOTDIR/fip/g12a/piei.fw fip/
|
|
||||||
+ > cp $UBOOTDIR/fip/g12a/aml_ddr.fw fip/
|
|
||||||
+ > cp u-boot.bin fip/bl33.bin
|
|
||||||
+
|
|
||||||
+ > sh fip/blx_fix.sh \
|
|
||||||
+ fip/bl30.bin \
|
|
||||||
+ fip/zero_tmp \
|
|
||||||
+ fip/bl30_zero.bin \
|
|
||||||
+ fip/bl301.bin \
|
|
||||||
+ fip/bl301_zero.bin \
|
|
||||||
+ fip/bl30_new.bin \
|
|
||||||
+ bl30
|
|
||||||
+
|
|
||||||
+ > sh fip/blx_fix.sh \
|
|
||||||
+ fip/bl2.bin \
|
|
||||||
+ fip/zero_tmp \
|
|
||||||
+ fip/bl2_zero.bin \
|
|
||||||
+ fip/acs.bin \
|
|
||||||
+ fip/bl21_zero.bin \
|
|
||||||
+ fip/bl2_new.bin \
|
|
||||||
+ bl2
|
|
||||||
+
|
|
||||||
+ > $UBOOTDIR/fip/g12a/aml_encrypt_g12a --bl30sig --input fip/bl30_new.bin \
|
|
||||||
+ --output fip/bl30_new.bin.g12a.enc \
|
|
||||||
+ --level v3
|
|
||||||
+ > $UBOOTDIR/fip/g12a/aml_encrypt_g12a --bl3sig --input fip/bl30_new.bin.g12a.enc \
|
|
||||||
+ --output fip/bl30_new.bin.enc \
|
|
||||||
+ --level v3 --type bl30
|
|
||||||
+ > $UBOOTDIR/fip/g12a/aml_encrypt_g12a --bl3sig --input fip/bl31.img \
|
|
||||||
+ --output fip/bl31.img.enc \
|
|
||||||
+ --level v3 --type bl31
|
|
||||||
+ > $UBOOTDIR/fip/g12a/aml_encrypt_g12a --bl3sig --input fip/bl33.bin --compress lz4 \
|
|
||||||
+ --output fip/bl33.bin.enc \
|
|
||||||
+ --level v3 --type bl33 --compress lz4
|
|
||||||
+ > $UBOOTDIR/fip/g12a/aml_encrypt_g12a --bl2sig --input fip/bl2_new.bin \
|
|
||||||
+ --output fip/bl2.n.bin.sig
|
|
||||||
+ > $UBOOTDIR/fip/g12a/aml_encrypt_g12a --bootmk \
|
|
||||||
+ --output fip/u-boot.bin \
|
|
||||||
+ --bl2 fip/bl2.n.bin.sig \
|
|
||||||
+ --bl30 fip/bl30_new.bin.enc \
|
|
||||||
+ --bl31 fip/bl31.img.enc \
|
|
||||||
+ --bl33 fip/bl33.bin.enc \
|
|
||||||
+ --ddrfw1 fip/ddr4_1d.fw \
|
|
||||||
+ --ddrfw2 fip/ddr4_2d.fw \
|
|
||||||
+ --ddrfw3 fip/ddr3_1d.fw \
|
|
||||||
+ --ddrfw4 fip/piei.fw \
|
|
||||||
+ --ddrfw5 fip/lpddr4_1d.fw \
|
|
||||||
+ --ddrfw6 fip/lpddr4_2d.fw \
|
|
||||||
+ --ddrfw7 fip/diag_lpddr4.fw \
|
|
||||||
+ --ddrfw8 fip/aml_ddr.fw \
|
|
||||||
+ --ddrfw9 fip/lpddr3_1d.fw \
|
|
||||||
+ --level v3
|
|
||||||
+
|
|
||||||
+and then write the image to SD with:
|
|
||||||
+
|
|
||||||
+ > DEV=/dev/your_sd_device
|
|
||||||
+ > dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
|
|
||||||
+ > dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444
|
|
||||||
diff --git a/configs/odroid-c4_defconfig b/configs/odroid-c4_defconfig
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000000..ab7d588e98
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/configs/odroid-c4_defconfig
|
|
||||||
@@ -0,0 +1,62 @@
|
|
||||||
+CONFIG_ARM=y
|
|
||||||
+CONFIG_SYS_BOARD="w400"
|
|
||||||
+CONFIG_ARCH_MESON=y
|
|
||||||
+CONFIG_SYS_TEXT_BASE=0x01000000
|
|
||||||
+CONFIG_ENV_SIZE=0x2000
|
|
||||||
+CONFIG_DM_GPIO=y
|
|
||||||
+CONFIG_MESON_G12A=y
|
|
||||||
+CONFIG_NR_DRAM_BANKS=1
|
|
||||||
+CONFIG_DEBUG_UART_BASE=0xff803000
|
|
||||||
+CONFIG_DEBUG_UART_CLOCK=24000000
|
|
||||||
+CONFIG_IDENT_STRING=" odroid-c4"
|
|
||||||
+CONFIG_DEBUG_UART=y
|
|
||||||
+CONFIG_OF_BOARD_SETUP=y
|
|
||||||
+CONFIG_MISC_INIT_R=y
|
|
||||||
+# CONFIG_DISPLAY_CPUINFO is not set
|
|
||||||
+# CONFIG_CMD_BDI is not set
|
|
||||||
+# CONFIG_CMD_IMI is not set
|
|
||||||
+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_DEFAULT_DEVICE_TREE="meson-sm1-odroid-c4"
|
|
||||||
+CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
|
||||||
+CONFIG_NET_RANDOM_ETHADDR=y
|
|
||||||
+CONFIG_DM_MMC=y
|
|
||||||
+CONFIG_MMC_MESON_GX=y
|
|
||||||
+CONFIG_PHY_REALTEK=y
|
|
||||||
+CONFIG_DM_ETH=y
|
|
||||||
+CONFIG_ETH_DESIGNWARE=y
|
|
||||||
+CONFIG_MESON_G12A_USB_PHY=y
|
|
||||||
+CONFIG_PINCTRL=y
|
|
||||||
+CONFIG_PINCTRL_MESON_G12A=y
|
|
||||||
+CONFIG_POWER_DOMAIN=y
|
|
||||||
+CONFIG_MESON_EE_POWER_DOMAIN=y
|
|
||||||
+CONFIG_DM_REGULATOR=y
|
|
||||||
+CONFIG_DM_REGULATOR_FIXED=y
|
|
||||||
+CONFIG_DM_RESET=y
|
|
||||||
+CONFIG_DEBUG_UART_MESON=y
|
|
||||||
+CONFIG_DEBUG_UART_ANNOUNCE=y
|
|
||||||
+CONFIG_DEBUG_UART_SKIP_INIT=y
|
|
||||||
+CONFIG_MESON_SERIAL=y
|
|
||||||
+CONFIG_USB=y
|
|
||||||
+CONFIG_DM_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_G12A=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_DWC2_OTG_PHY_BUS_WIDTH_8=y
|
|
||||||
+CONFIG_USB_GADGET_DOWNLOAD=y
|
|
||||||
+CONFIG_DM_VIDEO=y
|
|
||||||
+CONFIG_VIDEO_MESON=y
|
|
||||||
+CONFIG_VIDEO_DT_SIMPLEFB=y
|
|
||||||
+CONFIG_OF_LIBFDT_OVERLAY=y
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
|||||||
From 109f9409fea47eefd0859fcf962da71188dca9d8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
Date: Wed, 29 Apr 2020 09:37:55 +0200
|
|
||||||
Subject: [PATCH 30/33] FROMGIT: arm: dts: khadas-vim3: include
|
|
||||||
meson-g12-common-u-boot.dtsi to enable HDMI output
|
|
||||||
|
|
||||||
---
|
|
||||||
arch/arm/dts/meson-khadas-vim3-u-boot.dtsi | 2 ++
|
|
||||||
1 file changed, 2 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/arch/arm/dts/meson-khadas-vim3-u-boot.dtsi b/arch/arm/dts/meson-khadas-vim3-u-boot.dtsi
|
|
||||||
index 81fd5be378..b5da4fdfc3 100644
|
|
||||||
--- a/arch/arm/dts/meson-khadas-vim3-u-boot.dtsi
|
|
||||||
+++ b/arch/arm/dts/meson-khadas-vim3-u-boot.dtsi
|
|
||||||
@@ -4,6 +4,8 @@
|
|
||||||
* Author: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
*/
|
|
||||||
|
|
||||||
+#include "meson-g12-common-u-boot.dtsi"
|
|
||||||
+
|
|
||||||
/ {
|
|
||||||
aliases {
|
|
||||||
spi0 = &spifc;
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
@ -1,67 +0,0 @@
|
|||||||
From 51d87789f9084e29f9a638e3d5c9f2bdda928113 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Neil Armstrong <narmstrong@baylibre.com>
|
|
||||||
Date: Wed, 29 Apr 2020 09:38:13 +0200
|
|
||||||
Subject: [PATCH 31/33] FROMGIT: configs: khadas-vim3: enable HDMI output
|
|
||||||
|
|
||||||
---
|
|
||||||
configs/khadas-vim3_defconfig | 9 +++++++++
|
|
||||||
configs/khadas-vim3l_defconfig | 4 ++++
|
|
||||||
2 files changed, 13 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/configs/khadas-vim3_defconfig b/configs/khadas-vim3_defconfig
|
|
||||||
index 692138eb11..4aeab0e35d 100644
|
|
||||||
--- a/configs/khadas-vim3_defconfig
|
|
||||||
+++ b/configs/khadas-vim3_defconfig
|
|
||||||
@@ -40,6 +40,8 @@ CONFIG_ETH_DESIGNWARE=y
|
|
||||||
CONFIG_MESON_G12A_USB_PHY=y
|
|
||||||
CONFIG_PINCTRL=y
|
|
||||||
CONFIG_PINCTRL_MESON_G12A=y
|
|
||||||
+CONFIG_POWER_DOMAIN=y
|
|
||||||
+CONFIG_MESON_EE_POWER_DOMAIN=y
|
|
||||||
CONFIG_DM_REGULATOR=y
|
|
||||||
CONFIG_DM_REGULATOR_FIXED=y
|
|
||||||
CONFIG_DM_RESET=y
|
|
||||||
@@ -55,6 +57,7 @@ CONFIG_DM_USB=y
|
|
||||||
CONFIG_USB_XHCI_HCD=y
|
|
||||||
CONFIG_USB_XHCI_DWC3=y
|
|
||||||
CONFIG_USB_DWC3=y
|
|
||||||
+CONFIG_USB_KEYBOARD=y
|
|
||||||
# CONFIG_USB_DWC3_GADGET is not set
|
|
||||||
CONFIG_USB_DWC3_MESON_G12A=y
|
|
||||||
CONFIG_USB_GADGET=y
|
|
||||||
@@ -63,4 +66,10 @@ CONFIG_USB_GADGET_PRODUCT_NUM=0xfada
|
|
||||||
CONFIG_USB_GADGET_DWC2_OTG=y
|
|
||||||
CONFIG_USB_GADGET_DWC2_OTG_PHY_BUS_WIDTH_8=y
|
|
||||||
CONFIG_USB_GADGET_DOWNLOAD=y
|
|
||||||
+CONFIG_DM_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
|
|
||||||
diff --git a/configs/khadas-vim3l_defconfig b/configs/khadas-vim3l_defconfig
|
|
||||||
index 28c20c0d6d..887885f329 100644
|
|
||||||
--- a/configs/khadas-vim3l_defconfig
|
|
||||||
+++ b/configs/khadas-vim3l_defconfig
|
|
||||||
@@ -57,6 +57,7 @@ CONFIG_DM_USB=y
|
|
||||||
CONFIG_USB_XHCI_HCD=y
|
|
||||||
CONFIG_USB_XHCI_DWC3=y
|
|
||||||
CONFIG_USB_DWC3=y
|
|
||||||
+CONFIG_USB_KEYBOARD=y
|
|
||||||
# CONFIG_USB_DWC3_GADGET is not set
|
|
||||||
CONFIG_USB_DWC3_MESON_G12A=y
|
|
||||||
CONFIG_USB_GADGET=y
|
|
||||||
@@ -66,6 +67,9 @@ CONFIG_USB_GADGET_DWC2_OTG=y
|
|
||||||
CONFIG_USB_GADGET_DWC2_OTG_PHY_BUS_WIDTH_8=y
|
|
||||||
CONFIG_USB_GADGET_DOWNLOAD=y
|
|
||||||
CONFIG_DM_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.17.1
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
|||||||
From 018e32a21b8fb04c07440ef2b8d389f3805aefb5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: chewitt <christianshewitt@gmail.com>
|
|
||||||
Date: Thu, 28 May 2020 09:07:11 +0000
|
|
||||||
Subject: [PATCH 33/33] HACK: prevent stdout/stderr on videoconsole
|
|
||||||
|
|
||||||
Severl devices now have CONFIG_DM_VIDEO enabled which causes stdout/stderr
|
|
||||||
to appear on videoconsole (HDMI). Remove videoconsole so that early u-boot
|
|
||||||
boot remains silent unless you are using the UART/serial console.
|
|
||||||
---
|
|
||||||
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 851cba807f..52ba6eab02 100644
|
|
||||||
--- a/include/configs/meson64.h
|
|
||||||
+++ b/include/configs/meson64.h
|
|
||||||
@@ -29,7 +29,7 @@
|
|
||||||
#define CONFIG_BMP_32BPP
|
|
||||||
#define CONFIG_SPLASH_SCREEN
|
|
||||||
#define CONFIG_SPLASH_SCREEN_ALIGN
|
|
||||||
-#define STDOUT_CFG "vidconsole,serial"
|
|
||||||
+#define STDOUT_CFG "serial"
|
|
||||||
#else
|
|
||||||
#define STDOUT_CFG "serial"
|
|
||||||
#endif
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user